在 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\', '');
我想知道如何在 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\', '');