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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.09.2010, 15:51   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от db Посмотреть сообщение
в замену одного числа в макросе/методе который это 255 определяет. Да и вероятность расширения енумов мала микроскопически

Дополнение. Имелся ввиду не макрос метод в каждом обработчике, а нечто одно на всю аксапту. Макрос который живет в AOT, статический метод, ф-ия в Global
Все равно мне кажется сомнительное решение. Использование констант в X++ не приветствуется.
На мой взгляд лучше подумать при создании enuma как он будет использоваться, в каких случаях по нему будут выполняться сравнительные действия, и уже продумать использовать в нем нулевой элемент, или нет.

Итого: на мой взгляд в Enum-параметрах лучше не использовать нулевой элемент.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: MikeR (4).
Старый 13.09.2010, 16:04   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
Использование констант в X++ не приветствуется.
Именно поэтому их и заворачивают в макросы/стат методы

Для тех кому 255 неприемлемо по религиозным соображениям - кошерная эмуляция NULL с помощью двух parm- методов

MySuperEnum parmMySuperEnum()
boolean parmUseMySuperEnum()
Старый 13.09.2010, 16:10   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от db Посмотреть сообщение
Именно поэтому их и заворачивают в макросы/стат методы

Для тех кому 255 неприемлемо по религиозным соображениям - кошерная эмуляция NULL с помощью двух parm- методов

MySuperEnum parmMySuperEnum()
boolean parmUseMySuperEnum()
Все проще Используйте везде в своем коде элемент None (0) как пустой, и тогда не придется писать глобальные методы с цифирками, или эмуляторы NULL

P.S. наше обсуждение ушло немного в сторону от исходной темы, приношу свои извинения топикстартеру
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.09.2010, 16:12   #4  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
Все проще Используйте везде в своем коде элемент None (0) как пустой, и тогда не придется писать глобальные методы с цифирками, или эмуляторы NULL

P.S. наше обсуждение ушло немного в сторону от исходной темы, приношу свои извинения топикстартеру
Да я бы рад, только что делать с каким нибудь, например, SalesType?
Старый 13.09.2010, 16:24   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от db Посмотреть сообщение
Да я бы рад, только что делать с каким нибудь, например, SalesType?
ждал этого вопроса
если вам нужно выполнить обработку по заказам, и эта обработка должна быть параметризирована, то я бы для обработки создал свой Enum, с помощью которого бы определялось, выполнять обработку по заказам с SalesType = Journal или Sales.
Конечно это более трудозатратно чем просто передать в параметре SalesType, но в случае с уже существующими (системными) enum-ами, где нулевой элемент несет смысловую нагрузку, это гарантирует что все проверки по параметру отработаю корректно, и все необходимые заказы будут обработаны. Вот как то так
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.09.2010, 16:33   #6  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
ждал этого вопроса
если вам нужно выполнить обработку по заказам, и эта обработка должна быть параметризирована, то я бы для обработки создал свой Enum, с помощью которого бы определялось, выполнять обработку по заказам с SalesType = Journal или Sales.
Конечно это более трудозатратно чем просто передать в параметре SalesType, но в случае с уже существующими (системными) enum-ами, где нулевой элемент несет смысловую нагрузку, это гарантирует что все проверки по параметру отработаю корректно, и все необходимые заказы будут обработаны. Вот как то так
Ну это и есть "вид сбоку" для кошерного варианта с двумя parm-методами. Доп parm метод или новый енум, объединяющий в себе и галку и собственно тип. Лично я все таки предпочту не засорять AOT одноразовыми енумами

Идеального универсального решения для этой задачи нет. Выбираем на свой вкус и пользуемся при необходимости. Вкусы можно менять в зависимости от ситуации

Предлагаю на этом закончить
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Глюк RunBase (AX40sp2) Alexx7 DAX: Программирование 7 22.01.2010 10:59
Inside Dynamics AX 4.0: RunBase Framework Extension Part IV Blog bot DAX Blogs 0 02.10.2007 04:49
Inside Dynamics AX 4.0: RunBase Framework Extension Part III Blog bot DAX Blogs 0 02.10.2007 04:49
Inside Dynamics AX 4.0: RunBase Framework Extension Part I Blog bot DAX Blogs 0 30.09.2007 09:20
Некоторые вопросы внедрения приложений. Часть 2 Михаил Ковалев DAX: Прочие вопросы 0 27.05.2002 10:43
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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