在 D365 中,我知道如何为 DataSource、DataField 和 Control 运行代码。但是如何为表单运行代码“运行”“初始化”?
如果我只是在表单级别下写“运行”和“初始化”。它会自动运行吗?或者,我需要一些方法来调用它们?如何为我的表单运行此“运行”?
在 D365 中,我知道如何为 DataSource、DataField 和 Control 运行代码。但是如何为表单运行代码“运行”“初始化”?
如果我只是在表单级别下写“运行”和“初始化”。它会自动运行吗?或者,我需要一些方法来调用它们?如何为我的表单运行此“运行”?
如果您是从头开始开发自定义表单,那么可以,正如@DAXaholic 指出的那样,您可以直接在表单上覆盖run
和init
方法,然后像在以前的 AX 版本中那样实现您的自定义逻辑。
但是,在 D365 中强烈建议不要使用叠加,并且 Microsoft 将不再支持。这意味着,如果您要自定义标准表单或不在同一个包中的任何其他表单,则必须使用可扩展性方法来实现自定义逻辑。这可以通过扩展和事件处理程序来实现。
假设您有一个表单,并且您必须在表单初始化之前和之后执行一些代码。您可以创建一个事件处理程序类并init
订阅事件,而不是覆盖对象和覆盖方法:OnInitializing
OnInitialized
[FormEventHandler(formStr(Test), FormEventType::Initializing)]
public static void Test_OnInitializing(xFormRun sender, FormEventArgs e)
{
// your code here
}
[FormEventHandler(formStr(Test), FormEventType::Initialized)]
public static void Test_OnInitialized(xFormRun sender, FormEventArgs e)
{
// your code here
}
请浏览以下文档。它适用于 D365 表单打开。您可以覆盖此表单方法。 打开表单时的事件方法序列