Report processing of Microsoft Dynamic AX


The implementation of a general electronic report usually has four classes.


Comment: Contract class is data contract class for SSRS report .

Intent: Gets or sets the value of the data contract parameter.


Comment: Controller class for SSRS report that is used to control the report execution as well as preprocessing of the report data. The SSRS reporting framework uses this class to modify the report dialogs, calling the SQL Server reporting services, as well preprocessing parameters for the report. Controller class extends SrsReportRunController .follow is the controller class can be used:

1. Modifying a report query based on the input data

2. Modifying report contract data based on the input data

3. Control a report parameters dialog

4. Open different reports/designs from the same menu item based on the input data

5. Reports that are opened from a form

Intent: The main class for report, but one report should not include this class, beacase this kind of report directly  call SrsReportRunController (Under normal circumstances, method main of controller class always call this framework class.)


Comment: DP class is a data provider class for report.

Intent: The key method ‘ProcessReport’ is in DP class, DP class include all process of data processing, eg: processes the report business logic and insert data to table.

Two important attributes are used in DP classes:

  1. SRSReportQueryAttribute: specifies which AOT query will be used in this report. If the DP class uses an AOT query to process data, define this attribute at the beginning of the class.
  2. SRSReportParameterAttribute: defines the data contract class that will be used by this report to prompt for parameter values. If the DP class contains any parameters this define this attribute at the beginning of the class.

Both the attributes are optional. If the report does not use any query or does not want any parameter to filter report data, these attributes do not need to be used.

UIBuilder :

Comment: User Interface (UI) Builder class builds the UI for SSRS report , this Class is used to define the layout of the parameter dialog box that opens before a report is run in Microsoft Dynamics AX. It is used to add the customizations as well as additional fields in the dialog. follow is the UIBuilder class can be used:

1. Grouping dialog fields

2. Overriding dialog field events

3. Adding a customized lookup to a dialog field

4. Binding dialog fields with Report contract parameters

5. Changing the layout of the dialog

6. Adding custom controls to the dialog

Intent: Build a UI dialog, user can use this dialog to input some data parameter to print report.

About SSRSReport(CustDueReportDetail)

MenuItem(Output)---- CustDueReportDetail properties:

Use properties we can known this output menuitem’s appearance, behavior and data, we should pay attention to Object and Object type, this properties let us known this menuitem which will caller. For instance,  CustDueReportDetail menuitem called class CustDueReportDetailController, and this linked permission object is SSRS CustDueReportDetail, SSRS CustDueReportDetail is a design for report, we can check design in AOT, we also can get server method of this report.

From the above analysis, we known next caller class that is controller class, the controller class include main method in class under normal environment. When we click menuitem, the reference UIBuilder class will operate until report is printed, this class is used to define the layout, user should set value in form, and DP class can get those value to process data processing, DP class have an essential method called “processReport”, this method is the main in DP class, and most data processing in it.

For Dynamics AX7, the report design we can find in AOT, and design use label to achieve different language, we can check the meaning of label by tool find labels, and  there are two types of label  in AX. And parameter of a report is in XML document.

But for Dynamic AX6, the report design we can find in AOT, and design also use label to achieve different language, but label didn’t used in XML document, XML document use the string of names with numbers, We can't see the meaning represented by the numbered string.

We didn’t know what does the ‘DiffAmount32’ meaning. We must go report URLs to check the meaning.

We should go reporting sevices configuration manager :

And click URLS, find reference report to download it to local and open it with notepad and find what’s meaning of ‘DiffAmount32’.




  1. 实现python中的map函数

    假设Python没有提供map()函数,自行编写my_map()函数实现与map()相同的功能.以下代码在Python 2.7.8中实现. 实现代码: def my_map(fun,num): i = ...

  2. input(file)按钮美化

    <!DOCTYPE HTML> <html> <body> <input type="file" id="upload" ...

  3. Sql Server 查询第30条数据到第40条记录数 top  10 *  from  (select top  40 * from tablename order by id desc);

  4. Html页面插入flash代码

    转自: 转自: ...

  5. 获取CentOS系统详情的九个uname命令实例

    当你在控制台模式下,无法通过“鼠标右键 > 关于”获取操作系统的信息.这时,在Linux下,你可以使用uname命令,帮助你完成这些工作. Uname是unix name的缩写.在控制台中实际使 ...

  6. Java DecimalFormat数据格式化例子

    public static void main (String args[]) { DecimalFormat dFormat = new DecimalFormat(".##") ...

  7. MongoDB 模糊查询,及性能测试

    var mongodb = new MongoClient("mongodb://");//MongoServer.Create();//创建链接 v ...

  8. X-factor Chains(POJ3421 素数)

    X-factor Chains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6212   Accepted: 1928 D ...

  9. JVM学习--(五)垃圾回收器

    上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某一种算法进行垃圾回收,而是将不同的垃圾回收算法包装在不同的垃圾回收器当中,用户可以根据自身的需求,使用不同的垃 ...

  10. CentOS 7Google浏览器

    CentOS 7安装并启动Google浏览器(★firecat亲测有效★) 2018年09月23日 12:42:47 libaineu2004 阅读数:3088    版权声明:本文为博主原创文章,未 ...