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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2013, 13:50   #1  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
SysQueryForm и группировка в запросе
Наткнулся на интересную вещь: если в Query указана группировка (OrderMode = GroupBy), то в форме SysQueryForm не получается добавлять/удалять условия.

Мешает вот этот метод класса SysQueryForm

X++:
private void dataSourceLoad(QueryBuildDataSource _queryBuildDataSource)
{
    if (_queryBuildDataSource.allowAdd()  == QueryAllowAdd::AllFields &&
        _queryBuildDataSource.orderMode() == OrderMode::OrderBy 
        )
    {
        allTables.clear();
        allTables.DataSourceNo  = _queryBuildDataSource.uniqueId();
        allTables.Table_Id      = _queryBuildDataSource.table();
        allTables.Tablelabel    = this.getDataSourceLabel(_queryBuildDataSource.uniqueId());
        allTables.insert();
    }
}
Как я понял, это нужно для того, чтобы нельзя было добавлять новые источники, если в запросе есть группировка, но существующие-то зачем при этом запрещать менять? Какой-то уж очень жесткий багфикс, по-моему.

Axapta 3.0 SP3. Интересно, в более поздних версиях такая же логика?
Старый 27.03.2013, 15:26   #2  
NetBus is offline
NetBus
Участник
 
200 / 85 (3) ++++
Регистрация: 08.07.2005
Адрес: Москва
Microsoft Dynamics Ax 2009
application version: 5.0.1500.6491

X++:
private void dataSourceLoad(QueryBuildDataSource _queryBuildDataSource)
{
    if (_queryBuildDataSource.allowAdd()  == QueryAllowAdd::AllFields)
    {
        allTables.clear();
        allTables.DataSourceNo  = _queryBuildDataSource.uniqueId();
        allTables.Table_Id      = _queryBuildDataSource.table();
        allTables.Tablelabel    = this.getDataSourceLabel(_queryBuildDataSource.uniqueId());
        allTables.insert();
    }
}
Старый 27.03.2013, 16:07   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
В АХ 2012 R2 чуть по-другому, но суть та же:

X++:
private void dataSourceLoad(QueryBuildDataSource _queryBuildDataSource)
{
    SysDictTable sysDictTable;
    if (_queryBuildDataSource.allowAdd()  == QueryAllowAdd::AllFields)
    {
        sysDictTable            = new SysDictTable(_queryBuildDataSource.table());
        allTables.clear();
        allTables.DataSourceNo  = _queryBuildDataSource.uniqueId();
        allTables.Table_Id      = _queryBuildDataSource.table();
        allTables.Prefix_Id     = _queryBuildDataSource.table();
        allTables.IsOriginalTable = true;
        allTables.PrefixLabel   = this.getDataSourceLabel(_queryBuildDataSource.uniqueId());
        allTables.Tablelabel    = this.getDataSourceLabel(_queryBuildDataSource.uniqueId());
        allTables.insert();
        this.prefixLoad(_queryBuildDataSource,sysDictTable);
    }
}
Старый 27.03.2013, 16:46   #4  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
То есть получается, что условие по OrderMode убрали. А как интересно поступают с новыми, добавленными пользователем на этой форме, источниками. Запрещают их добавлять каким-то иным способом или стало можно добавлять новые источники, если в запросе указана группировка?
Старый 28.03.2013, 07:29   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
В АХ 4.0:
X++:
private void dataSourceLoad(QueryBuildDataSource _queryBuildDataSource)
{
    if (_queryBuildDataSource.allowAdd()  == QueryAllowAdd::AllFields)
    {
        allTables.clear();
        allTables.DataSourceNo  = _queryBuildDataSource.uniqueId();
        allTables.Table_Id      = _queryBuildDataSource.table();
        allTables.Tablelabel    = this.getDataSourceLabel(_queryBuildDataSource.uniqueId());
        allTables.insert();
    }
}
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta 3.0,AX2009 bug в Report-e: Не корректно работает группировка Section Group. Pustik DAX: Программирование 11 31.10.2011 14:05
sysQueryForm Varmen DAX: Программирование 1 28.04.2010 19:51
Группировка в Lookup maze DAX: Программирование 6 18.11.2009 17:08
Как работает группировка в запросе? vasiliy DAX: Программирование 2 02.03.2006 18:11
Значения параметров из SysQueryForm. har DAX: Программирование 19 29.10.2004 15:25
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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