Skip to main content

ActiveX Gantt Chart control in Dynamics Ax

This article exposes the very less used but two very important features; Gantt Chart Reporting (data analysis based on different kind of scheduling jobs) and use of ActiveX controls in Dynamics Ax. I hope you all understand what we can achieve through Gantt Charts. And ActiveX controls are small programs that provide add-on functionality to your application, usually it provides a GUI which can be placed on your forms / reports.

Note: This article is for advance Dynamics Ax users.

Dynamics Ax uses a third party ActiveX control to implement Gantt Charts. The ActiveX control is from NETRONIC, called VARCHART XGantt version 4.1.



So, for our Gantt Chart we will use this ActiveX, this way you will also understand "How to use third party ActiveX controls in Dynamics Ax?".

For reference, see below to know where this Gantt Chart ActiveX control is used in Dynamics Ax...
Open Project--Project Details form, click Activities button, on Hierarchy form click Inquiry--Gantt



Open Production Order--Gantt form





In this article, instead of writing my own code sample, I will refer Standard Dynamics Ax Shared Project Area for our understanding.



To use this Gantt Activex control, Dynamics Ax provides you some wrapper API classes. Search AOT--Classes for Gantt* classes. By seeing these class names you should be able to understand what they do.

How to use ActiveX control in Ax?

Create Ax form and add your Netronic ActiveX control from the ActiveX browser window.





How to change ActiveX control properties?


  • Open form in Visual Form Designer.


  • Select ActiveX control.

  • In properties window, select Custom property and click on browse button. This will open ActiveX control's property window.



  • To setup temp data tables (contains data to be displayed on the control), filters, calendars, layer colors, date-time lines etc check Objects tab.
  • To setup data tables you created in above step check Node tab.
That's it, just play with ActiveX properties and the project area I mentioned at the starting of this article. You are ready to use your newly added ActiveX control in Dynamics Ax.


Errors you might face while using Gantt ActiveX

1) When you are placing Gantt ActiveX on the form and you see error "Loading the interface... failed.".





Solution: It means you have not installed the ActiveX on your system yet. Install the required ActiveX and you should be good to go.

Feel free to post your feedback / comments / queries here.

Popular posts from this blog

Mark All for Open Cust Trans and Open Vend Trans

We have situations where there are lots of open transactions that need to be settled against each other. This can be the case if auto settlement is turned off. One solution is to add a "Mark All" button to the custOpenTrans or vendOpenTrans forms. This button "checks" the mark checkbox on every line. The user can then uncheck several lines if needed and Update to settle the lines. The code below is an example of what we used on the open vendor transaction screen. The code is very similar on the AR side. One note: I used vendTable.AccountNum in the code below. That should be generalized to work with any buffer that is passed into the open trans form. void customMarkAll() { VendTransOpen localVendTransOpen; VendTrans localVendTrans; container conSum; int linesProcessed; ; //show wait cursor startLengthyOperation(); element.lock(); //remove all prior markings specOffsetVoucher.deleteSpe...

Print Report in Microsoft Dynamics AX 2009 through X++

I am trying to print sales confirmation report on a button click which I have added on Sales Order Detail form in Microsoft Dynamics AX 2009. On click event of that button, I have written following code: void clicked() {     Args                args;     ReportRun           reportRun;     SalesFormLetter     salesFormLetter;     PrintJobSettings    printJobSettings;     CustConfirmJour     custConfirmJour;     RecordSortedList    list                = new RecordSortedList(55);     SalesTable          salesTableUpdate;     ;     SELEC...

Creating Free Text Invoice through X++ code

Job: Calling class from job to run the class public void freeTextInvoicePostTestJob() { Dialog dialog; DialogField dlgCustAcc; DialogGroup dialogPeriodLengthGroup, dialogPeriodLengthGroup1; DialogField dlgLedgerAcc; ; dialog = new Dialog("Free-Text Invoice"); dialogPeriodLengthGroup1 = dialog.addGroup('Cust Table'); dlgCustAcc = dialog.addField(typeid(CustAccount)); dialogPeriodLengthGroup = dialog.addGroup('Ledger Table'); dlgLedgerAcc = dialog.addField(typeid(LedgerAccount)); if(dialog.run()) { if(dlgCustAcc.value() && dlgLedgerAcc.value() != '') FreeTxtInvoiceCreatePost::main(dlgCustAcc.value(), dlgLedgerAcc.value()); else throw error(strfmt("Either CustAccount or LedgerAccount info is missing.")); } } Class: Which creates the free text invoice class FreeTxtInvoiceCreatePost { } static void main(CustAccount _custAccount, LedgerAccount _ledgerAccount) { CustInvoiceTable custInvoiceTable; ...