Показать сообщение отдельно
Старый 30.05.2014, 23:58   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
SysLookupMultiSelectCtrl и системные таблицы - глюк?
Создала на форме контрол, к нему привязала SysLookupMultiSelectCtrl

И ту обнаружилась волшебная вещь, что если в SysLookupMultiSelectCtrl передавать query, основанный на системной таблице (в моем случае dataArea) , то в списке полей Query обязательно должен быть RecId (и как следствие, к сожалению, он будет виден в динамически создаваемом лукапе). Только в этом случае при повторном открытии лукапа выбранные значения будут отмечены галочками. При этом, я пробовала добавлять RecId только в Range запроса по dataArea, а не списке полей (чтобы скрыть его из лукапа)- не помогает

При этом, если query основан на нормальной таблице( попробовала с custTable ). то достаточно добавить в query лишь только те поля, которые нужны(т.е например, только CustAccount)


Проблема в том, что в методе SysLookupMultiSelectGrid->getSelected() если RecId отсутствует в списке полей запроса по таблице dataArea, selectedId устанавливатся в 101090 для всех выбранных строк, для custTable приходит реальное значение RecId
Есть идеи, как побороть проблему , т.е скрыть recId из лукапа по dataAreaId?