在D365中,我知道如何为DataSource,DataField和Control运行代码。但是如何为Form运行代码“ Run”“ Init”?
如果我仅在“表单”级别下写“运行”和“初始化”。它会自动运行吗? 或者,我需要一些方法打电话给他们? 如何为表单运行此“运行”?
答案 0 :(得分:1)
如果您是从头开始开发自定义表单,那么可以,正如@DAXaholic指出的那样,您可以直接在表单上覆盖run
和init
方法,然后像在此那样实现自定义逻辑在以前的AX版本中。
但是,在D365中强烈建议使用discouraged的覆盖,并且Microsoft将不再支持。这意味着,如果您要自定义标准表单或不在同一软件包中的任何其他表单,则必须使用可扩展性方法来实现自定义逻辑。这可以通过extensions和event handlers来实现。
假设您有一个表单,并且必须在初始化表单之前和之后执行一些代码。您可以创建事件处理程序类并订阅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
}
答案 1 :(得分:0)
请仔细阅读以下文档。它适用于D365表单打开。您可以覆盖此表单方法。 Event Method Sequences when a Form is Opened
答案 2 :(得分:0)