Image resources in reports

When I was playing around with images and resources in AX, I have found that Menu nodes have an AOT property called NormalImage. On this property you can provide a file name which was imported into AX under the Resource node, so your module would have this image shown in the Main menu.

But when you want to use the resource in a report, the kernel does not associate your custom image with a resource ID, and you also do not have a property similar to the menus.

The only solution that you have is to add a Bitmap control to your report, then read out the data that is being stored under the node and return the container as a Bitmap value. Here is the code:

(more…)

DAXRunBase / 2010-08-18 / AX 2009, AX 2012, Microsoft Dynamics AX / 2 Comments

License compare tool

I was always missing a tool which allows us to see what is going to be changed when we are importing a new license into our system. The SysLicenseCode form and SysLicenseCodeReadFile class handles the license importing in Dynamics AX 2009, for which I needed to have a license compare tool.

After checking how does it work I have created a tool called License Impact Manager, which extends the original AX code to be able to read in a new license file and show any changes:

(more…)

DAXRunBase / 2010-06-16 / AX 2009 / 0 Comments

Non-visible fields in the Table browser

As developers and consultants often require the ability to check the content of hidden fields without writing a select statement / query, or taking a quick look in the database for retrieving information, I was wondering if there is a way to do that.

The SysTableBrowser class is using the FormBuildControl.addDataField(int dataSourceId, fieldId fieldId) method for bound and FormBuildControl.addControl(FormControlType controlType, str controlName) as an unbound control. These methods are on kernel level, and they are forcing to hide any bound controls where the field property Visible is set to No.

We can add the hidden fields as extra columns in the SysTableBrowser class with a highlighted color, but as the display grid is tied to the datasource we are using it is not possible to populate it with the right values per record.

(more…)

DAXRunBase / 2010-04-19 / AX 2009 / 2 Comments

Deep Best practice checks with layer filtering in compiler

You can (and should) enable best practice checks for the MorphX and X++ developer environment, which is similar to the dotNET FxCop code analysis tool. Though the standard Microsoft Dynamics AX 2009 code does not have any best practice errors, you can still find a lot of warning and info type problems.

Update: Microsoft just released a new version of the BP document, which is available here: Microsoft Dynamics AX 2009 Development Best Practices White Paper

To enable best practice checks, go to the menu under Tools/Options, then press the Compiler button on the right. You have to set Diagnostic Level 4 to enable the compiler to check your code for necessary and possible optimizations.

(more…)

DAXRunBase / 2010-04-14 / AX 2009 / 0 Comments