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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.02.2015, 17:34   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Я не очень понял те танцы с бубнами, которые вы исполняете. Зачем вам два Query? Отображайте пользователю тот запрос по которому потом будете работать, пусть пользователь прямо в него добавляет всё что хочет.
именно, что не понял. (давай на ты, интернет всё-таки).

пользователь видит тот запрос, по которому всё выводится, и все нужные фильтры туда добавляет.

проблема в том, чтобы потом из таблицы reqTrans мне нужно разложить строки во временную таблицу, которая "кормит" отчёт, по столбцам в соответствии со значением refType.

среди прочих параметров, доступных пользователю есть "показывать пустые строки", который решает, выводить ли всё содержимое или только те, где колонка "запланировано" не пуста.

сейчас я запускаю запрос как есть, а потом "прибиваю" ненужные строки прямо во времянке.

X++:
/// <summary>
/// Gets the data from <c>cgiCutOrderReportTmp</c> for those only with planned transactions.
/// </summary>
/// <returns>
/// The <c>cgiCutOrderReportTmp</c> temporary table.
/// </returns>
private void getCgiCutOrderReportTmpPlannedOnly()
{
    cgiCutOrderReportTmp    cgiCutOrderReportTmpPlanned;
    delete_from cgiCutOrderReportTmp
    notexists join cgiCutOrderReportTmpPlanned
        where   cgiCutOrderReportTmpPlanned.ItemId  == cgiCutOrderReportTmp.ItemId
             && cgiCutOrderReportTmpPlanned.cgiInventColorId  == cgiCutOrderReportTmp.cgiInventColorId
             && cgiCutOrderReportTmpPlanned.cgiQtyPlanned;
}
но мой вопрос более общ: можно ли проделать такой трюк с любыми запросами.
__________________
Felix nihil admirari
Старый 05.02.2015, 08:20   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от wojzeh Посмотреть сообщение
но мой вопрос более общ: можно ли проделать такой трюк с любыми запросами.
Ответ в том, что в общем случае запрос, который вы хотите получить, в аксапте не собрать даже заранее. Только если промежуточные View городить, но в runtime - не будете же вы создавать View

Проблема с реализацией Exists/notexists join.
AX2009. Не используйте NotExists

P.S.: Хотя по той же ссылке, что я привел говорят, что через Query оно должно работать. Нужно пробовать. Готового решения нет, но теоретически можно обойти пользовательский запрос и поэлементно скопировать его к себе.

Последний раз редактировалось S.Kuskov; 05.02.2015 в 08:29.
За это сообщение автора поблагодарили: wojzeh (1).
Старый 05.02.2015, 18:12   #3  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Ответ в том, что в общем случае запрос, который вы хотите получить, в аксапте не собрать даже заранее. Только если промежуточные View городить, но в runtime - не будете же вы создавать View
вот эту часть я не понял. городить вьюшки не нужно, ведь запрос уже собран. вся пуля в том, чтоб клонировать его и привязать к самому себе

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Проблема с реализацией Exists/notexists join.
AX2009. Не используйте NotExists
других экзистенциальных связок там нет. за ссылку спасибо.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
P.S.: Хотя по той же ссылке, что я привел говорят, что через Query оно должно работать. Нужно пробовать. Готового решения нет, но теоретически можно обойти пользовательский запрос и поэлементно скопировать его к себе.
во! вот именно об этом и речь! делал ли кто-нибудь уже такой поэлементный перенос?
__________________
Felix nihil admirari
За это сообщение автора поблагодарили: Logger (1).
Старый 05.02.2015, 21:58   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от wojzeh Посмотреть сообщение
других экзистенциальных связок там нет.
А пользователь если через интерфейс в фильтр добавляет связанные таблицы - они же через exists добавляются?
Старый 05.02.2015, 22:16   #5  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А пользователь если через интерфейс в фильтр добавляет связанные таблицы - они же через exists добавляются?
не знаю.
__________________
Felix nihil admirari
Теги
query, range, relation, ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
fatihdemirci: Lookup’ta join ile query yazmak Blog bot DAX Blogs 1 29.08.2010 13:35
fatihdemirci: CrossCopmany ile query yazmak Blog bot DAX Blogs 0 17.08.2010 16:05
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
Как добавить к запросу еще один источник по EXISTS JOIN Lucky13 DAX: Программирование 6 29.11.2005 15:05
Как в query добавить фильтр по аналитике (Dimension)? Roman812 DAX: Программирование 21 15.07.2005 09:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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