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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2017, 14:22   #1  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Чего вы меня путаете ?...
Property : configuration key - не для этого ли?


Mandatory на enum.
Я извиняюсь, конечно, может задачи не разглядел, но это как??!!!
__________________
Axapta book for developer
За это сообщение автора поблагодарили: iCloud (2).
Старый 20.01.2017, 14:35   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от MikeR Посмотреть сообщение
Mandatory на enum.
Я извиняюсь, конечно, может задачи не разглядел, но это как??!!!
Mandatory на поле с типом ENUM
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: mazzy (2).
Старый 20.01.2017, 14:48   #3  
LMA is offline
LMA
Участник
 
22 / 16 (1) ++
Регистрация: 16.09.2004
Адрес: Воронеж
HideFirstEntry на ComboBox - не оно?
За это сообщение автора поблагодарили: mazzy (2), MikeR (1), iCloud (2).
Старый 20.01.2017, 14:52   #4  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
может UseEnumValue = Yes? Ну и соответственно в EnumValue элементов избавиться от 0... Или я тоже не понял вопрос
ЗЫ: Про семерку не знаю...
Старый 20.01.2017, 15:02   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
В принципе довольно хороший воркэраунд - навесить Mandatory=Yes на поле в таблице.
Цитата:
Сообщение от Ruff Посмотреть сообщение
может UseEnumValue = Yes? Ну и соответственно в EnumValue элементов избавиться от 0... Или я тоже не понял вопрос
ЗЫ: Про семерку не знаю...
Нет, свойство UseEnumValue предназначено для определения, будут ли значения элементов данного типа совпадать с представлением в самой БД.
Подробнее здесь.
__________________
// no comments
Старый 20.01.2017, 15:16   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от dech Посмотреть сообщение
В принципе довольно хороший воркэраунд - навесить Mandatory=Yes на поле в таблице.
В AX2012 это должно работать только если элемент с индексом 0 явно назван None.
То есть Mandatory=Yes AND 0 = None
За это сообщение автора поблагодарили: mazzy (2), MikeR (3), gl00mie (2), dech (1).
Старый 20.01.2017, 15:43   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ax_mct Посмотреть сообщение
В AX2012 это должно работать только если элемент с индексом 0 явно назван None.
То есть Mandatory=Yes AND 0 = None
А если элемента со значением 0 в энуме вообще не будет, Mandatory=Yes разве разрешит оставить поле непроинициализированным?
За это сообщение автора поблагодарили: mazzy (2), MikeR (3).
Старый 20.01.2017, 16:04   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А если элемента со значением 0 в энуме вообще не будет, Mandatory=Yes разве разрешит оставить поле непроинициализированным?
Кстати да. Отсутствие нулевого элемента вообще и Mandatory=Yes может быть лучше.

Не должно разрешать, то есть должно заставить выбрать.
Старый 20.01.2017, 16:14   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от LMA Посмотреть сообщение
HideFirstEntry на ComboBox - не оно?
точно! оно.
но блин, оно слишком близко к пользовательскому интерфейсу... задолбаешься его протягивать...
надо подумать.

Цитата:
Сообщение от AndyD Посмотреть сообщение
Mandatory на поле с типом ENUM
я щас попробую.
но если поставить mandatory, то разве в выпадающем списке пустое значение пропадет?
просто хотелось бы явно дать понять пользователю, что в этом месте пустых значений быть не может.
причем так, чтобы не пришлось программировать направо-налево, а точечно изменить одно-два свойства.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А если элемента со значением 0 в энуме вообще не будет, Mandatory=Yes разве разрешит оставить поле непроинициализированным?
будет ошибка при валидации, перед записью в базу.
мне кажется, что это уже поздно.
хотелось бы чтобы пользователь понял раньше - здесь пустое значение не допускается.
Миниатюры
Нажмите на изображение для увеличения
Название: ax6.PNG
Просмотров: 409
Размер:	77.9 Кб
ID:	11149   Нажмите на изображение для увеличения
Название: ax7.PNG
Просмотров: 458
Размер:	58.8 Кб
ID:	11150  

Старый 04.03.2024, 15:46   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ax_mct Посмотреть сообщение
В AX2012 это должно работать только если элемент с индексом 0 явно назван None.
То есть Mandatory=Yes AND 0 = None
Какая гадостная штука.
Поотваливались проверки на обязательность при переходе на Ax2012

Дописали свою проверку Best practice
\Classes\SysBPCheckTableField\checkEnumFieldMandatory_MRC

X++:
boolean checkEnumFieldMandatory_MRC()
{
    str         message;
    boolean     ret = true;
    ;

    if (!sysDictTable || !sysDictField)
    {
        return ret;
    }

    if (sysDictField.baseType() != Types::Enum)
    {
        return ret;
    }

    if (!sysDictField.mandatory())
    {
        return ret;
    }

    if (!sysDictEnum)
    {
        return ret;
    }

    if (!sysDictEnum.value2Symbol(0))
    {
        return ret;
    }

    if (sysDictEnum.value2Symbol(0) == "None")
    {
        return ret;
    }

    ret = false;
    message = strFmt("Свойство \"Mandatory\" не будет работать, так как дефолтное значение енума \"%1\" равно \"%2\". " +
        "Чтобы работало переименуйте на \"%1::None\". Это появилось с 2012-й версии. См. " +
        "https://dynamicsaxhints.blogspot.com/2016/05/mandatory-table-field-based-on-enum.html" + "\n" +
        "https://learn.microsoft.com/en-us/dynamicsax-2012/developer/best-practices-for-base-enums" + "\n" +
        "https://dax.axforum.info/forums/showthread.php?p=394676#post394676" + "\n",
        sysDictEnum.name(),
        sysDictEnum.value2SymbolWithEnumName_MRC(0)
        );
    sysBPCheck.addError(#BPErrorMandatoryEnumValue_MRC /* 12502 */, 0, 0, message, "Mandatory", sysDictField.path());

    return ret;
}
Теги
ax2012, dax2012, enum, mandatory

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: How to add enum filter with All element Blog bot DAX Blogs 0 19.07.2016 20:11
dynamicsaxhints: How to make enum a mandatory field on a table Blog bot DAX Blogs 0 04.05.2016 06:17
DeniZone: Assigning enum value to variable from enum name Blog bot DAX Blogs 0 17.04.2015 23:11
Как получить из элемента enum-а код типа (enum-а)? Romb DAX: База знаний и проекты 12 27.06.2013 16:17
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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:44.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.