The Infolog

A blog of Dynamics AX development tips and tricks

Skip to: Content | Sidebar | Footer

Month: September, 2013

Using AIF services

30 September, 2013 (13:46) | Uncategorized | By: Howard Webb

Here are the steps to get AIF up and running and accessible. In this example I have created an excel add-in to pull on hand information for items.   Create a port   Firstly you need to create a port to allow access to your data. There are two ways of creating a port, you […]

Using a Custom .net Control within AX 2012

30 September, 2013 (09:43) | Uncategorized | By: Howard Webb

I have developed a form using a 3rd party .net control and used this within a Dynamics Ax form in AX 2012. The control I used was the Amazing progress bar found here: http://www.codeproject.com/Articles/182973/The-Amazing-ProgressBar-Control To use a custom .net control firstly you will need to add the reference DLL file to all client. Adding the […]

Adding a chart to an SSRS report

30 September, 2013 (09:26) | Uncategorized | By: Howard Webb

I have added a graph to the top 100 customers report in AX2012 and it already has the percentage field on the report. I had thought that it would be just a case of referencing that field and then creating a chart. While this might be possible in the end I modified the DP class […]

Saving and merging Infolog items for later use

29 September, 2013 (15:38) | Uncategorized | By: Howard Webb

The job below that will get Infolog items, clear them and save each one for later use. This can be of use when you need to record the Infolog for later viewing static void Job1(Args _args) { container errors; container t; int i; int length; ;   warning(“Test1”); error(“Test2”); errors = conIns(errors, 1, t);   […]

Using the Outlook API to produce drafts

29 September, 2013 (15:22) | Uncategorized | By: Howard Webb

I have been playing a bit with the email process of an SSRS report in AX 2012 as a self-learning exercise. Thought it might be worthwhile to share the code I have written so far. Using real life examples of requested functionality I have changed the SalesInvoice report to:   Create an Email and save […]

Navigating XML with X++

29 September, 2013 (13:30) | Dynamics AX | By: Howard Webb

About a year ago I had the luxury of some self learning time at work. I set about a task to intergrate a mapping utility with route planning. I chose Google maps as it returned an XML file that was easy to read. I wanted to pick up the total distance and time for my […]

Adding to a container with += vs. ConIns()

29 September, 2013 (01:25) | Dynamics AX | By: Howard Webb

While adding data to the end of a container there can be large savings by using += rather than ConIns. Try the code below and compare the results:   static void Containertest(Args _args) { int                            ticks; Container                con; Random                  random = new Random(); int                            myrandom; int                            i; ;   //Start on […]

Using a query with SysLookupMultiSelectCtrl

29 September, 2013 (01:21) | Dynamics AX | By: Howard Webb

If you wish to use the new SysLookupMultiSelectCtrl class there are a few construct methods out there that you can use. If you need to build one using a dynamic query object you can use this construct method, however the problem with this is that the lookup will contain all the fields in your table. […]

Formatting on fields within SSRS

29 September, 2013 (01:18) | Uncategorized | By: Howard Webb

SSRS pulls the formatting direct from the field’s EDT in AX, however this only works if the field is on the report table and is not a aggregate function. As such it does not really work for values that will be used in a header or footer section. There are plenty of examples of this […]

Accessing and setting the SSRS print destinations

29 September, 2013 (00:57) | Uncategorized | By: Howard Webb

The SSRS print destinations are stored on the report’s contract and can be accessed and set with the following code on the controller: controller.parmReportContract().parmPrintSettings();