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; }
posted @ 2010-09-03 09:16  Fandy Xie  Views(656)  Comments(0Edit  收藏  举报