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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2006, 13:08   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Report, groupBy и критерии выбора
Вопрос по этой теме уже поднимался в 2003-м году, но что-то остался без ответа.
Хотелось бы всё-таки понять почему если в отчёте у источника данных свойство OrderMode выставить в GroupBy, то можно попрощаться с выбором критериев в диалоге отчёта. Если так и должно быть, то непонятна логика.
__________________
Дмитрий
Старый 27.10.2006, 13:22   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
по-моему, это заблуждение
Ведь select с group by и полями where работает.
Другое дело, что сортировку менять нельзя (в смысле, что это уже и не сортировка будет вовсе, а группировка)
Старый 27.10.2006, 13:36   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вот пример - прекрасно все работает:

X++:
static void OpelItemQueryGroupBy(Args _args)
{
    inventTable     inventTable;
    QueryRun                qr;
    Query                   query;
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildDataSource    queryBuildDataSourceModule;
    QueryBuildRange         queryBuildRange;
    QueryBuildRange         qbrBlocked;
    ;
    query = new Query();
    queryBuildDataSource = query.addDataSource(tableNum(InventTable));
    queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, ItemId));
    queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, ItemType));
    queryBuildDataSource.orderMode(OrderMode::GroupBy);
    queryBuildDataSource.addSortField(fieldNum(InventTable, ItemGroupId));
    box::info(queryBuildDataSource.toString());
    qr = new QueryRun(query);
    if (qr.prompt())
    {
        while (qr.next())
        {
            inventTable = qr.getNo(1);
            info(strfmt("%1", inventTable.ItemGroupId));
        }
    }
}
Старый 27.10.2006, 15:17   #4  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
А как в вашем примере пользователь изменит критерии выборки? Проблема в том что в отчёте, где у источника данных стоит GroupBy, пользователь не может по нажатию кнопки "Выбор" указать что-либо своё. Вот в чём дело. Программно я-то конечно могу какой захочу range запихать туда. О пользователях забочусь
__________________
Дмитрий
Старый 27.10.2006, 15:28   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А, понял о чем вы - Да, добавлять поля в группировку по желанию пользователя нельзя. Я думал, что у вас не получается ввести значения указанных фильтров.
Извините.
Старый 27.10.2006, 15:39   #6  
zelen is offline
zelen
Участник
 
64 / 13 (1) ++
Регистрация: 08.11.2004
Адрес: г.Москва
а если попробовать создать что-то типа формы, в которой можно указть состав полей для группировки и фильтрации, потом всё это дело в цикле собрать и прицепить к Query? или вам нужна форма именно самого "фильтра"?
Старый 27.10.2006, 15:48   #7  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Традиционно встряну.

В некоторых частных случаях решением проблемы м.б. умелое использование View.
__________________
С уважением,
glibs®
Старый 27.10.2006, 17:56   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Можно подправить класс SysQueryForm метод datasourceLoad() - убрать ограничение для источников данных с orderMode() == OrderMode::OrderBy
Старый 27.10.2006, 18:29   #9  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Цитата:
Сообщение от Damn Посмотреть сообщение
Проблема в том что в отчёте, где у источника данных стоит GroupBy, пользователь не может по нажатию кнопки "Выбор" указать что-либо своё. Вот в чём дело.
Вроде как все логично - добавление полей в групировку изменяет результат выборки.

Допустим что есть отчет который отражает данные в разрезе клиентов на дату(Заданы группировки по коду клиента и дате).
Пусть пользователь может добавить еще одно поле (оно добавится в режиме группировки), например, номер накладной (отображение номера накладной в отчете не предусмотрено)
В итоге пользователь получает вместо одной строки с суммой по клиенту на дату несколько строк с разными суммами, а мы крики что опять все пАлАмАлАсь!
__________________
С уважением, kvan.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ruslan Goncharov: Storing report design in database Blog bot DAX Blogs 0 27.08.2008 18:05
palleagermark: Change the appearance of printed report ranges Blog bot DAX Blogs 1 27.05.2008 21:21
casperkamal: HTML based Report in Dynamics Ax Blog bot DAX Blogs 0 20.02.2007 09:40
Axapta Lessons: Auto Report as finished Blog bot DAX Blogs 0 28.10.2006 18:22

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

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

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