19.11.2007, 16:31 | #1 |
Участник
|
Фильтрация CustTable по связанной таблице
Есть таблица CustTable, есть таблица T1 со следующим relation:
T1.RefAccountNum = CustTable.AccountNum T1.Type = T1Type::Type5 При необходимости отфильтровать записи на форме CustTable по некому полю из T1, каким образом это правильнее всего сделать? Напр. необходимо найти все записи в CustTable, для которых существует T1 с T1.Enum1 = Enum1::Value3 |
|
19.11.2007, 16:35 | #2 |
Участник
|
1ый способ:
Добавить Т1 как источник данных на форму, связать с CustTable по InnerJoin - это если связь 1:1 - вы не указали. Недостаток - изменили форму 2ой способ: Построить перекрестные ссылки Научить пользователей пользоваться формой расширенной фильтрации, добавляя там Т1 к источнику данных CustTable, и создавая фильтр по Т1, по полю Enum1 Relation будет автоматом подхватываться при связке в обоих способах |
|
19.11.2007, 16:39 | #3 |
Участник
|
Спасибо за быстрый ответ. Думал про оба варианта.
1. Связь, к сожалению, не 1:1 2. T1 не присутствует в списке доступных источников данных. Наверное потому, что T1.RefAccountNum типа AccountNum а не CustAccount. Что еще возможно сделать? Последний раз редактировалось Hyper; 19.11.2007 в 16:48. |
|
19.11.2007, 17:01 | #4 |
Участник
|
Не присутствует? Возможно просто перекрестные ссылки не построены?
Потому что если между таблицами настроен Relation (именно он на узле таблицы), то он должен попадать в этот список. Можно добавить кнопочку на форму клиентов, которая будет открывать форму диалога с полями для ввода требуемых (возможных) фильтров, и по нажатии ОК добавлять на форму клиентов (программно) еще один источник, (exists join), на него накладывать фильтры. Правда тут недостаток - проблема восстановления изначального запроса (можно его сохранять где-то предварительно, или перестраивать заново) |
|
19.11.2007, 17:10 | #5 |
Участник
|
Цитата:
Цитата:
Возможно просто перекрестные ссылки не построены?
Цитата:
на форму клиентов (программно) еще один источник, (exists join), на него накладывать фильтры.
Правда тут недостаток - проблема восстановления изначального запроса |
|
19.11.2007, 17:26 | #6 |
Участник
|
Цитата:
Выберите Сервис\Средства разработки\Перекрестные ссылки\Периодические операции\Обновление и выберите обновить "Модель данных" (и только эту галку) - по-моему именно это задание пробегается по ссылкам. А потом еще перезапустите клиента на всякий случай |
|
|
За это сообщение автора поблагодарили: Hyper (1). |
21.11.2007, 12:38 | #7 |
Участник
|
Цитата:
Но в конечном итоге дело все-таки закончилось программным добавлением еще одного источника данных на форму для обеспечения необходимого фильтра, и восстановлением первоначального запроса впоследствии. Все для удобства клиента. |
|