Dynamics ax 2012 Handling events of the RunBase dialog controls

Class创建Form方法触发

1、覆盖dialogPostRun方法

public void dialogPostRun(DialogRunbase _dialog)
{
   super(_dialog);
    
   _dialog.dialogForm().formRun().controlMethodOverload(true);
   _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}

2、指定label ID此处使用函数定义

 //classDeclaration方法:
 
 #DEFINE.dlgEditBomTypeFieldNo(1)//此处1为第四步中Fld<ID>_1的ID
 #DEFINE.dlgEditBomTypeCtrlName("Fld1_1")//可省略,主要作为备注名称

3、dialog创建使用上面第一行的函数,创建方式改为以下

  //#dlgEditBomTypeFieldNo此处函数指定Field No即第二步中的1,可用数字替代,则省略第二步,第四步取此处即可
  dlgEditBomType     = new DialogField(dialog,enumStr(TEK_EditBomType),#dlgEditBomTypeFieldNo);
  dialog.addCtrlDialogField(dlgEditBomType.name());
  dlgEditBomType.init(dialog);
  dlgEditBomType.label("Type");
  dlgEditBomType.helpText("Type");
  //正常方式为
  //dlgActivity     = dialog.addFieldValue(extendedTypeStr(TEK_Activity),activity,"Activity");

4、创建方法(modified)  The format of the event method name is as follows: fld<ID>_1_<event name>

private void Fld1_1_modified()
{
  Object control;
  control = dialog.formRun().controlCallingMethod();

  if(control.modified())
   {
    info("Modified triggered!");
    }
}

参考:

https://community.dynamics.com/ax/f/microsoft-dynamics-ax-forum/106386/event-methods-override

https://community.dynamics.com/ax/b/axdaily/posts/handling-events-of-the-runbase-dialog-controls

    Danzel
    Danzel管理员

    • 声明:本文由Danzel于2021-05-20转载(优化),转载须经原站同意并注明出处。
    • 本文地址:http://maryd.cn/?id=170
    上一篇:一个git项目多个仓库地址及报错处理
    下一篇:Dynamics ax 2012 Hide disable button

    留言评论

    暂无留言
    取消
    扫码支持