Показать сообщение отдельно
Старый 22.07.2014, 11:59   #19  
Sergikrus is offline
Sergikrus
Участник
 
82 / 15 (1) ++
Регистрация: 26.09.2008
Адрес: Tyumen
Цитата:
Сообщение от AndyD Посмотреть сообщение
255 - это __ILLEGAL_VALUE__
Это уже следствие

Надо разбираться, почему queryValue(sysDimension:: Department) возвращает пусто (а пусто ли?).
Смотрите под отладчиком, что в этом методе происходит.
Проверьте метку или значение, которое прописано в Label SysDimension:: Department. Можно, на всякий случай, пересохранить это значение
Немного не так.
Метод выглядит executeQuery вот так:
public void executeQuery()
{
;
queryDimensionTypeAllRange.value(queryValue(sysDimension));

super();
}

инициализация sysDimension происходит в run и в getLookupType при условии что, element.args().dataset() будет равен Dimensions, LedgerControlDimension, TmpSysQuery
X++:
public void run()
{
    boolean             filterLookup;
    ;

    callerControl   = SysTableLookup::getCallerStringControl(element.args());
    callerFieldId   = callerControl.dataField();

    sysDimension    = Dimensions::arrayIdx2Code(fieldExt2Idx(callerFieldId));
    callerFieldId   = fieldExt2Id(callerFieldId);
    if (!callerFieldId)
    {
        sysDimension = Dimensions::arrayIdx2Code(callerControl.arrayIndex());
    }
.....

В нашем случае мы запускаем расширенный фильтр на любой форме, где есть фин. аналитика по клавише CTRL + F3:

Нажмите на изображение для увеличения
Название: 4.png
Просмотров: 570
Размер:	11.0 Кб
ID:	8930

И ни одно из условий не выполняется. видимо значение по умолчания для enum, если он не инициализирован 255, я так это понимаю.

Но как то чудно это, функциональность эта на gls слое, неужели у всех так работает?

Значение присваивается только в run().
info(enum2str(sysDimension)); показывает "Пусто"

Последний раз редактировалось Sergikrus; 22.07.2014 в 12:10. Причина: проверил