Показать сообщение отдельно
Старый 17.02.2024, 10:14   #4  
Lankey is offline
Lankey
Участник
 
54 / 13 (1) ++
Регистрация: 19.05.2020
Имхо, системный SysLookupMultiselectGrid сделан с багом
Его метод markSelected позволяет отметить строки на основании любого поля, то есть не обязательно recId (он для этого использует ds.positionRecordByValue())
Но! это работает только, если контейнер с RecId выбранных строк пуст

А он никогда не будет пуст, тк даже если поле RecID отсутствует в запросе (как в моем случае с группировкой) , то в методе getSelected просто забивается 0 в контейнер : selectedID +=common.RecId. То есть, создается контейнер с количеством нулей равным количеству выбранных строк .. и он поэтому никогда пустым не будет
---

Если же, как workaround, явно добавить RecID в запрос через max(recID), то RecID, как и все другие поля datasource, автоматически добавляются в grid в методе buildDesign, поэтому скрыть его невозможно.