SAP BPC表单中使用VBA函数

本文介绍了如何在SAP BPC表单中使用VBA来调用菜单命令,包括EvMNU函数的使用方式、示例及事件函数的应用,如在VBA代码中通过Application.Run触发MNU_eData_SELECTPACKAGE等特定命令。
摘要由CSDN通过智能技术生成

EvMNU 语法

EvMNU(MacroName,DisplayName,Parameter)

位置:

  • MacroName 是由“计划与合并”提供的菜单命令,例如 OPENFILESETCVMNU_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 界面发送数据后执行定制操作。

    <

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值