26.05.2015, 07:04 | #1 |
Участник
|
проблема с перекрытием lookupreference в dialog
Товарищи, начинаю активно работать в 2012 и встречаюсь с некоторыми проблемами.
В данный момент проблема следующая: есть класс (наследник RunBase), в классе диалог, в диалоге следующее: X++: protected Object dialog() { Dialog dialog = super(); Object formCtrl; ; dlgAgreementClassification = dialog.addFieldValue(extendedTypeStr(agreementClassificationRecId), agreementClassificationRecId, "Выберите новую классификацию"); //formCtrl = dlgAgreementClassification.control(); //formCtrl.replacementFieldGroup(identifierStr(AutoIdentification)); //formCtrl.registerOverrideMethod(identifierStr(lookupReference), tableMethodStr(AgreementHeader, lookupReferenceAgreementClassification), this); dlgAgreementClassification.registerOverrideMethod(identifierStr(lookupReference), tableMethodStr(AgreementHeader, lookupReferenceAgreementClassification), this); return dialog; } X++: public Common lookupReferenceAgreementClassification(FormReferenceControl _formReferenceControl) { AgreementHeaderExt_RU agreementHeaderExt; Query query = new Query(); QueryBuildDataSource qbds; QueryBuildDataSource QbdsJoin; SysReferenceTableLookup sysTableLookup = SysReferenceTableLookup::newParameters(tableNum(AgreementClassification), _formReferenceControl) ; qbds = query.addDataSource(tableNum(AgreementClassification)); switch (agreementHeaderExt.AgreementType) { case AgreementType::Contract: qbds.addRange(fieldNum(AgreementClassification, MainAgreement)).value(queryValue(NoYes::Yes)); break; case AgreementType::AdditionalAgreement: qbds.addRange(fieldNum(AgreementClassification, MainAgreement)).value(queryValue(NoYes::Yes)); break; } qbds.addRange(fieldnum(AgreementClassification, AgreementRelationType)).value(queryValue(this.InstanceRelationType)); sysTableLookup.parmQuery(query); sysTableLookup.addLookupfield(fieldNum(AgreementClassification, Name)); sysTableLookup.addLookupfield(fieldNum(AgreementClassification, Description_PSN)); return sysTableLookup.performFormLookup(); } запустив же класс и в его диалоге попробовав сделать лукап - получаю ошибку Код: Ошибка времени выполнения: FormReferenceGroupControl (Объект), метод lookupReference вызван с недопустимыми параметрами. Трассировка стека (C)\Classes\FormReferenceGroupControl\lookupReference (C)\Classes\FormReferenceGroupControl\Lookup (C)\Classes\FormStringControl\Lookup что я делаю не так? |
|
Теги |
ax2012, dialog, lookupreference, registeroverridemethod |
|
|