![]() |
#1 |
Участник
|
Помогите разобраться с лукапом
Проблема анологична, описаной тут
только описаное там же решение не помогает. Вот код перекрытого мною лукапа: X++: public void lookup() { Query query = new Query(); QueryBuildDataSource queryBuildDataSource; QueryBuildRange queryBuildRange; SysTableLookup sysTableLookup; ; this.text(''); sysTableLookup = SysTableLookup::newParameters(tableNum(RD_InventType), this); sysTableLookup.addLookupField(fieldNum(RD_InventType, InventTypeMK)); sysTableLookup.addLookupField(fieldNum(RD_InventType, prefix)); queryBuildDataSource = query.addDataSource(tableNum(RD_InventType)); queryBuildDataSource.addSortField(fieldNum(RD_InventType, InventTypeMK)); queryBuildDataSource.addSortField(fieldNum(RD_InventType, prefix)); queryBuildDataSource.orderMode(orderMode::GroupBy); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); // super(); } |
|
![]() |
#2 |
Боец
|
А не поможет ли:
sysTableLookup.parmUseLookupValue(false); |
|
![]() |
#3 |
MCTS
|
Цитата:
sysTableLookup.parmUseLookupValue(false);
__________________
![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
![]() |
#4 |
Боец
|
Цитата:
Четвёрка?
|
|
![]() |
#5 |
Участник
|
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать? Тот же эффект?
|
|
![]() |
#6 |
Боец
|
Разница 3-ки и 4-ки в классе sysTableLookup\formRun():
4.0: X++: if(useLookupValue) { args.lookupField(lookupField); switch (callingControl.handle()) { case classnum(FormStringControl): callingStringControl = callingControl; args.lookupValue(callingStringControl.text()); break; } } X++: switch (callingControl.handle()) { case classNum(FormStringControl): callingStringControl = callingControl; args.lookupValue(callingStringControl.hasChanged() ? callingStringControl.text() : callingStringControl.valueStr()); break; } |
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
РЕшил проблемк переписав класс sysTableLookup
|
|
![]() |
#10 |
MCTS
|
Действительно странно лукап отображается
Он как будто сначала не сгруппированный отображается, а потом уж строки начинают сворачиваться Цитата:
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать?
Вью, наверное, заработает. Или попробовать лукап-форму.
__________________
![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
![]() |
#11 |
Боец
|
Цитата:
РЕшил проблемк переписав класс sysTableLookup
|
|
![]() |
#12 |
Участник
|
Дописал необязательный параметр в методе FromRun:
X++: public FormRun formRun(boolean useLookupValue = true) { ****** X++: if (useLookupValue) { switch (callingControl.handle()) { case classNum(FormStringControl): callingStringControl = callingControl; args.lookupValue(callingStringControl.text()); break; } } X++: void performFormLookup(boolean useLookupValue = true) X++: callingStringControl.performFormLookup(this.formRun(useLookupValue)); X++: sysTableLookup.performFormLookup(false); |
|
![]() |
#13 |
Участник
|
Димитрий, а можно проектиком выложить класс sysTableLookup и пример LookUp?
Пока не помогло. Вариант с this.text("") тоже не прокатил. |
|
![]() |
#14 |
Moderator
|
Лекарство применено правильно, но не до конца - нужна более заковыристая терапия
![]() См. рекомендацию EVGL здесь: Как сделать лукап со своими значениями? X++: saveText = _ctrl.text(); _ctrl.text(""); _ctrl.pasteText("", false); // Disable filter effects ............................................... _ctrl.pasteText(saveText, false); |
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#15 |
Участник
|
Спасибо!
|
|