RunBaseReport 中的 dialogPostRun 方法

dialogPostRun method in RunBaseReport

我有一个 RunBaseReport,其中包含重写的对话框方法,我在其中添加了几个控件。其中一个控件是组合框。 当我修改组合框时,应该更改控件​​ enabled() 属性。

所以基本上我需要知道 dfReportType 对话框字段的值何时更改。

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);
}

但不幸的是我在RunBaseReportclass中没有这个方法。 根据 msdn 应该在那里。

还有其他解决方法吗?

我目前使用的是 AX 2012,但我仍在查看它。我在上下文菜单中有可用的方法,但在第一列中没有。我必须遍历 "Plus..." 才能找到第二列中的方法。

嗯,在继承RunBaseReport的Report对象中没有dialogPostRun方法,但是我们在中有这个方法Class 继承了 RunBaseReport.

那是我的错误。我使用报告对象而不是 class。

如果您想为报告制作自定义对话框,但您还想使用所有默认控件,您应该:

  • 创建class
  • 继承RunBaseReport
  • 覆盖对话框、getFromDialog 等
  • 覆盖 lastValueElementName 方法

    public identifiername lastValueElementName()
    {
        //just put name of your report object
        return reportStr(YourReportName);
    }
    

如果要从 menuItem 进行调用,请不要忘记添加 main() 方法。