26.06.2008, 11:38 | #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(); } |
|
26.06.2008, 12:22 | #2 |
Боец
|
А не поможет ли:
sysTableLookup.parmUseLookupValue(false); |
|
26.06.2008, 12:29 | #3 |
MCTS
|
Цитата:
sysTableLookup.parmUseLookupValue(false);
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
26.06.2008, 12:37 | #4 |
Боец
|
Цитата:
Четвёрка?
|
|
26.06.2008, 12:42 | #5 |
Участник
|
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать? Тот же эффект?
|
|
26.06.2008, 12:47 | #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; } |
|
26.06.2008, 12:55 | #7 |
Участник
|
|
|
26.06.2008, 12:56 | #8 |
Участник
|
|
|
26.06.2008, 13:07 | #9 |
Участник
|
РЕшил проблемк переписав класс sysTableLookup
|
|
26.06.2008, 13:09 | #10 |
MCTS
|
Действительно странно лукап отображается
Он как будто сначала не сгруппированный отображается, а потом уж строки начинают сворачиваться Цитата:
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать?
Вью, наверное, заработает. Или попробовать лукап-форму.
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
26.06.2008, 13:18 | #11 |
Боец
|
Цитата:
РЕшил проблемк переписав класс sysTableLookup
|
|
26.06.2008, 13:45 | #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); |
|
18.09.2008, 22:40 | #13 |
Участник
|
Димитрий, а можно проектиком выложить класс sysTableLookup и пример LookUp?
Пока не помогло. Вариант с this.text("") тоже не прокатил. |
|
19.09.2008, 10:48 | #14 |
Moderator
|
Лекарство применено правильно, но не до конца - нужна более заковыристая терапия .
См. рекомендацию EVGL здесь: Как сделать лукап со своими значениями? X++: saveText = _ctrl.text(); _ctrl.text(""); _ctrl.pasteText("", false); // Disable filter effects ............................................... _ctrl.pasteText(saveText, false); |
|
|
За это сообщение автора поблагодарили: Logger (1). |
20.09.2008, 10:04 | #15 |
Участник
|
Спасибо!
|
|