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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.12.2013, 20:13   #1  
ackid is offline
ackid
Участник
 
34 / 12 (1) ++
Регистрация: 21.10.2013
Добавить хитрый фильтр в Query
Вопрос в следующем.
Есть табличка с перечислением операций.
У одной номенклатуры может быть неопределённое количество операций,
пусть номенклатура = номерМашины, а операция = это какое-то действие в определённом городе.
Все операции друг от друга отличаются названием и датой операции.


Как создать range (а может и не range) чтобы можно было проверить на следующую операцию. То есть например покажи такие строки у которых следующая операция = погрузка?

У меня пока только идея использовать displayMethod на табличке, но вот не знаю получиться ли подвязать его к range (сейчас проверю).

Может есть какой-то другой подход?
Старый 13.12.2013, 21:16   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
По дисплейному методу фильтровать не получится. Для задания критерия по "следующей" операции нужно присоеденить (join) к таблице операций саму себя.

X++:
Operation Operation;
Operation OperationNext; // второй курсор на ту же таблицу

while select Operation
join OperationNext
where
    OperationNext.ItemId == Operation.ItemId &&
    OperationNext.Num == Operation.NextNum &&
    OperationNext.Name == "Погрузка"
{

}
За это сообщение автора поблагодарили: Pustik (10).
Старый 14.12.2013, 07:10   #3  
ackid is offline
ackid
Участник
 
34 / 12 (1) ++
Регистрация: 21.10.2013
Спасибо, да так должно получиться ... Но вот проблема в том что нет поля nextOperation в operation.
Но теперь при таком подходе думаю создать метод nextOperation() и вызвать его при join. Думаю должно получиться , поправьте если я не прав.
Старый 14.12.2013, 07:13   #4  
ackid is offline
ackid
Участник
 
34 / 12 (1) ++
Регистрация: 21.10.2013
operation.nextOperation я имел в виду что это - operation.nextNum. Если ссылаться на пример от S.Kuskov
Старый 14.12.2013, 11:29   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ackid Посмотреть сообщение
Спасибо, да так должно получиться ... Но вот проблема в том что нет поля nextOperation в operation.
Но теперь при таком подходе думаю создать метод nextOperation() и вызвать его при join. Думаю должно получиться , поправьте если я не прав.
Метод не поможет, нужно именно поле. В Аксапте нельзя сортировать, фильтровать и использовать в связях табличные методы. Дело в том что методы вычисляются на уровне AOS, а работа с запросами происходит на уровне БД.
За это сообщение автора поблагодарили: mazzy (2).
Старый 16.12.2013, 08:14   #6  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
Чтобы сделать правильный запрос, нужно ответить на вопрос, что значит "следующая операция"? возможно есть сортировка или еще что-то, что точно определит нужную строку
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как в query добавить фильтр по аналитике (Dimension)? Roman812 DAX: Программирование 21 15.07.2005 09:53
Быстрый способ добавить фильтр на FormDataSource Maxim Gorbunov DAX: База знаний и проекты 28 14.06.2005 17:16
фильтр в query kitty DAX: Программирование 4 25.05.2005 09:44
Фильтр в Query по двум полям ArturK DAX: Программирование 1 15.03.2004 13:17

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

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

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