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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2020, 08:01   #1  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
DAX2009 обязательность заполнения поля RealEdit
Всем привет.
Подскажите, какое свойство поля отвечает за обязательность заполнения поля? Спрашиваю вот по чему:

Если точнее есть форма LedgerJournalTransVendInvoice в ней есть поле RealEdit 'Вторичный валютный курс' / fieldExchRateSecond связанный с дата методом LedgerJournalTrans.editExchRateSecond()

Хотелось бы что бы оно подсвечивалось красным и уведомляло что оно не
заполнено.

Но проблема в том что данное поле сразу же проставляется 0,0000 т.к. похоже дата метод уже туда пишет данные - нули.
Подскажите как такую проблему решить грамотно (в плане кода) ?
Что бы поле было пустое с самого начала, и пользователя уведомляло что бы перед разноской он должен проставлять сам либо 0 либо курс.

Последний раз редактировалось oleggy; 27.08.2020 в 09:05.
Старый 27.08.2020, 09:22   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
В аксапте в принципе нет пустого значения (null) у базовых типов данных (примитивов, в том числе строк). Есть значение по умолчанию. Например, для real - значение по умолчанию это ноль, для string - пустая строка, для date - 01\01\1900.
Некоторые элементы управления, например DateEdit, изначально вместо значения по умолчанию показывают пустую строку. У RealEdit для этого есть специальное свойство ShowZero.
Нужно понимать что при включении обязательности для поля, система будет считать, что поле не заполнено, если его значение будет совпадать со значением по умолчанию базового типа данных (и не важно какой режим отображения этого значения используется)
Если вам нужно отличать пустое значение и нулевое значение в RealEdit, то одного поля для этого вам будет не достаточно.
Старый 27.08.2020, 09:39   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Вы хотите чего-то странного с точки зрения ядра AX: чтобы поле типа real не отображало 0.0 по умолчанию, требовало ввода значения, но при этом чтобы значение 0.0 было допустимо для ввода и после ручного ввода отображалось. Насколько я знаю, стандарт так не умеет, это нужно программировать явным образом.
С учетом вышесказанного про значения по умолчанию для разных базовых типов решение описанной задачи может потребовать явно хранить на форме состояние того, вводил ли пользователь в текущей строке что-то в поле курса для триангуляции, и в зависимости от этого императивно либо "рисовать" обязательность поля и не отображать ноль, либо отображать нулевое значение, явно указанное пользователем. Декларативный подход - с использованием метаданных полей и EDT - для вашей задачи не подойдет.
Старый 27.08.2020, 10:29   #4  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Я правильно понял, что :

1. корректнее всего для данного поля RealEdit в датасорсе или на форме перекрыть метод modified и в нем сделать переменную-защелку в true.
А дальше в самой кнопки формы 'разноска' сделать проверку это переменной.
Просто не хотелось бы создавать отдельное поле в таблице для данной строки, в которой будет хранится значение менял пользователь что либо или нет.

2. я слышал что есть полу mandatoy я думал что с помощью него реализовать было..

Последний раз редактировалось oleggy; 27.08.2020 в 10:47.
Старый 27.08.2020, 11:44   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Нет, неправильно. Как вы сделаете одну переменную, когда поле с курсом у вас в каждой строке? Лучше сделать поле чек-бокс "нулевой курс" рядом в курсом, ну и если он проставлен, курс всегда обнуляется (можно еще и нередактируемым делать). Соответственно, пользователь должен проставить или этот чекбокс или ввести курс. Ну и при разноске уже легко проверять. За добавление полей в DAX деньги не берет, чтобы бояться их создавать. Кроме того, если вам так важен ввод курса, у вас в строке после разноски останется подтверждение, что пользователь в явном виде нулевой курс задал.

Второй вариант - это при разноске просто проверять и спрашивать, что "в таких-то строках нулевой курс. Продолжить?". Выбор варианта зависит от бизнес-процесса.
__________________
С уважением,
Олег.

Последний раз редактировалось oip; 27.08.2020 в 11:51.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Установка EP- на странице «Подключитесь к экземпляру АОС» - ЗАКРЫТЫ для заполнения ПОЛЯ Red06 DAX: Администрирование 16 05.06.2018 15:00
salesParmTable - где проверить правильность заполнения поля? IKA DAX: Программирование 5 06.12.2010 03:05
DAX2009: поля таблиц стандартного приложения с идентификаторами из диапазона usr-слоя gl00mie DAX: Программирование 4 22.07.2010 16:01
Обязательность заполнения фин.аналитики в 4.0 Atar DAX: Функционал 4 13.12.2007 19:10
Обязательность поля для заполнения flay DAX: Программирование 4 10.10.2006 12:19
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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