![]() |
#1 |
Участник
|
![]()
Есть класс с диалогом. Перекрыл Lookup
X++: public void itemIdFld_lookup() { FormStringControl formStringControl; Query query; QueryBuildDataSource qbDS; SysTableLookup sysTableLookup; ; formStringControl = dialog.formRun().controlCallingMethod(); if (formStringControl) { query = new Query(); qbDS = query.addDataSource(tablenum(Table1), "Table1_ds"); qbDS.orderMode(orderMode::GroupBy); qbDS.addSortField(fieldnum(Table1, ItemId), sortOrder::Ascending); sysTableLookup = SysTableLookup::newParameters(tablenum(Table1), formStringControl); sysTableLookup.addLookupfield(fieldnum(Table1, ItemId), true); sysTableLookup.addLookupMethod(tablemethodstr(Table1, itemName)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } } А когда вводится значение со звёздочкой (например: 01.01.*), то значения получаются не сгруппированы (куча одинаковых номенклатур в лукапе). Как это побороть? Чтобы и так, и так всё было сгруппировано! |
|
![]() |
#2 |
Участник
|
Цитата:
Сортировка в Lookup Обернуть сгруппированный запрос в View |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Это так коряво в системе реализован механизм поиска в раскрытом списке на нужного значения
Сортировка в Lookup Обернуть сгруппированный запрос в View Ядро криво работает с лукапами с группировкой. Обойти можно не только вьюхой. Если мне не изменяет память, то поведения отличалось если лукап написать / вызывать не из метода на поле датасорса, а из метода на контроле то все ок. Группировка не сбрасывалась. |
|
![]() |
#4 |
Участник
|
ядро криво работает с лукапами, в которых recId == 0.
ну, не предполагали разработчики что кто-то будет делать лукапы по незаписанным данным. на всякий случай: разработчики еще предполагали, что в пределах одной таблицы ненулевые recId уникальны. |
|
![]() |
#5 |
Участник
|
не группируйте.
если я правильно понимаю, вы хотите получить лукап по номенклатуре для которой есть записи в Table1 ну дык и сформулируйте запрос на человеческом: = запрос по таблице номенклатур = exists join Table1 |
|
|
За это сообщение автора поблагодарили: SuperStar88 (1). |
![]() |
#6 |
Участник
|
вот так не будет задваивать :
X++: sysTableLookup = SysTableLookup::newParameters(tablenum(Table1), formStringControl, false);
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
![]() |
#7 |
Участник
|
Цитата:
![]() Цитата:
![]() |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|