如何基于全局变量获取业务中心页字段的值



在需求预测页面99000919中;标题";数据字段由全局变量支持。我需要将View by Period(PeriodType(默认为Month,然后验证该值。我没有成功地做到这一点。

A。使用Modify(PeriodType(从OnAfterValidate触发器获取值。当我使用Modify时,PeriodType在intellisense中显示,但当我尝试使用它时,我会得到一个编译器错误,即当前上下文中不存在PeriodType。

modify(PeriodType)
{
trigger OnAfterValidate()
begin
MyPeriodType := PeriodType;
end;
}

B。我还尝试使用VS代码teventsub代码片段来订阅PeriodType的OnAfterValidate事件,但没有公开任何内容。

[EventSubscriber(ObjectType::Page, Page::"Demand Forecast", 'OnBeforeValidateEvent', 'PeriodType', true, true)]

这可以在带有扩展的SaaS解决方案中实现吗?欢迎任何想法或建议。

目前似乎没有任何事件可供您订阅,这将帮助您解决问题。

然后要做的第一件事是向Microsoft提交一个请求,将所需的事件添加到产品中。请求新事件

也就是说,有一个解决你的问题的方法,它包括几个步骤:

  1. 创建需求预测的副本(第99000919页(
  2. 在页面副本中编码所需的更改
  3. 用您的副本替换原始页面

最后一步是通过识别打开原始页面的所有位置,然后超越代码来实现的。

打开需求预测的地方有三个:

  1. 第99000921页,需求预测名称,操作编辑需求预测
  2. 第8907页,Sales&RC市场经理,行动预测
  3. 编码单元5530,计算项目可用性

1和2是非模态运行的,这意味着在这两种情况下都可以执行以下操作:

[EventSubscriber(ObjectType::Page, Page::"Demand Forecast Names", 'OnBeforeActionEvent', 'Edit Demand Forecast', true, true)]
local procedure Page_DemandForecastNames_OnBeforeActionEvent_EditDemandForecast(var Rec: Record "Production Forecast Name")
var
DemandForecastCopy: Page "Demand Forecast"; // this variable should reference your copy
begin
DemandForecastCopy.SetProductionForecastName(Rec.Name);
DemandForecastCopy.Run();
Error(''); // this creates a silent error which cancels the original execution of the action.
end;

CCD_ 1不应被调用为"0";销售&营销经理RC";。

第三个有点棘手,因为页面是从代码单元以模态运行的,但由于我们现在已经替换了页面以非模态运行的所有情况,我们现在可以假设每次打开原始Demand Forecast时,它都应该是模态的。

不幸的是,订阅Demand ForecastOnOpenPageEvent对您没有帮助,因为没有可从中获取值的参数。因此,您必须从Calc. Item Availability回溯代码,以找到所有可能的入口点,然后覆盖前面描述的默认实现。

最新更新