|
17.02.2024, 10:14 | #1 |
Участник
|
Имхо, системный SysLookupMultiselectGrid сделан с багом
Его метод markSelected позволяет отметить строки на основании любого поля, то есть не обязательно recId (он для этого использует ds.positionRecordByValue()) Но! это работает только, если контейнер с RecId выбранных строк пуст А он никогда не будет пуст, тк даже если поле RecID отсутствует в запросе (как в моем случае с группировкой) , то в методе getSelected просто забивается 0 в контейнер : selectedID +=common.RecId. То есть, создается контейнер с количеством нулей равным количеству выбранных строк .. и он поэтому никогда пустым не будет --- Если же, как workaround, явно добавить RecID в запрос через max(recID), то RecID, как и все другие поля datasource, автоматически добавляются в grid в методе buildDesign, поэтому скрыть его невозможно. |
|
20.02.2024, 11:07 | #2 |
Участник
|
Цитата:
Сообщение от Lankey
Имхо, системный SysLookupMultiselectGrid сделан с багом
Его метод markSelected позволяет отметить строки на основании любого поля, то есть не обязательно recId (он для этого использует ds.positionRecordByValue()) Но! это работает только, если контейнер с RecId выбранных строк пуст А он никогда не будет пуст, тк даже если поле RecID отсутствует в запросе
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
Теги |
d365 |
|
|