Показать сообщение отдельно
Старый 25.06.2009, 07:56   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
! Метод typeCnt() класса Dictionary
Доброго времени суток.

Наткнулся на очередную фичу Аксапты. Метод typeCnt() класса Dictionary в AX 4.0 и AX 2009 почему-то возвращает на единицу больше существующих EDT(в AX 3.0 работает нормально). Ниже приведенный job наглядно это демонстрирует.

X++:
static void SRF_TestDictionaryTypeCnt(Args _args)
{
    Dictionary          dictionary = new Dictionary();
 
    ExtendedTypeId      currentTypeId;
    Counter             typeCnt;
    ;
    for (currentTypeId = dictionary.typeNext(0); currentTypeId; currentTypeId = dictionary.typeNext(currentTypeId))
    {
        typeCnt++;
    }
    info(strfmt("%1", dictionary.typeCnt() - typeCnt));
}
У меня результат в AX 3.0 - 0 (результат вполне ожидаем), а вот в AX 4.0 и AX 2009 job упорно выдает - 1 !!!!
Все бы ничего, если бы при использовании других xxxCnt() и xxxNext() методов класса Dictionary результат тоже был 1 (объяснялось бы проще - изменился принцип работы методов xxxCnt()) однако это не так, результат такой же как и в AX 3.0 - 0.

OFFTOPIC : В голову почему-то приходит фраза: "О, женщина. Как ты не постоянна", которую я не много перефразировал
Цитата:
О, Аксапта. Как ты не постоянна
но из-за того непостоянства мне нравиться с ней работать, поскольку не знаешь, где и когда будет "подвох"

Последний раз редактировалось SRF; 25.06.2009 в 07:57. Причина: опечатки
За это сообщение автора поблагодарили: kashperuk (5).