Microsoft Dynamics AX Recorded Webcasts
It’s like a dream to have a bulk of videos over Dynamics AX at one place. Advance System Integration did it for us and I am glad to share it with you here Webcast Title Topic Area Recorded Date Microsoft Dynamics AX 2009General Functional Overview Demo General AX October 23, 2008 – Video Microsoft Dynamics AX 2009General Technical Overview Demo General AX November 6, 2008 – Video Live Webcast: Upgrading to Microsoft Dynamics AX 2009 General AX November 4, 2009 – Video Microsoft Dynamics AX 2009Financial Module Demo Finance November 20, 2008 – Video Microsoft Dynamics AX 2009Project Accounting ModuleDemo Accounting January 14, 2009 – Video Microsoft Dynamics AX 2009CRM Module Demo CRM June 2, 2010 – Video Microsoft Dynamics AX 2009CRM Module Demo CRM February 25, 2009 – Video Live Webcast: Microsoft Dynamics AX 2009Inventory Management Trade & Logistics October 21, 2009 – Video Live Webcast: Microsoft Dynamics AX 2009Enterprise Portal Enterprise Portal November 18, 2009 – Video Learn More about Inventory II: A Powerful Extension of the Standard Microsoft Dynamics AX Inventory Module AX Extension-Inventory Management April 1, 2009 – VideoMarch 31, 2010 –Video Learn More about Inventory II: Another look at Inventory II: A Powerful Extension of the Standard Microsoft Dynamics AX Inventory Module from a Financial Users’ Perspective AX Extension-Inventory Management May 5, 2010 – Video AX-SMART Graphical Planning and Scheduling:An integrated drag and drop based planning and scheduling extension for AX production and project modules AX Extension-Inventory Management June 23, 2009 –VideoJanuary 13, 2010 –Video June 16, 2010 – Video Learn More about TARGITBusiness Intelligence Software AX Extension – BI July 15, 2009 – Video Better and faster decision making is only clicks away in Microsoft Dynamics AX with ASi’s Complete Business Intelligence Suite (Powered by timeXtender) AX Extension – BI May 21, 2010 – VideoJuly 23, 2010 – Video
Filter datasources of same table on Tab Pages
I had a requirement to show the filtered data of one table on different tabs within a form. The standard filter functionality in AX forms is a powerful feature. Using this filter functionality in your code is something you’ll definitely use at some point in time as a programmer. Let me explain it with an example; we have a currency table with multiple currencies e.g. EUR and USD. I have two different tabs named ‘EUR’ and ‘USD’ and these will show the respective filtered data from the currency table i.e. EUR tab will show the EUR currency and USD will show the USD currency data. Add two datasources (CurrencyEUR and CurrencyUSD) on the form of the same table (Currency), after assigning these datasources to the tabpages. You just need to follow the following 3 steps. Step 1: Declare a class variableIn the ClassDeclaration method of the form, define a range.QueryBuildRange CurrencyQBREUR;QueryBuildRange CurrencyQBRUSD; Step 2: Instantiate the new range.In the init() method on the datasource of the form, you assign the range to a specific field (after the super call). DataSource: CurrencyEURpublic void init(){ super(); CurrencyQBREUR = this.query().dataSourceName(‘Currency’).addRange(fieldnum(Currency, CurrencyCode));} DataSource: CurrencyUSDpublic void init(){ super(); CurrencyQBRUSD = this.query().dataSourceName(‘Currency’).addRange(fieldnum(Currency, CurrencyCode));} Step 3: In the last step, you assign a value to the range.This is done in the executeQuery method on the same datasource of the form. Before the super call. Like this: DataSource: CurrencyEURpublic void executeQuery(){ ; CurrencyQBREUR.value(queryvalue(‘EUR’)); super();} DataSource: CurrencyUSDpublic void executeQuery(){ ; CurrencyQBRUSD.value(queryvalue(‘USD’)); super();} This can be done in one line of code as well. In the init() method of the form datasource, after the super call, place this code:this.query().dataSourceName(‘Currency’).addRange(fieldnum(‘Currency’,CurrencyCode)).value(queryvalue(‘USD’)); But this way, it’s fixed. If you choose the 3 step method, you could for example use a variable in the range value. The way to go would be to place an input field on your form. Get the value from it and supply it in the executeQuery() method. For example like this: public void executeQuery(){ ; CurrencyQBRUSD.value(queryvalue(MyInputField.text())); super();} Just make sure the executeQuery method is executed, thus applying the desired filter (maybe be using a button on your form to activate it).
Suppress the scaling message on AX Reports
While working on AX reports, I got a very powerful and useful feature of AX. When a report doesn’t fit on a page, depending on its properties Ax will resize the report. Now AX will inform you that the report has been rescaled (Report is scaled xx percent to fit to page) and this message is generally not well received by users. Users are annoyed by the message, they get it every time they run the report, they cannot do anything about it, and they have to click to close the infolog. In order to get rid of this message on a particular report you can just modify the init() method of that report and add this line of code. this.printJobSettings().suppressScalingMessage(true); How about to cut the roots of this message and just change on one place then you can get rid of this message on all the reports rather than to go on each report and modify its init() method. Go to class SysReportRun, in the Run method, place following code before the call to super:if(this.printJobSettings())this.printJobSettings().suppressScalingMessage(true); Now we don’t have to modify each and every report and our users are happy. Note that you can still override the settings in your report. In some reports this is done by default, like SalesInvoice and SalesConfirm.