2012-02-17 2 views
0

У меня возникла проблема с заполнением таблицы данных правильными данными.Как показать только подмножество таблицы

У меня есть таблица данных, которую я использую в форме. Он называется userConfigProfiles. Он имеет 2 столбца группы FKId (это присоединяется к UserGroupInfo) и corpProfileId (это соединяется с созданной мной таблицей). Эти данные в userConfigProfiles заполняются из другой формы и в настоящее время заполняются соответствующим образом.

Проблемы есть, мне нужно создать выпадающий на SalesTable формы, которая показывает подмножество строк в userConfigProfiles на основе от того, что USERGROUPS текущего пользователя находится в.

Я пытался сделать это путем добавления код ниже в таблице, userConfigProfiles в SalesTable форме:

public void init() 
{ 
    userConfigProfiles.data(userConfigProfiles::find()); 

    super(); 
} 

Затем я добавил этот метод поиска, чтобы самой таблице:

static public userConfigProfiles find() 
{ 
    userConfigProfiles userProfile; 
    UserGroupList userGroupList; 

    str 8 u = curUserId(); 

    select * 
    from userProfile 
    order by userProfile.bdcProfileId 
     join userGroupList 
    where userProfile.groupId == userGroupList.groupId 
     && userGroupList.userId == u; 

    return userProfile; 
} 

Однако, похоже, что хотя мой метод find вызывается и он возвращает правильные данные, он не влияет на данные, которые входят в раскрывающийся список в моей форме.

Мой раскрывающийся список - это поле StringEdit с DataSource of userConfigProfiles и DataField corpProfileId.

Я уверен, что есть несколько способов решить мою проблему, и я открыт для любого из них, даже если это означает удаление всего моего кода и выполнение раскрывающегося окна совершенно по-другому.

ответ

1

Создать запрос с использованием таблицы UserConfigProfiles с EXIST присоединиться (свойство joinMode) в таблице UserGroupList, используйте соответствующее отношение, а затем добавить диапазон на поле UserId с value из (currentUserId()).

Данное значение является динамическим query expression, которое обеспечивается классом SysQueryRangeUtil.

Наконец, создайте поиск с использованием класса SysTableLookup, используя ваш запрос.

+0

Благодарим за помощь! Я смог использовать то, что вы мне дали, и выяснить, как решить мою проблему! –

2

До сих пор лучший учебник по методам поиска является Вани:

http://kashperuk.blogspot.com/2009/04/lookup-methods-tutorial-custom-list.html

Загрузить свой учебник XPO и использовать один из его вариантов формы. Ваш код выглядит немного как взломанная работа.

Если вы пытаетесь отобразить подмножество записей в таблице, вы должны изменить запрос(), но если вы пытаетесь изменить отображаемые значения из поиска, я бы проверил его блог после.

+0

Я пытаюсь отобразить подмножество записей, но я понятия не имею, как это сделать. –

+0

Вы говорите: «Мне нужно создать раскрывающийся список в форме SalesTable, которая отображает подмножество строк», это называется поиском. Например, если вы перейдете в SalesTable, а затем в линию продаж, вы нажмете стрелку вниз рядом с единицей вашего товара, чтобы вы увидели Every, Feet, Inches и т. Д. Это то, что вы пытаясь создать? –

+0

Да, за исключением раскрывающегося списка элементов, которые выходят из него, связаны с текущим пользователем, который зарегистрирован, а не с самой торговой линией. –

Смежные вопросы