选择文件下拉框的时候需要先设置EDT属性为FilePath。然后在Form的Method层添加FilePathLookupTitle方法。
原理 Ax会在标准的lookUp方法里面去调用SyspathName,下面是run方法。closeSelect会自动返回选择的值。
/// <summary>
/// Displays the system folder select dialog.
/// </summary>
void run()
{
// This is not a real Axapta form. This form is just a way to surface the win32 BrowseForPath dialog.
// Calling super() isn't necessary since the Axapta form isn't used. If super() is called the FormRun
// will be leaked since we close the form within this method.
FormRun callerFormRun;
str s;
HWND hwnd;
//
// Open this form modally to the calling form
//
callerFormRun = this.args().caller() as FormRun;
if (callerFormRun)
{
hwnd = callerFormRun.hWnd();
}
else
{
hwnd = element.hWnd();
}
if (callerFormRun && formHasMethod(callerFormRun, identifierStr(filePathLookupTitle)))
{
s = WinAPI::getUniversalName_RU(WinAPI::browseForPath(hwnd, this.args().caller().filePathLookupTitle()));
}
if (s != '')
this.closeSelect(s);
else
this.closeCancel();
}