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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2013, 13:48   #1  
kadet is offline
kadet
Участник
 
8 / 10 (1) +
Регистрация: 07.03.2013
Извините , ошибся. Правильная связь: SalesTable.salesid=pickingroute.transrefid указывал для примера. Если использовать existsJoin, то не отображаются заказы, по которым еще нет маршрутов, так же как и Inner join.
Старый 11.03.2013, 14:09   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kadet Посмотреть сообщение
Если использовать existsJoin, то не отображаются заказы, по которым еще нет маршрутов, так же как и Inner join.
Так в вашем примере ограничение
Код:
where picking.expeditionstatus in ('active', 'started')
также не выберет такие заказы
нужно что-то вроде
Цитата:
where picking.expeditionstatus in ('active', 'started') or picking.expeditionstatus is not null

Последний раз редактировалось S.Kuskov; 11.03.2013 в 14:13.
Старый 11.03.2013, 14:57   #3  
kadet is offline
kadet
Участник
 
8 / 10 (1) +
Регистрация: 07.03.2013
Извините, я наверно не совсем правильно задал вопрос.
Есть форма которая привязана к таблицам, одна из которых SalesTable. Через эту форму создаются маршруты, соответственно появляются новые строки в таблице PickingRoute. Я пытаюсь выделить цветом строки, для этого мне необходимо,как я понимаю, добавить таблицу PickingRoute и указать LInkType. Если я указываю OuterJoin, то происходит задвоение строк, т.к. количество созданных маршрутов может быть более 1 на заказ. Если я указываю InnerJoin или ExistsJoin, то заказы, по которым нет маршрутов, не отображаются, что в принципе логично. При этом в тексте кода я не делаю ни каких изменений, следовательно, исходя из вышесказанного, LInkType должен быть OuterJoin, а в тексте мне необходимо как-то группировать строки, или я делаю что-то в корне не верно и подход должен быть совсем другим.
Если я использую код который указан в первом сообщении, то нужные строки выделяются как положено цветом, но как решить проблему задвоения строк не могу найти.
Старый 11.03.2013, 15:22   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kadet Посмотреть сообщение
Я пытаюсь выделить цветом строки, для этого мне необходимо,как я понимаю, добавить таблицу PickingRoute и указать LInkType.
Совсем не обязательно. Информацию о наличии/отсутствии маршрута можно определять для каждой строки отдельным запросом. Будет немного медленнее, но зато можно реализовать более сложную логику и на основном запрос это не будет никак отражаться.

У метода displayOption есть входной параметр. В него передаётся курсор, цвет которого в данный момент определяется (если использовать курсор из имени датасурса, то нужного результата не добиться). Используйте значение SalesId входящего курсора для поиска строк в таблице pickingroute.

X++:
select pickingroute where pickingroute.transrefid == SalesId && ...;
if (pickingroute == NULL) {...}
Старый 11.03.2013, 15:23   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от kadet Посмотреть сообщение
Извините, я наверно не совсем правильно задал вопрос.
Есть форма которая привязана к таблицам, одна из которых SalesTable. Через эту форму создаются маршруты, соответственно появляются новые строки в таблице PickingRoute. Я пытаюсь выделить цветом строки, для этого мне необходимо,как я понимаю, добавить таблицу PickingRoute и указать LInkType. Если я указываю OuterJoin, то происходит задвоение строк, т.к. количество созданных маршрутов может быть более 1 на заказ. Если я указываю InnerJoin или ExistsJoin, то заказы, по которым нет маршрутов, не отображаются, что в принципе логично. При этом в тексте кода я не делаю ни каких изменений, следовательно, исходя из вышесказанного, LInkType должен быть OuterJoin, а в тексте мне необходимо как-то группировать строки, или я делаю что-то в корне не верно и подход должен быть совсем другим.
Если я использую код который указан в первом сообщении, то нужные строки выделяются как положено цветом, но как решить проблему задвоения строк не могу найти.
Чтобы убрать задвоение (затроение, зачетверение), вам необходимо либо уточнить запрос, добавив еще какие-либо условия к вашему фильтру на форме, либо сделать на форме 2 грида со связью Master-Detail. Как это делается, можно посмотреть на форме SalesTable.
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
addicted2ax: Dynamics AX 2012 & SQL Server 2008R2: Cross Join vs. Inner Join – Houston we have *NO* Problem Blog bot DAX Blogs 0 20.12.2012 20:11
axaptapedia: Filter-by-Grid Blog bot DAX Blogs 2 30.05.2012 13:39
Возможно ли (View -> Grid) join (View -> Grid)? samolalex DAX: Программирование 0 04.10.2010 12:02
Можно ли вообще сделать JOIN временной таблицы и InventDim??? Maxim Gorbunov DAX: Программирование 9 05.03.2005 10:39
можно ли сделать с помощью join следующий запрос: SergAY DAX: Программирование 1 29.07.2003 11:39

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

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

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