在 getOpenFileName (X++) 中设置默认路径

Setting a default path in getOpenFileName (X++)

我想知道如何在 X++ 中为 Open File 对话框设置默认路径。 情况是这样的:在 Microsoft Dynamics AX 中,有一种形式 InventTable,它显示了与我们的库存有关的所有数据。

每个项目的属性之一是图像。这些图像都存储在我们服务器上的同一个文件夹中。所以当我们按下按钮设置或更改图像时,我希望对话框自动转到这个文件夹,这样用户就不必自己去那里了。

到目前为止,这是 Change Image 按钮背后的代码:

void clicked()
{
    FilenameFilter filter = ['Image Files','*.bmp;*.jpg;*.gif;*.jpeg'];
    BinData binData = new BinData();
    str extention, path, nameOfFile;
    super();

    imageFilePathName = WinAPI::getOpenFileName(element.hWnd(),filter, '', "@SYS53008", '','');

    if (imageFilePathname && WinAPI::fileExists(imageFilePathName))
    {
        [path, nameOfFile, extention] = fileNameSplit(imageFilePathName);
        if (extention == '.bmp' ||
            extention == '.jpg' ||
            extention == '.gif' ||
            extention == '.jpeg')
        {
            binData.loadFile(imageFilePathName);
            imageContainer = binData.getData();
            inventTableImage.ADUImage   = imageFilePathName;
            element.saveImage();
            element.showLogo();
        }
        else
        {
            throw error("@SYS89176");
        }
    }
}

我了解到我可以在 getOpenFileName 方法中设置默认路径,但这似乎不起作用。

表单本身有一个名为 filenameLookupInitialPath 的方法,它 returns 只是一个空字符串。

默认路径参数在 Ax 2012 RTM 3 中对我来说工作正常。您确定代码在正确的层上执行并且路径正确吗?

WinAPI::getOpenFileName(0, conNull(), @'C:\users\', '');