1

是否有可能在 AX 中使用 windows-environment-variables?

示例

NormalImage上的财产MenuItem。我想用某事。像 %USERNAME% 而不是显式用户名。例如,在类中,我可以使用WINAPI宏并引用用户文件夹变量,例如CSIDL_MYPICTURES,访问每个用户的路径。在 AOT-object-properties 中,不可能引用宏...

有什么办法可以做到这一点?

4

3 回答 3

0

是的,您可以使用 .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

于 2013-02-19T16:26:29.420 回答
0

不,您不能在 AOT 上执行此操作。您可以通过 X++ 代码在运行时更改某些属性,但据我所知,您不能动态更改 MenuItem 上的图像。

您可以使某些菜单项可见/不可见。可能可以模拟您尝试以这种方式执行的操作,尽管这与 AX 设计模式并不完全一致。

于 2013-02-15T14:17:10.310 回答
0

获取客户端名称和机器名称的示例

static void testGetClientMachineName(Args _args)
{
    str localClientname, terminalServerName;
    ;
    localClientname = System.Environment::GetEnvironmentVariable('CLIENTNAME') ;
    info(localClientname);

    terminalServerName = System.Environment::get_MachineName();
    info(terminalServerName);

}
于 2015-02-26T16:55:02.223 回答