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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.11.2014, 03:07   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
ну, так я о том и написал, что BP не разрешает делать такие трюки с метками!

кстати говоря, а как проверить, что мы при импорте из текстового поля получили существующее значение перечисления (enum)?

как известно, первым идёт значение 0, оно же выбирается по умолчанию. как быть?

вот это вот "если не преобразовалось" - это как?
__________________
Felix nihil admirari
Старый 06.11.2014, 07:15   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от wojzeh Посмотреть сообщение
а как проверить, что мы при импорте из текстового поля получили существующее значение перечисления (enum)?

как известно, первым идёт значение 0, оно же выбирается по умолчанию. как быть?
Вариант 1.
При создании enum не присваивать ни одному из его значений код 0. Значение по умолчанию, все равно останется ноль, т.к. enum - это int, но теперь оно не будет совпадать ни с одним из его реальных значений.

Вариант 2. Перед использованием явно проинициализировать переменную enum несуществующим значением, например отрицательным.
Старый 06.11.2014, 13:31   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вариант 1.
При создании enum не присваивать ни одному из его значений код 0. Значение по умолчанию, все равно останется ноль, т.к. enum - это int, но теперь оно не будет совпадать ни с одним из его реальных значений.

Вариант 2. Перед использованием явно проинициализировать переменную enum несуществующим значением, например отрицательным.


Вариант 3 - добавить в enum значение с 0 под названием None
За это сообщение автора поблагодарили: Logger (3).
Старый 07.11.2014, 17:41   #4  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от belugin Посмотреть сообщение
Вариант 3 - добавить в enum значение с 0 под названием None
речь изначально шла об импорте значений из файла. соответственно нет нужды что-то менять на существующих enum. тем более для таких, как NoYes, например.
__________________
Felix nihil admirari
Старый 07.11.2014, 17:48   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от wojzeh Посмотреть сообщение
речь изначально шла об импорте значений из файла. соответственно нет нужды что-то менять на существующих enum. тем более для таких, как NoYes, например.
Не важно откуда взялось значение, если оно допустимо, а декларация типа поля показывает, что недопустимо - декларация врет и при использовании поля могут быть ошибки.

Можно еще хранить признак корректности импорта где-то еще - в другом поле или даже в другой таблице. Но лучше не декларировать что в поле может быть только No и Yes и писать туда 3.145928

Последний раз редактировалось belugin; 07.11.2014 в 17:55.
Старый 07.11.2014, 17:50   #6  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
681 / 517 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от belugin Посмотреть сообщение
Не важно откуда взялось значение, если оно допустимо, а декларация типа поля показывает, что недопустимо - декларация врет и при использовании поля могут быть ошибки.
боюсь, я не понял, что ты сказал про декларацию. можешь пример привести?
__________________
Felix nihil admirari
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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