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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.08.2008, 07:11   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
:( FormListItem.stateChecked() еще раз :(
Да, была такая тема уже. Но все равно не работает
Помогите пожалуйста!
Вот код:
X++:
public void buildUtilElementsTypeList()
{
    FormListItem    formListItem;
    int             idx=0, i=0;
    SysDictEnum SysDictEnum;
    boolean checked;
    str  UtilTypeLabel;
    ;
    SysDictEnum = new SysDictEnum(EnumNum(UtilElementType));
 
    UtilElementsTypes.deleteAll();
    while (i <=enumcnt(UtilElementType) )
    {
        UtilTypeLabel= SysDictEnum.index2Label(i);
        formListItem = new FormListItem(UtilTypeLabel,i);
        formListItem.idx(i);
       select firstonly tmptable where
                tmptable.UtilElementType == i;
        if (tmptable) checked = true; else checked = false;
        idx = UtilElementsTypes.addItem(formListItem);
        formListItem = UtilElementsTypes.getItem(idx);
        formListItem.stateChecked(checked);
        UtilElementsTypes.setItem(formListItem);
        i++;
     }
 }
Задача простая - вывести список и отчекить те элементы, которые есть во временной таблице. Симптомы нерабочести - есть если изначально отметили элементы с первого по пятый, то после повторного открытия будут отмечены 2,3,4,5 + какой-то случайный. Хотя в таблице при этом хранится все правильно. Бред какой-то.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 05.08.2008, 13:05   #2  
altap is offline
altap
MCTS
MCBMSS
 
26 / 18 (1) ++
Регистрация: 28.09.2005
А как сохраняется временная таблица от открытия до открытия?

Последний раз редактировалось altap; 05.08.2008 в 13:58.
Старый 05.08.2008, 14:03   #3  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
X++:
 while (i < enumcnt(utilElementType) )
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 05.08.2008, 14:09   #4  
altap is offline
altap
MCTS
MCBMSS
 
26 / 18 (1) ++
Регистрация: 28.09.2005
а поле tmptable.UtilElementType - имеет тип Enum UtilElementType?
если - да, то На правах предположения:
следует учесть, что перечисление может не иметь элемента с EnumValue 0, да и эти EnumValue в перечислении могут не идти сплошным множеством. Это я про выражение
X++:
tmptable.UtilElementType == i
ведь i в данном случае - только порядковый номер элемента в перечислении, а tmptable.UtilElementType - это значение перечисления, что не обязательно одно и то же.
возможно правильнее было-бы что-то типа:
X++:
tmptable.UtilElementType == SysDictEnum.index2Value(i)

Последний раз редактировалось altap; 05.08.2008 в 14:11.
Старый 05.08.2008, 14:33   #5  
crazysolntse is offline
crazysolntse
Участник
Аватар для crazysolntse
 
21 / 11 (1) +
Регистрация: 24.07.2006
Адрес: Москва
мне кажется, даже если писать
X++:
tmptable.UtilElementType == SysDictEnum.index2Value(i)
впрочем как и

X++:
UtilTypeLabel= SysDictEnum.index2Label(i)
то результат может быть непредсказуемым, так как было уже сказано, в enum - е елементы могут идти с значениями не порядку

сооветственно надо проверять в цикле, существует ли такое значение enum-а , равное i
Старый 05.08.2008, 14:56   #6  
altap is offline
altap
MCTS
MCBMSS
 
26 / 18 (1) ++
Регистрация: 28.09.2005
Цитата:
Сообщение от crazysolntse Посмотреть сообщение
мне кажется, даже если писать...
ну почему-же непредсказуемый.
Аргумент методов index2Value и index2Label - это не значение EnumValue конкретного элемента перечисления, а номер по порядку этого элемента (насколько я понимаю)
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 05.08.2008, 15:03   #7  
crazysolntse is offline
crazysolntse
Участник
Аватар для crazysolntse
 
21 / 11 (1) +
Регистрация: 24.07.2006
Адрес: Москва
Цитата:
Сообщение от altap Посмотреть сообщение
Аргумент методов index2Value и index2Label - это не значение EnumValue конкретного элемента перечисления, а номер по порядку этого элемента (насколько я понимаю)
да, действительно, ошиблась
Старый 05.08.2008, 21:55   #8  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Angry
Таблица временно не временная, а обычная.

Вот как это выглядит:
1 шаг - открыли форму и отметили элементы:



2 шаг сохранили в таблице отмеченные значения:



3 шаг снова открыли форму и пытаемся отметить существующие в таблице значения:



Вот такая беда.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 05.08.2008, 22:07   #9  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
MSDN about DictEnum:
Name - ReqDate
Label - @SYS18075 ("Requirement date")
FeatureKey - ReqSchedAction
EnumValue - 0
Index - First (Index = 0) - Position in AOT
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 05.08.2008, 22:12   #10  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Talking
Цитата:
Сообщение от altap Посмотреть сообщение
следует учесть, что перечисление может не иметь элемента с EnumValue 0, да и эти EnumValue в перечислении могут не идти сплошным множеством. Это я про выражение
X++:
tmptable.UtilElementType == i
ведь i в данном случае - только порядковый номер элемента в перечислении, а tmptable.UtilElementType - это значение перечисления, что не обязательно одно и то же.
возможно правильнее было-бы что-то типа:
X++:
tmptable.UtilElementType == SysDictEnum.index2Value(i)
точно! 5+
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Visible для FormListItem petr DAX: Программирование 3 30.09.2008 11:03
FormListItem.stateChecked() - баг или фича ? Андре DAX: Программирование 5 20.02.2003 14:25

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

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

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