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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2008, 12:47   #1  
petergunn is offline
petergunn
Участник
 
118 / 279 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Возможная избыточность цикла
Цитата:
Сообщение от lev Посмотреть сообщение
если речь идёт просто о том какие фин аналитики есть в системе, то можно вот так:
X++:
    SysDictEnum dictEnum = new SysDictEnum(enumnum(SysDimension));
    int         i, cnt, iSearch;
    ;

    cnt = dictEnum.lastValue();

    for(i=dictEnum.firstValue(); iSearch <= cnt; i = dictEnum.nextValue(i))
    {
        iSearch++;
        info(dictEnum.value2Label(i));
    }
Приведенный алгоритм содержит потенциальный bug

Мастером финансовых аналитик (или просто в AOT) добавляем новый элемент со значением 101 (т.е. не последовательно 0,1,2,3,4,...) в enum SysDimension - в итоге цикл начинает отрабатывать 102 итерации т.к. сравнение идет iSearch <= 101 начиная с 0.

Если необходим список активных значений, то дополнительно можно проверить на предмет активности конфигурационного ключа на значении enum'а, что-то в таком духе:
X++:
static void jbDimensionListByEnum(Args _args)
{
    DictEnum    dictEnum = new DictEnum( enumNum( SysDimension ) ) ;
    Counter     enumIdx ;
    
    #define.OnlyActive
    ;

    for( enumIdx = 0; enumIdx < dictEnum.values(); enumIdx++ )
    {
#if.OnlyActive
        if( !isConfigurationKeyEnabled( dictEnum.index2ConfigurationKey( enumIdx ) ) )
            continue ;
#endif
        info( dictEnum.index2Label(enumIdx));
    }
}
За это сообщение автора поблагодарили: jiller (1).
Старый 12.11.2008, 12:57   #2  
jiller is offline
jiller
Участник
 
13 / 11 (1) +
Регистрация: 18.09.2008
И еще такой вопрос: как получить информацию о EDT, используемых в массиве типа Dimension?
Старый 12.11.2008, 13:03   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от petergunn Посмотреть сообщение
Приведенный алгоритм содержит потенциальный bug
Согласен.
Просто в разрезе описанной задачи посчитал, что такого кода достаточно, т.к. сомневаюсь что в финансовых аналитиках, кто то добавит элемент со значением 101.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.11.2008, 13:33   #4  
jiller is offline
jiller
Участник
 
13 / 11 (1) +
Регистрация: 18.09.2008
Всем огромное спасибо за помощь!
Теги
dimensions

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
финансовые аналитики в диалог longson DAX: Программирование 6 02.07.2008 03:23
Код новой фин. аналитики DAX 4.0 Ivanhoe DAX: Программирование 4 13.05.2008 15:23
Сравнение в разрезе складской аналитики. longson DAX: Программирование 3 14.01.2008 13:45
Учёт остатков в разрезе фин. аналитики miklenew DAX: Программирование 11 06.11.2007 20:01
Допустимо ли так использовать фин. аналитики kosenkov DAX: Функционал 5 26.02.2006 18:17

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

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

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