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 Форма была настроена в среде, где вы успешно использовали предоставленный вами фрагмент кода.

Другие вопросы по тегам