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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2011, 08:42   #1  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Проблема с Enum
Добрый день, уважаемые!

X++:
static void Job1(Args _args)
{

    Table1              t1;
    WeekDays       wd;
    Orderid            oriderid;
    DictEnum        e = new DictEnum(enumnum(WeekDays));
    ;
        orderid = "ЗП000001";
        ttsbegin;
        t1= Table1::find(orderid, true);
        if(t1)
        {
            t1.WeekDays = 1; //Ругается на ошибку "Типы операнда не совместимы с оператором".
            //Пробовал так: t1.WeekDays = WeekDays::Monday; //Та же ошибка =(
            t1.update();
        }
        ttscommit;
}

Как обойти эту ошибку? Что я делаю не так? Спасибо! =)
Старый 30.08.2011, 08:53   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А какого типа (базового и расширенного) поле Table1.WeekDays?
За это сообщение автора поблагодарили: Borsugg (1).
Старый 30.08.2011, 09:08   #3  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А какого типа (базового и расширенного) поле Table1.WeekDays?
Да-а.. Вот где моя первая ошибка...
Поле расширенного типа DeliveryWeekDays с EnumType = NoYes
Старый 30.08.2011, 10:02   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Borsugg Посмотреть сообщение
с EnumType = NoYes
Тогда присваивание int
X++:
t1.WeekDays = 1;
должно было работать.
За это сообщение автора поблагодарили: Borsugg (1).
Старый 30.08.2011, 10:15   #5  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Тогда присваивание int
X++:
t1.WeekDays = 1;
должно было работать.
Все равно ругается на эту ошибку: "Типы операнда не совместимы с оператором."
Старый 30.08.2011, 10:36   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
что возвращает

X++:
print typeof(t1.WeekDays);
pause;
За это сообщение автора поблагодарили: Borsugg (1).
Старый 30.08.2011, 11:20   #7  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Вроде разобрался.
DeliveryWeekDays - это массив с длиной = 7.

будет работать так -
X++:
t1.WeekDays[0] = 1;
Спасибо! =)
Старый 30.08.2011, 12:00   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Borsugg Посмотреть сообщение
Вроде разобрался.
DeliveryWeekDays - это массив с длиной = 7.

будет работать так -
X++:
t1.WeekDays[0] = 1;
Спасибо! =)
Сложилось впечатление, что вы используете не тот EDT для этого поля таблицы. В результате поле выполняет несовсем те функции, которые на него возложены.
Мне кажется это поле Вам проще и логичнее наследовать от Enum "WeekDays".
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 30.08.2011, 12:18   #9  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от lev Посмотреть сообщение
Мне кажется это поле Вам проще и логичнее наследовать от Enum "WeekDays"
Я так подозреваю, что в этом поле хранятся некие разрешения по дням недели. Что-то типа "Допустимые дни отгрузки" и 7 чекбоксов на каждый день недели. Тут от WeekDays не унаследуешься

P.S. Автор, вы бы лучше написали t1.WeekDays[0] = true. Так как-то ближе к логике, ибо слева у вас всё-таки булевое поле
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: Borsugg (1).
Старый 30.08.2011, 12:22   #10  
Borsugg is offline
Borsugg
Участник
 
22 / 10 (1) +
Регистрация: 09.08.2011
Цитата:
Сообщение от pitersky Посмотреть сообщение
Я так подозреваю, что в этом поле хранятся некие разрешения по дням недели. Что-то типа "Допустимые дни отгрузки" и 7 чекбоксов на каждый день недели. Тут от WeekDays не унаследуешься
Совершенно верно.

Цитата:
Сообщение от pitersky Посмотреть сообщение
P.S. Автор, вы бы лучше написали t1.WeekDays[0] = true. Так как-то ближе к логике, ибо слева у вас всё-таки булевое поле
Спасибо, учту обязательно.
Старый 30.08.2011, 12:44   #11  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от pitersky Посмотреть сообщение
Я так подозреваю, что в этом поле хранятся некие разрешения по дням недели. Что-то типа "Допустимые дни отгрузки" и 7 чекбоксов на каждый день недели. Тут от WeekDays не унаследуешься
Тогда да, согласен.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 30.08.2011, 12:46   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от pitersky Посмотреть сообщение
P.S. Автор, вы бы лучше написали t1.WeekDays[0] = true. Так как-то ближе к логике, ибо слева у вас всё-таки булевое поле
К стати, в аксапте булевое поле - это enum, а enum - это int
X++:
    print typeof(true);
    print typeof(boolean::true);
    pause;
Старый 30.08.2011, 13:11   #13  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Это не значит, что вместо true надо писать 1, а вместо WeekDays::Friday - 5. Раз уж мы используем енум, то используем его с нужной степенью наглядности
__________________
С уважением,
Вячеслав
Теги
enum

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
saveenr: More AX SSRS Screencasts and Instructions on Getting an AX Enum into a Report Blog bot DAX Blogs 0 09.12.2010 02:13
Проблема вызова метода доступа (Enum'ы!) Zoe DAX: Программирование 4 14.04.2008 23:48
ComboBox и Enum ArturK DAX: Программирование 1 01.03.2004 16:19
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
OLAP, проблема, ENUM в качестве аналитики z_av DAX: База знаний и проекты 1 22.07.2003 17:55

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

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

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