Changing the language at runtime in X++
We recently had a case where the customer wanted to change the language being used for a given AX user at runtime. The customer had sorted out how to change the language
displayed in forms and reports but the buttons on the navigation pane were not getting updated. Here is a way to handle this scenario:
In the setSetup method of the SysUserSetup form within the if clause add the following:
/* ex. the report must be using chinese language running,then runned the report after, Dynamics AX must be reset current language remark by Jimmy September 03th 2010 */ public void init() { ; infolog.language("ZH-HANS");//first set up running to the report have to chinese languages this.printJobSettings().suppressScalingMessage(true);//removed the report scaling messages //this.printJobSettings().clientPrintJobSettings().suppressScalingMessage(true);
super(); /* ledgerReport_CN = element.args().caller(); isFiscalYearClosed = ledgerReport_CN.isFiscalYearClosed(); ..............get some of parameters */ this.query().interactive(false);//current report never interactived } public boolean fetch() { UserInfo UserInfo; ; .....user Customize has been builded query run in the fect method select firstonly UserInfo where UserInfo.id == CuruserId(); if (infolog.language() != UserInfo.language) { infolog.language(UserInfo.language); infolog.navPane().loadStartupButtons();
Infolog.navPane().refreshFavorites(infolog.navPane().selectedFavoriteGroup(),xInfo::currentWorkspaceNum()); } return true; }