AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2007, 16:31   #1  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
? Фильтрация 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  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
1ый способ:
Добавить Т1 как источник данных на форму, связать с CustTable по InnerJoin - это если связь 1:1 - вы не указали.

Недостаток - изменили форму

2ой способ:
Построить перекрестные ссылки
Научить пользователей пользоваться формой расширенной фильтрации, добавляя там Т1 к источнику данных CustTable, и создавая фильтр по Т1, по полю Enum1

Relation будет автоматом подхватываться при связке в обоих способах
Старый 19.11.2007, 16:39   #3  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Спасибо за быстрый ответ. Думал про оба варианта.

1. Связь, к сожалению, не 1:1
2. T1 не присутствует в списке доступных источников данных. Наверное потому, что T1.RefAccountNum типа AccountNum а не CustAccount.

Что еще возможно сделать?

Последний раз редактировалось Hyper; 19.11.2007 в 16:48.
Старый 19.11.2007, 17:01   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Не присутствует? Возможно просто перекрестные ссылки не построены?
Потому что если между таблицами настроен Relation (именно он на узле таблицы), то он должен попадать в этот список.

Можно добавить кнопочку на форму клиентов, которая будет открывать форму диалога с полями для ввода требуемых (возможных) фильтров, и по нажатии ОК добавлять на форму клиентов (программно) еще один источник, (exists join), на него накладывать фильтры.
Правда тут недостаток - проблема восстановления изначального запроса (можно его сохранять где-то предварительно, или перестраивать заново)
Старый 19.11.2007, 17:10   #5  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Потому что если между таблицами настроен Relation (именно он на узле таблицы), то он должен попадать в этот список.
Да, на таблице T1 настроен Relation для CustTable. Тем не менее в списке источников данных T1 нет.
Цитата:
Возможно просто перекрестные ссылки не построены?
Возможно. Я уточню. Только что специально обновил перекрестные ссылки только для этих двух таблиц - безрезультатно. Если бы заработало, меня бы это полностью устроило.
Цитата:
на форму клиентов (программно) еще один источник, (exists join), на него накладывать фильтры.
Правда тут недостаток - проблема восстановления изначального запроса
Ага. Это как раз то решение, которого хотелось избежать. Подумаю, что еще можно сделать. Спасибо.
Старый 19.11.2007, 17:26   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Hyper Посмотреть сообщение
Да, на таблице T1 настроен Relation для CustTable. Тем не менее в списке источников данных T1 нет.

Возможно. Я уточню. Только что специально обновил перекрестные ссылки только для этих двух таблиц - безрезультатно. Если бы заработало, меня бы это полностью устроило.
А как именно вы это делали?

Выберите Сервис\Средства разработки\Перекрестные ссылки\Периодические операции\Обновление

и выберите обновить "Модель данных" (и только эту галку) - по-моему именно это задание пробегается по ссылкам.

А потом еще перезапустите клиента на всякий случай
За это сообщение автора поблагодарили: Hyper (1).
Старый 21.11.2007, 12:38   #7  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от kashperuk Посмотреть сообщение
и выберите обновить "Модель данных" (и только эту галку) - по-моему именно это задание пробегается по ссылкам.

А потом еще перезапустите клиента на всякий случай
Помогло, спасибо за подсказку. И без перезапуска клиента.

Но в конечном итоге дело все-таки закончилось программным добавлением еще одного источника данных на форму для обеспечения необходимого фильтра, и восстановлением первоначального запроса впоследствии. Все для удобства клиента.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрование записей при "переходе к основной таблице" demID DAX: Программирование 10 18.11.2015 12:52
Ввести значение, которого нет в связанной таблице nano3 DAX: Программирование 5 14.07.2008 14:50
Real в качестве ключа - ошибка при создании записи в связанной таблице sgt.Pepper DAX: Программирование 4 20.05.2008 16:08
подскажите о временной таблице novic DAX: Программирование 6 18.08.2005 16:27
фильтр по связанной таблице mick_777 DAX: Программирование 13 21.08.2002 16:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:37.