Axapta Ax X++;覆盖对话框窗体字段筛选器帐户
我的对话框也有类似的问题,但是我在没有控件调用方法的情况下遇到了一个错误 我试图覆盖CustAccount类型的lookup on dialog字段-我想要的是查找返回invoiceAccount具有特定值的所有custTable记录 这是我的密码:Axapta Ax X++;覆盖对话框窗体字段筛选器帐户,axapta,x++,Axapta,X++,我的对话框也有类似的问题,但是我在没有控件调用方法的情况下遇到了一个错误 我试图覆盖CustAccount类型的lookup on dialog字段-我想要的是查找返回invoiceAccount具有特定值的所有custTable记录 这是我的密码: class AG_UpdateQuoteCust extends Runbase { DialogField dlgCust; CustAccount newCust; CustAcc
class AG_UpdateQuoteCust extends Runbase
{
DialogField dlgCust;
CustAccount newCust;
CustAccount custAccount;
#define.CurrentVersion(1)
#define.Version1(1)
#localmacro.CurrentList
custAccount
#endmacro
}
public Object dialog()
{
DialogRunbase dlg;
;
dlg = super(dlg);
dlg.caption("Change quotation customer account");
dlg.addText('Please select an alternative customer account');
dlgCust = dlg.addField(typeid(CustAccount),'Customer account');
dlgCust.fieldControl().mandatory(true);
if(!dlgCust)
{
error('Please fill out all mandatory fields');
}
return dlg;
}
void Fld2_1_lookup()
{
Dialog dlg = this.dialog();
SysTableLookup sysTableLookup;
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
Query query;
Str TmpStr;
Formrun fr = this.dialogModify().parmDialog();
Object Control = fr.controlCallingMethod();
FormStringControl _control = control;
;
sysTableLookup = SysTableLookup::newParameters(tablenum(CustTable),_control);
sysTableLookup.addLookupfield(fieldnum(CustTable, AccountNum),true);
sysTableLookup.addLookupfield(fieldnum(CustTable, Name));
sysTableLookup.addLookupfield(fieldnum(CustTable, NameAlias));
query = new Query();
queryBuildDataSource = query.addDataSource(tablenum(CustTable));
tmpStr = 'ADAM001H';
queryBuildRange = queryBuildDataSource.addRange(fieldnum(CustTable, InvoiceAccount));
queryBuildRange.value(TmpStr);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public void dialogPostRun(DialogRunbase dialog)
{
;
Super(dialog);
dialog.formRun().controlMethodOverload(true);
dialog.formRun().controlMethodOverloadObject(this);
}
你能告诉我哪里出了问题吗?事实上,我并不真正理解dialogPostRun方法的重写或ControlCallingMethod的使用。尝试移动
DialogRunbase dlg
从方法对话框
到类声明
,删除对话框dlg=this.dialog()代码>并使用对象控件=dlg.formRun().controlCallingMethod()代码>在方法fld2\u 1\u查找中
。它应该会起作用