X++ 对话框字段查找覆盖错误 DialogControl.Control 无法从服务器调用
X++ Dialog Field Lookup Override Error DialogControl.Control Cannot be Called From Server
首先,下面显示的代码是从我们的 AX 中提取的,WORKS。创建对话框的 class 和包含查找的 class 在“调用自”上都设置为 运行。对话方法所在的 class 是一个抽象 class。这会导致这个错误吗?父 class 也不扩展 RunBase。不确定这是否有所作为。
我收到此错误消息,“无法从服务器调用方法 DialogControl.control;请改用 DialogField class 上的方法”,当我尝试向对话框字段添加查找覆盖时.
如有任何帮助或解决方法,我们将不胜感激。
protected boolean dialog()
{
Dialog dialog = new Dialog("My Dialog", this);
DialogField myField;
boolean ok;
myField = dialog.addFieldValue(extendedTypeStr(MyStringType),
"DefaultValue", "FieldCaption", "FieldHelp");
myField.registerOverrideMethod(
methodStr(FormStringControl, lookup),
methodStr(MyClassName, MyLookupMethod),
new MyClassName());
ok = dialog.run();
}
private void MyLookupMethod(FormStringControl _control)
{
SysTableLookup sysTableLookup;
QueryBuildDataSource queryBuildDataSource;
Query query = new Query();
queryBuildDataSource = query.addDataSource(tablenum(CustTable));
sysTableLookup = SysTableLookup::newParameters(tablenum(CustTable), _control);
sysTableLookup.addLookupfield(fieldnum(CustTable, AccountNum), true);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
好的,我终于找到了。以为我会 post 帮助别人的答案。
虽然 class 设置为“调用自”,调用它的操作菜单项也是如此,但它正在使用构造方法重新实例化自身。静态 Construct 方法被设置为服务器方法。
首先,下面显示的代码是从我们的 AX 中提取的,WORKS。创建对话框的 class 和包含查找的 class 在“调用自”上都设置为 运行。对话方法所在的 class 是一个抽象 class。这会导致这个错误吗?父 class 也不扩展 RunBase。不确定这是否有所作为。
我收到此错误消息,“无法从服务器调用方法 DialogControl.control;请改用 DialogField class 上的方法”,当我尝试向对话框字段添加查找覆盖时.
如有任何帮助或解决方法,我们将不胜感激。
protected boolean dialog()
{
Dialog dialog = new Dialog("My Dialog", this);
DialogField myField;
boolean ok;
myField = dialog.addFieldValue(extendedTypeStr(MyStringType),
"DefaultValue", "FieldCaption", "FieldHelp");
myField.registerOverrideMethod(
methodStr(FormStringControl, lookup),
methodStr(MyClassName, MyLookupMethod),
new MyClassName());
ok = dialog.run();
}
private void MyLookupMethod(FormStringControl _control)
{
SysTableLookup sysTableLookup;
QueryBuildDataSource queryBuildDataSource;
Query query = new Query();
queryBuildDataSource = query.addDataSource(tablenum(CustTable));
sysTableLookup = SysTableLookup::newParameters(tablenum(CustTable), _control);
sysTableLookup.addLookupfield(fieldnum(CustTable, AccountNum), true);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
好的,我终于找到了。以为我会 post 帮助别人的答案。
虽然 class 设置为“调用自”,调用它的操作菜单项也是如此,但它正在使用构造方法重新实例化自身。静态 Construct 方法被设置为服务器方法。