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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2012, 17:10   #1  
vazerdim is offline
vazerdim
Участник
 
77 / 40 (2) +++
Регистрация: 06.09.2008
Ошибки в ГФО DAX2009
Наткнулся на баг в функционале ГФО:

Класс: LedgerRRGOperationParm_RU
X++:
private void loadDimensionList(Common _record)
{
    LedgerRRGDimensionInterval_RU   dimensionInterval;
    str                             dimensionFilter;
    int                             dimensionIdx;
    ;

    select dimensionInterval
        where dimensionInterval.DimTableID == _record.TableId &&
              dimensionInterval.DimRecID   == _record.RecId;

    //if (dimensionInterval) // исправление ошибки фильтра по аналитикам
    {
        dimensionFilterMap = new Map(Types::Integer, Types::String);
    }

    while (dimensionInterval)
    {
        dimensionIdx    = Dimensions::code2ArrayIdx(dimensionInterval.DimensionCode);
        dimensionFilter = this.filterValue(dimensionInterval.FromDimNum, dimensionInterval.ToDimNum);
        if (dimensionFilterMap.exists(dimensionIdx))
        {
            dimensionFilter = dimensionFilterMap.lookup(dimensionIdx)  + #comma + dimensionFilter;
        }

        dimensionFilterMap.insert(dimensionIdx, dimensionFilter);
        next dimensionInterval;
    }
}
Если у нас есть две строки в настройке отчета, первая строка имеет фильтр по аналитикам, а вторая нет. То при формировании отчета фильтр из первой строки настройки будет действовать и на вторую.

Так как есть ещё следующий код:
X++:
if (!dimensionFilterMap)
    {
        dimensionFilterMap = _parm.dimensionFilterMap();
    }
Если у нас не инициализирован map, то мы берем предыдущий, что не верно.

Если же строки поменять местами, то результат получается верным.
Для себя решил просто убрать if. Теперь все корректно формируется.

DAX 2009 RU5
За это сообщение автора поблагодарили: mnt_dx (3).
Старый 17.07.2012, 17:49   #2  
ashu is offline
ashu
MCTS
MCBMSS
 
255 / 78 (3) ++++
Регистрация: 24.06.2008
аналогичная тема была 3 месяца назад и прилагалось решение:
Ошибка в генераторе финансовых отчетов
ну и похожее обсуждение по 3 версии годичной давности:
Как заставить отчет в ГФО учитывать сразу несколько аналитик ?
ЗЫ. юзаем поиск господа

Последний раз редактировалось ashu; 17.07.2012 в 17:53.
Старый 17.07.2012, 18:24   #3  
vazerdim is offline
vazerdim
Участник
 
77 / 40 (2) +++
Регистрация: 06.09.2008
Спасибо за ссылки.
Старый 18.07.2012, 11:34   #4  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Их там полно таких. У меня целый проект есть на эту тему.
Для не желающих патчить советую не использовать вложенные атрибуты более чем на один уровень (см. родные отчеты от MS - там об этих ограничениях знают).
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 18.07.2012, 17:27   #5  
vazerdim is offline
vazerdim
Участник
 
77 / 40 (2) +++
Регистрация: 06.09.2008
А могли бы вы поделиться какие ещё баги правили? А то у нас активно сейчас пользователи используют данный функционал.
Теги
генератор финансовых отчетов, гфо, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
как узнать код ошибки при подключении к базе? CHESER85 DAX: Программирование 13 15.07.2013 10:25
DAX2009 не дружит с VS2010 oleg_e DAX: Администрирование 2 17.06.2010 10:34
Метод "SendMail" в COM-объекте класса "Dundas.mailer" возвратил код ошибки 0x80004005 (E_FAIL), который означает: The RCPT command failed. The specified account does not exist. Андрей К. DAX: Программирование 3 10.07.2009 16:08
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
Апгрейд существующего приложения на DAX2009 petr DAX: Администрирование 3 03.09.2008 18:54

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

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

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