Getting Started with Graphical Reporting in Microsoft Dynamics AX 2012
06 Feb 2014
Data representation in graphs has become an integral part in any application. Graphical Reporting make it easy for the end users to analyze data. They also play an important role in facilitating decision making, by providing much clearer sales projections, revenue and profit details, comparison between the years, etc.
Microsoft Dynamics AX also provides support for creating graphical reports. In Dynamics AX 2012 there are two ways to represent data as graphs
- By using SSRS reporting
- By using Microsoft .net charts
Charts Sample using Microsoft .Net charts
In the first part of this blog we’ll look into how we can integrate Microsoft .net charts with AX 2012. Before we start, let’s have a brief look at the functionality we have within chart control.
The figure above shows how the chart will look when the data is rendered. In the top left corner of the picture, you can see the chart menu with its various options. With the help of this menu users can save and print the chart, switch between 2d and 3d modes, rotate the diagram, etc.
Now I’ll give you a walk through on how to create a form with graph control.
Let’s first prepare sample data that we will be displaying. For this I have used the “TempAccountSum” table. Now let’s create a function named “createTempAccountSum”. In this function use the code below to add multiple data records.
tmpAccountSum.TransDate = 0112014;
tmpAccountSum.Qty01 = 1;
tmpAccountSum.TransDate = 0222007;
tmpAccountSum.Qty01 = 2;
tmpAccountSum.TransDate = 0222014;
tmpAccountSum.Qty01 = 1;
You can use existing data with the filter query to show actual AX records instead of temporary data. After the data is created we’ll now look to add .Net controls to the display grid.
For that what we have to do first is add Managed Host controls.
The following steps will help you add these.
Right click on the form designer and go to new controls. In that list select Managed Host. This will open a list of assemblies. Search for the following assemblies.
If the following assemblies do not exist, use the “Add reference” button to search for and add the reference.
Now let’s look at the code that will create the graph.
// create variables for graphics and chart toolbar
public class FormRun extends ObjectRun
Create a function updateGraph to render the chart on the form
//Create an object of the graphics class and bind it with graph control
graphics = new Graphics();
// This sets mode of the chart to show if this 2D or 3D
// For 2D
// For 3D
graphics.parmCreateType(#CT_LEGEND | #CT_2D);
// Load the data in to the graphics object
while select tmpAccountSum
order by TransDate
graphics.loadData(date2str(tmpAccountSum.TransDate,-1,-1,-1,-1,-1,-1, DateFlags::None), // X-axis data
”, // Z-axis data
tmpAccountSum.Qty01); // Y-axis data
// This will load the data to the form
To call this function override init of the form
public void init()
// This will bind the chart tool bar with the chard control
chartToolbarControl = chartToolbarControlHost.control();
// Load the data into the temp table
// Generate graph
Once this is done run the form and you’ll get the data in the form of a grid on the screen.
With the help of the Graphics class, we can easily display data in graphical manner, without the need to utilize and understand low-level .NET charting APIs. Simply utilize the Graphics class to initialize a chart with default display values, call a single “add data” API, and then call Update to display the chart. That’s it!