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

时间:2015-12-08 12:30:52

标签: microsoft-dynamics x++ getopenfilename

我想知道如何在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的方法,它只返回一个空字符串。

1 个答案:

答案 0 :(得分:1)

默认路径参数在Ax2012 RTM 3中适用于我。您确定代码是在正确的层上执行且路径是否正确?

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