Как показать только часть таблицы
-
27-10-2019 - |
Вопрос
У меня возникла проблема при заполнении таблицы данных правильными данными.
У меня есть таблица данных, которую я использую в форме. Он называется userConfigProfiles. Он имеет 2 столбца FK groupId (это присоединяется к UserGroupInfo) и corpProfileId (это присоединяется к таблице, которую я создал). Эти данные в userConfigProfiles заполняются из другой формы и в настоящее время заполняются соответствующим образом.
Проблема в том, что мне нужно создать раскрывающийся список в форме SalesTable, который показывает подмножество строк в userConfigProfiles в зависимости от того, в каких группах пользователей находится текущий пользователь.
Я попытался сделать это, добавив приведенный ниже код в таблицу userConfigProfiles в форме SalesTable:
родовое словоЗатем я добавил этот метод поиска в саму таблицу:
родовое словоОднако, похоже, что, хотя мой метод find вызывается и возвращает правильные данные, он не влияет на данные, которые попадают в раскрывающийся список в моей форме.
Мой раскрывающийся список представляет собой поле StringEdit с источником данных userConfigProfiles и DataField corpProfileId.
Я почти уверен, что есть несколько способов решить мою проблему, и я открыт для любого из них, даже если это означает удаление всего моего кода и выполнение совершенно другого раскрывающегося списка.
Решение
Создайте запрос с использованием таблицы UserConfigProfiles
с существующим соединением (свойство joinMode
) с таблицей UserGroupList
, используйте соответствующее отношение, затем добавьте диапазон в поле UserId
с помощью value
для (currentUserId())
.
Это значение является динамическим выражением запроса , которое предоставляется классом SysQueryRangeUtil .
Наконец, создайте поиск с помощью класса SysTableLookup с использованием вашего запроса.
Другие советы
Безусловно, лучший учебник по методам поиска принадлежит Ваню:
http://kashperuk.blogspot.com/2009/04 / lookup-methods-tutorial-custom-list.html
Загрузите его учебник XPO и используйте один из его вариантов для своей формы.Ваш код немного похож на хакерскую работу.
Если вы пытаетесь отобразить подмножество записей в таблице, вам следует изменить query (), но если вы пытаетесь изменить отображаемые значения из поиска, я бы посмотрел его сообщение в блоге.