Callback_AfterRedisplay在Office Workbook的Analysis中不起作用

2020-08-30 13:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好,我创建了一个Office...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,我创建了一个Office报告分析,其中包含来自2个信息提供者的不同数据源 (CRM活动 机会) 。 不幸的是,在活动InfoProvider中,特征被称为

  • 0BPARTNER__0SALES_GRP/0BPARTNER__0SALES_GRP

在商机信息提供者中,它们被称为

  • 0BP_ACTIVIT_0SALES_GRP/0BP_ACTIVIT_0SALES_OFF

因此,当将报告过滤到某个销售组或销售办公室时,我将不得不添加2个过滤器。 为了避免这种情况,我想通过VBA设置一个过滤器。 在 ThisWorkbook 下,我已经注册了回叫

公共Sub Workbook_SAP_Initialize()

'注册回调
调用Application.Run(" SAPExecuteCommand"," RegisterCallback"," AfterRedisplay"," Callback_AfterRedisplay")

结束子

在模块1中,我添加了以下代码以从活动过滤器中读取值并将其设置为机会过滤器

FilterSalesGroup()

Application.ScreenUpdating = False

工作表("查询")。激活

'从活动过滤器中选择变量

效果暗淡

昏暗的SlsGrp作为字符串

SlsGrp = Range(" C6")。Value

Dim SlsOff作为字符串

SlsOff = Range(" C5")。Value

'将SlsGroup变量设置为OPP数据源的过滤器

lResult = Application.Run(" SAPSetFilter"," DS_3"," 0BP_ACTIVIT__0SALES_GRP",SlsGrp," INPUT_STRING")

lResult = Application.Run(" SAPSetFilter"," DS_1"," 0BP_ACTIVIT__0SALES_GRP",SlsGrp," INPUT_STRING")

'将SlsOff变量设置为OPP数据源的过滤器

lResult = Application.Run(" SAPSetFilter"," DS_3"," 0BP_ACTIVIT__0SALES_OFF",SlsOff," INPUT_STRING")

lResult = Application.Run(" SAPSetFilter"," DS_1"," 0BP_ACTIVIT__0SALES_OFF",SlsOff," INPUT_STRING")

Application.ScreenUpdating = True

结束子

公共子区域 Callback_AfterRedisplay()

致电FilterSalesGroup

结束子

因此,每次为商机数据源设置销售组或销售办公室过滤器时,宏都应为商机数据源DS_1和DS_3设置相同的过滤器。

如果我手动或通过Excel中的按钮启动宏 FilterSalesGroup ,它可以正常工作。 但是 Callback_AfterRedisplay 方法在此工作簿中不起作用,而我在另一份报告中使用了相同的框架。 当然,我们将更改InfoProvider,但是我暂时想将VBA过程用作解决方法。

是否有人面临同样的问题? 欢迎任何想法

感谢斯蒂芬