Показать сообщение отдельно
Старый 09.04.2009, 13:14   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Баг стандартного механизма перекрытия лукапа
Наткнулся на такую штуку. Поискал по форуму и чё-то ничего похожего не нашёл.
Ax 3.0 sp4.
1) Создал таблицу с единственным полем ItemId.
2) Создал форму под это поле.
3) Перекрыл lookup
X++:
public void lookup()
{
    element.lookupItemId(this);
}
X++:
void lookupItemId(Object _lookupCtrl)
{
    SysTableLookup          sysTableLookup;
    Query                   query = new Query();
    ;
    //_lookupCtrl.text(_lookupCtrl.valuestr());

    sysTableLookup       = SysTableLookup::newParameters(tableNum(InventTable), _lookupCtrl);
    query.addDataSource(tableNum(InventTable));

    sysTableLookup.addLookupfield(fieldNum(InventTable, ItemId));
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}
Чё вышло, пока работаю в форме с этим лукапом всё отлично(он встаёт на нужную запись).
Выхожу из формы.
Снова открываю форму.
Лукап отказывается вставать на запись (ту которую до этого выбрали).
Как вылечил?
Написал в вверху метода
X++:
    _lookupCtrl.text(_lookupCtrl.valuestr());
И всё теперь работает как надо.
Тестовый проектик прилагаю
Вложения
Тип файла: xpo MRD_Proba.xpo (9.3 Кб, 199 просмотров)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.

Последний раз редактировалось miklenew; 09.04.2009 в 13:17.