Axapta RunBaseReport中的dialogPostRun方法
我有一个RunBaseReport,其中包含覆盖的对话框方法,我在其中添加了两个控件。其中一个控件是组合框。 修改combobox时,应更改Controls enabled()属性 因此,基本上我需要知道我的dfReportType对话框字段的值何时更改Axapta RunBaseReport中的dialogPostRun方法,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,我有一个RunBaseReport,其中包含覆盖的对话框方法,我在其中添加了两个控件。其中一个控件是组合框。 修改combobox时,应更改Controls enabled()属性 因此,基本上我需要知道我的dfReportType对话框字段的值何时更改 public Object dialog(Object dialog) { DialogRunbase dialog = dialog; ; //adding my combobox dfReportTy
public Object dialog(Object dialog)
{
DialogRunbase dialog = dialog;
;
//adding my combobox
dfReportType = dialog.addFieldValue(typeid(ReportType), ReportType:DefaultType);
//adding some other controls here
return dialog;
}
根据我发现的许多文章,我需要重写dialogPostRun方法并执行如下操作:
public void dialogPostRun(DialogRunbase dialog)
{
super(dialog);
dialog.dialogForm().formRun().controlMethodOverload(true);
dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
但不幸的是,我在RunBaseReport类中没有这个方法。
这应该是有根据的
还有其他解决办法吗 我目前使用的是AX 2012,但我仍在关注它。我在上下文菜单中有可用的方法,但在第一列中没有。我必须通过“Plus…”找到第二列中的方法。嗯,Report对象中没有继承RunBaseReport的对话框PostRun方法,但是我们在继承RunBaseReport的类中有这个方法 所以那是我的错误。我使用报表对象而不是类 如果要为报告创建自定义对话框,但也要使用所有默认控件,则应:
- 创建类
- 继承RunBaseReport
- 覆盖对话框、getFromDialog等
- 重写lastValueElementName方法
public identifiername lastValueElementName() { //just put name of your report object return reportStr(YourReportName); }
如果要从menuItem调用,请不要忘记添加main()方法。不幸的是,我在AX 2009中没有“加号”。我已切换到EN-US。然后,在“Override method”的底部,有一个带有箭头的“More…”选项,它将打开下一列。我想我还不够清楚。我试图在inhertis RunBaseReport类的报告中重写它,但这是一个错误,我不得不使用类对象。不过还是要谢谢你。