SAP BPC表单中使用VBA函数
EvMNU 语法
EvMNU(MacroName,DisplayName,Parameter)
位置:
MacroName 是由“计划与合并”提供的菜单命令,例如 OPENFILE、SETCV 和 MNU_eSUBMIT。
DisplayName 是用户点击以启动菜单任务的文本。显示名称为可选。
参数是宏参数。某些宏需要诸如文件名称或成员名称等信息才能正常运行。
示例:
将当前视图设置为特定维度的特定成员。在此示例中没有显示的名称。
EvMNU(“SETCV”,,”ENTITY=SalesUS;TIME=2004.JAN”)
创建一个名为〖分析〗的超链接,可以打开
A01Entity.xls
工作簿:EvMNU("OPENFILE","Analysis",,"/REPORTS/WIZARD/Reports/Wizard/Local/Analysis/A01Entity.xlt")
使用 & 运算符将多个 EvMNU 函数串联在一起。您可以按如下方式为您正在打开的文件设置当前视图:
=EVMNU("SETCV",,"CATEGORY=PLAN;TIME=2005.Q4")&EVMNU("OPENFILE","open file","/REPORTS/WIZARD/Local/Analysis/A01Entity.xlt")
大多数“计划与合并”命令都以前缀 MNU_ 开头。但是,以下命令也可以使用:
OPENFILE
打开一个本地文件。
缺省为“
C:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel
”目录,除非定义了完整路径。EvMNU(OPENFILE,”optional text”,{path})
例如,
evMNU(“OPENFILE”,,"c:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel")
CLOSEEXCEL
关闭 Microsoft Excel。
EvMNU(CLOSEEXCEL,,)
OPENWEBFOLDER
打开
/<appset/<app>/eExcel
文件夹。您不能更改缺省路径。EvMNU(OPENWEBFOLDER,”optional text”)
SETCV
设置当前视图。
EvMNU(SETCV,,dimension=member)
EVMNU的使用方法是在EXCEL中的单元格内输入=EvMNU(MacroName,DisplayName,Parameter) ,然后双击或单击单元格就会执行MacroName对应的宏.
另外一种使用菜单命令的方法是,拖一个表单按钮到excel中,然后为按钮指定宏为MNU_eXXXX_XXXXX,这样点击按钮MNU菜单命令就会被执行.
有的时候我们可能会需要在VBA中调用MNU菜单命令,比如先进行一些针对单元格的校验然后再执行发送数据命令,这种情况下,我们需要在VBA代码中输入语句Application.Run "mnu_{command}".
如调用BUDGET2COST脚本:
Application.Run "MNU_eData_SELECTPACKAGE", "BUDGET2COST", "/CPMB/DEFAULT_FORMULAS", "company", "Data Management"
BPC还提供了几个事件函数,类似于MFC中的事件响应函数:
解决方案提供了以下 VBA 函数,用于执行 MNU 命令之前或之后的命令:
BEFORE_CHANGECVW
您可以使用 BEFORE_CHANGECVW 函数在更改当前视图前执行定制操作。
Option Explicit
Function BEFORE_CHANGECVW(Argument As String)
'Process content
MsgBox Argument
BEFORE_CHANGECVW = True
End Function
AFTER_CHANGECVW
您可以使用 AFTER_CHANGECVW 函数在更改当前视图后执行定制操作。
Function AFTER_CHANGECVW(Argument As String)
MsgBox Argument
AFTER_CHANGECVW = True
End Function
BEFORE_REFRESH
您可以使用 BEFORE_REFRESH 函数在用户更改当前视图后执行定制操作。
Function BEFORE_REFRESH(Argument As String)
MsgBox Argument
BEFORE_REFRESH = True
End Function
AFTER_REFRESH
您可以使用 AFTER_REFRESH 函数在 Excel 界面刷新数据后执行定制操作。
Function AFTER_REFRESH(Argument As String)
MsgBox Argument
AFTER_REFRESH = True
End Function
BEFORE_SEND
您可以使用 BEFORE_SEND 函数在 Excel 界面发送数据前执行定制操作。
Function BEFORE_SEND(Argument As String)
MsgBox Argument
BEFORE_SEND = True
End Function
AFTER_SEND
您可以使用 AFTER_SEND 函数在 Excel 界面发送数据后执行定制操作。
Function AFTER_SEND(Argument As String)
MsgBox Argument
AFTER_SEND = True
End Function
BEFORE_EXPAND
除了用于联机报告,该事件还可以用于在批处理开始时执行定制代码,例如帐簿发布或脱机分配。
Function BEFORE_EXPAND(Argument As String)
MsgBox Argument
BEFORE_EXPAND = True
End Function
AFTER_EXPAND
除了用于联机报告,该事件还可以用于在批处理结束时执行定制代码,例如帐簿发布或脱机分配。
Function AFTER_EXPAND(Argument As String)
MsgBox Argument
AFTER_EXPAND = True
End Function
您可以使用 =EvMNU(command,parameter1,…)
函数或 VBA 宏中的下列清单中的每个函数。
在表中,X 表示可用。
菜单命令 | 描述 | NetWeaver | Microsoft |
EVGOTOHOMESHEET | 使您返回工作簿中的第一个表格。第一个表格必须命名为“主页”。 | X | |
MNU_eANALYZE_OPENMY | 打开“MyReports”报表文件夹。 | X | X |
MNU_eANALYZE_OPENSTANDARD | 打开位于 eExcel/Reports 目录的报表库。 | X | X |
MNU_eANALYZE_REFRESH | 重新计算报表。 | X | X |
MNU_eANALYZE_REPORTWIZARD | 启动动态模板报表对话框。 | X | X |
MNU_eANALYZE_SAVEMY | 将报表保存至 MyReports 文件夹。 | X | X |
MNU_eDATA_CLEARPROMPTVALUE | 清除已保存的数据管理器提示值。 | X | X |
MNU_eDATA_DATADOWNLOAD | 打开〖数据管理器数据下载〗对话框。允许具有访问权限的用户从服务器下载数据文件。 | X | X |
MNU_eDATA_DATAPREVIEW | 打开〖数据管理器数据预览〗对话框。 | X | X |
MNU_eDATA_DATAUPLOAD | 打开〖数据管理器数据上载〗对话框。允许具有访问权限的用户将数据文件上载至服务器以执行数据转换。 | X | X |
MNU_eDATA_MANAGESITEPACKAGE | 打开〖数据管理器管理团队用户包访问〗对话框。 | X | X |
MNU_eDATA_NEWCONVERSIONFILE | 新建一个数据管理器转换文件。 | X | X |
MNU_eDATA_NEWCONVERSIONSHEET | 在活动的转换工作簿中新建一个转换表 | X | |
MNU_eDATA_NEWTRANSFORMATION | 新建一个数据管理器转换表。 | X | X |
MNU_eDATA_OPENCONVERSIONFILE | 打开〖数据管理器打开转换文件〗对话框。 | X | X |
MNU_eDATA_OPENTRANSFORMATION | 打开〖数据管理器打开转换〗对话框。 | X | X |
MNU_eDATA_ORGANIZEPACKAGE | 打开〖数据管理器组织包〗对话框。 | X | X |
MNU_eDATA_RUNPACKAGE | 打开〖数据管理器运行包〗对话框。允许具有访问权限的用户运行数据库包。 | X | X |
MNU_eDATA_SAVECONVERSIONFILE | 保存活动的转换文件。 | X | X |
MNU_eDATA_SAVEASCONVERSIONFILE | 显示〖数据管理器另存为转换文件〗对话框。 | X | X |
MNU_eDATA_SAVESTRANSFORMATION | 打开〖数据管理器另存为转换表〗对话框。 | X | X |
MNU_eDATA_SAVETRANSFORMATION | 保存活动的转换表。 | X | |
MNU_eDATA_SELECTPACKAGE | 打开一个特定的数据管理器包。语法: 对于该菜单命令,参数是 MacroName 的一部分,因此您必须保留“参数”部分空白。例如,如果您的单元格 A1 中具有 | X | |
MNU_eDATA_TESTTRANSFORMATIONWDATA | 打开〖数据管理器通过数据测试转换〗对话框。 | X | X |
MNU_eDATA_VIEWSTATUS | 打开〖数据管理器查看状态〗对话框。 | X | X |
MNU_eJOURNAL_QUERY | 打开日记帐管理器。
只有在服务器上设置了日记帐时才可以使用表格。 结束注释。 | X | X |
MNU_eJOURNAL_REPORT | 打开“日记帐报表向导”。
只有在服务器上设置了日记帐时才可以使用表格。 结束注释。 | X | X |
MNU_ePUBLISH_OPENPUBLICATION | 打开 Web 界面目录以便可以选择位置和文件。 | X | X |
MNU_ePUBLISH_PUBLISHBOOK_EDIT | 编辑帐簿。 | X | |
MNU_ePUBLISH_PUBLISHBOOK_NEW | 新建帐簿。 | X | |
MNU_ePUBLISH_PUBLISHBOOK_SAVE | 保存当前帐簿。 | X | |
MNU_ePUBLISH_PUBLISHBOOK_SAVEAS | 打开“另存为”对话框。 | X | |
MNU_ePUBLISH_PUBLISHBOOK_VALIDATE | 验证当前帐簿。 | X | |
MNU_ePUBLISH_PUBLISHBOOK_WIZARD | 启动帐簿发布向导。 | X | |
MNU_ePUBLISH_PUBLISHSHEET | 将工作表发布到 Web 界面。 | X | X |
MNU_ePUBLISH_OFFLINE_EDIT | 编辑脱机选项。 | X | X |
MNU_ePUBLISH_OFFLINE_NEW | 新建脱机报表。 | X | X |
MNU_ePUBLISH_OFFLINE_SAVE | 保存脱机报表。 | X | X |
MNU_ePUBLISH_OFFLINE_SAVEAS | 打开〖另存为〗对话框。 | X | X |
MNU_ePUBLISH_OFFLINE_VALIDATE | 验证脱机报表。 | X | X |
MNU_ePUBLISH_OFFLINE_WIZARD | 打开“分配向导”。 | X | X |
MNU_ePUBLISH_VIEWeDASH | 打开 Web 界面。 | X | X |
MNU_ESUBMIT_COMMENT | 仅发送备注而不刷新备注。 | X | X |
MNU_ESUBMIT_COMMENT_AFTER_SENDDATA | 首先发送备注 | X | X |
MNU_eSUBMIT_CURRENT | 打开〖发送〗和〖刷新计划〗对话框。 | X | |
MNU_ESUBMIT_MANAGE_DYNAMICHIERARCHIES | 打开〖动态层次结构〗对话框。 | X | |
MNU_eSUBMIT_MODIFY | 打开 Web 界面中的工作状态操作窗格。 | X | X |
MNU_eSUBMIT_ONLINE | 与输入计划协同工作。 | ||
MNU_eSUBMIT_OPENMY | 打开 MySchedules 文件夹。 | X | X |
MNU_eSUBMIT_OPENSTANDARD | 打开位于 eExcel/Input Schedule 目录中的输入计划库。 | X | X |
MNU_eSUBMIT_REFRESH | 刷新计划而不发送数据。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_BOOK_CLEARANDREFRESH | 发送工作簿并清除数据,然后刷新工作簿。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_BOOK_NOACTION | 发送数据而不清除或刷新工作表。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_BOOK_NOACTION_SHOWRESULT | 发送数据而不清除或刷新工作表,发送成功后会在窗口中显示结果。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_BOOK_NODIALOG_SHOWRESULT | 发送活动的帐簿而不显示任何对话框和显示结果框。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_BOOK_REFRESH | 发送工作簿并刷新数据。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_SHEET_CLEARANDREFRESH | 发送数据并清除和刷新工作表。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_SHEET_NOACTION | 发送数据而不清除或刷新。 | X | X |
MNU_eSUBMIT_REFSCHEDULE_SHEET_REFRESH | 发送数据并刷新工作表。 | X | X |
MNU_eSUBMIT_SAVEMY | 将输入计划保存至 MySchedules 文件夹中。 | X | X |
MNU_eSUBMIT_SCHEDULE | 打开动态计划模板对话框。 | X | X |
MNU_ESUBMIT_SENDDATA | 仅发送数据而不刷新数据。 | X | X |
MNU_ESUBMIT_SENDDATA_AFTER_COMMENT | 首先发送数据。 | X | X |
MNU_eSUBMIT_SUBMIT | 提交支持文档。 | ||
MNU_eSUBMIT_VALIDATE | 验证数据提交。 | ||
MNU_eTOOLS_ABOUT | 打开〖关于 BPC〗 对话框。 | X | X |
MNU_eTOOLS_CHANGEAPP | 打开〖更改应用程序集〗对话框。 | X | X |
MNU_eTOOLS_DATAMANAGER | 打开数据管理器并添加 〖eData〗 菜单。 | X | X |
MNU_eTOOLS_DRILLDOWN | 执行到当前单元格的下溯。
此菜单命令只能在 VBA 中使用而不能在菜单中使用。 结束注释。 | X | X |
MNU_eTOOLS_DRILLDOWN_BACK | 撤销最后一次下溯。 | X | X |
MNU_eTOOLS_DRILLDOWN_FORWARD | 执行已由 DRILLDOWN_BACK 任务撤销的下溯。 | X | X |
MNU_eTOOLS_DRILLTHROUGH | 执行到当前单元格的下溯。 | X | |
MNU_eTOOLS_EXPAND | 展开所有动态扩展并刷新(除非未刷新 EvDRE 选项状态)。 | X | X |
MNU_eTOOLS_EXPANDANDREFRESH | 展开所有动态扩展然后刷新(除非未刷新 EvDRE 选项状态)。 | X | |
MNU_eTOOLS_FUNCTIONWIZARD | 打开“函数向导”。 | X | X |
MNU_eTOOLS_JOURNAL | 打开日记帐表格。
只有在服务器上设置了日记帐时才可以使用表格。 结束注释。 | X | X |
MNU_eTOOLS_MEMBERSELECTOR_x | 打开指定维度类型的“成员锁定”。维度类型包括:
例如,如果您输入 MNU_eTOOLS_MEMBERSELECTOR_E,“成员锁定”会打开至 Entity 维度。 | X | X |
MNU_eTOOLS_OPENSTANDARD | 打开模板库。 | X | X |
MNU_eTOOLS_OPTION | 打开〖客户端选项〗对话框。 | X | X |
MNU_eTOOLS_PARKNGO | 打开 〖Park N Go〗 对话框。 | X | X |
MNU_eTOOLS_REFRESH | 从服务器刷新报表和输入计划。 | X | X |
MNU_ETOOLS_REFRESHRANGE | 您可以将该宏分配至按钮控制。执行宏之前,请手动选择一个或多个单元格。否则,只会刷新活动的单元格。如果工作表模式为报表,则会刷新所选的单元格(包括 EVGET/EVGTS)。如果工作表模式为输入计划,则刷新所选的参考单元格(包括 EVSND)。 | x | |
MNU_eTOOLS_SAVESTANDARD | 保存至模板库。 | X | X |
MNU_ETOOLS_TASKPANE | 显示操作窗格 | X | |
MNU_eTOOLS_UPDATEAPPINFO | 从服务器刷新维度。 | X | |
MNU_eTOOLS_WBOPTION | 打开〖工作簿选项〗对话框。 | X | X |