AX2009 RU7 Пользовательские списки поиска
Я успешно использовал пользовательский поиск в AX2009 в течение многих лет. После подъема до RU7 кажется, что предыдущий метод больше не работает. Любые предложения относительно того, что я должен изменить, чтобы это исправить?
Вот код, который я использовал для вызова пользовательских поисков:
public void lookup()
{
List valueList = new List(Types::String);
;
//add the choices to the list
valueList.addEnd('@ABC123');
valueList.addEnd('@ABC246);
//display the list using the customized syslookup routine
SysLookup::lookupList(this, valueList, "@ABC369");
super();
}
Вот метод, который я добавил в класс sysLookup:
public static client void lookupList(FormStringControl _formStringControl, List _valueList, str _columnLabel = '')
{
Args args;
FormRun formRun;
;
if (_formStringControl && _valueList && _valueList.typeId() == Types::String)
{
args = new Args(formstr(SysLookup));
args.parmObject(_valueList);
args.parm(_columnLabel);
formRun = classFactory.formRunClass(args);
formRun.init();
_formStringControl.performFormLookup(formRun);
}
}
Это работало отлично, пока мы не установили RU7. Теперь мы получаем следующую ошибку:
Ошибка при выполнении кода: объект DictEnum не инициализирован. (C)\Classes\DictEnum\label (C)\Forms\SysLookup\Methods\run (C)\Classes\FormStringControl\ executeFormLookup (C)\Classes\SysLookup\lookupList - строка 16 (C)\Classes\FormStringControl\Lookup
Я открыт для предложений относительно того, как исправить текущую проблему или как создать такой же эффект в RU7 (без добавления класса syslookup до RU7, который работает, но не приемлемо.)
1 ответ
Интересно, в какой версии приложения вы могли успешно использовать свой пользовательский поиск. Он не работает даже в RU-3. Я полагаю, ваш SysLookup
Форма была настроена так, чтобы вы могли использовать свой lookupList
Метод - я предлагаю вам проверить это.
Стандартная форма SysLookup использует только args.parm (), а не args.parmObject (), поэтому ваш _valueList вообще не будет использоваться. Вы можете проверить, как вызывается форма поиска в \Forms\KMQuestionnaireStatistics\Designs\Design\[Tab:Tab]\[TabPage:RangesTab]\[Group:Ranges]\StringEdit:rangeGender\Methods\lookup
Я не знаю ценность вашего ярлыка "@ABC369"
, но в стандартном AX у вас не будет ошибки, только если эта метка содержит некоторый идентификатор базового перечисления (например, "732" для NoYesCombo
). Вы также можете проверить это, однако ваш список не будет отображаться в поиске. Вы бы лучше проверить, как SysLookup
Форма была настроена в среде, где вы успешно использовали предоставленный вами фрагмент кода.