有沒有可能在AX中使用Windows環境變量?在AX中使用環境變量
例:
在MenuItem
屬性NormalImage
。我想用某物。如%USERNAME%而不是顯式用戶名。例如,在類中,我可以使用WINAPI
宏,並引用用戶文件夾變量(例如CSIDL_MYPICTURES
)來訪問每個用戶的路徑。在AOT對象屬性中,不可能引用宏...
任何方式來實現這個?
有沒有可能在AX中使用Windows環境變量?在AX中使用環境變量
例:
在MenuItem
屬性NormalImage
。我想用某物。如%USERNAME%而不是顯式用戶名。例如,在類中,我可以使用WINAPI
宏,並引用用戶文件夾變量(例如CSIDL_MYPICTURES
)來訪問每個用戶的路徑。在AOT對象屬性中,不可能引用宏...
任何方式來實現這個?
不,你不能在AOT上這樣做。您可以通過X ++代碼更改運行時的某些屬性,但是據我所知,您無法動態更改MenuItem上的圖像。
您可以使可見/不可見的某些菜單項。可能會模擬你正在嘗試以這種方式做什麼,儘管這與AX的設計模式並不完全一致。
是的,您可以使用.Net框架來獲取環境變量,或者您可以使用內置的AX功能。看到這個例子中,我輸入了:
static void Job85(Args _args)
{
System.String systemString;
str marshalString;
;
// Built in AX function
info(strfmt("%1, %2, %3", xUserInfo::find().networkAlias, xUserInfo::find().networkDomain, xUserInfo::find().name));
// .Net Framework
systemString = System.Environment::GetEnvironmentVariable('username');
marshalString = systemString; // Marshal it
info(strfmt("%1", marshalString));
}
見http://msdn.microsoft.com/en-us/library/system.environment.getenvironmentvariable.aspx
獲得客戶名稱和機器名
static void testGetClientMachineName(Args _args)
{
str localClientname, terminalServerName;
;
localClientname = System.Environment::GetEnvironmentVariable('CLIENTNAME') ;
info(localClientname);
terminalServerName = System.Environment::get_MachineName();
info(terminalServerName);
}
你** **可以在菜單項變化的圖像(的方式的一個例子我做的基本上工作),但用戶名是不包括在文件夾中,所以它只適用於當前登錄用戶...) – Nico 2013-02-15 16:56:24
對不起我的拼寫,我想說,你不能* dinamically *改變圖像。當然你可以在AOT上改變它。我沒有親自嘗試過這種特殊情況,但可能是您可以將圖像部署到每個客戶端上的固定路徑上,類似於這個SO問題:http://stackoverflow.com/questions/3869018/images-in- AX-形式。它適用於客戶使用的另一個圖像,所以可能會做到這一點。 – 2013-02-18 14:18:06
這就是我所做的。但是使用用戶文件夾,屬性路徑被設置爲C:\ users \ user1 \ ..例如,它不適用於user2,user3等。因此,我想用%username%替換user1,就像windows一樣..! – Nico 2013-02-18 21:46:29