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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.12.2006, 17:19   #1  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Про свойство Mandatory
Возможно кто-то сталкивался с необходимостью указать пользователю на то, что поле является обязательным к заполнению ( нарисовать волнистое подчеркивание ), при этом не трогая свойство Mandatory поля таблицы. К примеру если есть необходимость заполнения поля по некоторому условию. Можно к примеру управлять этим свойством контрола, но не у всех контролов оно есть. Или просто втупую нарисовать волнистую линию через контекст окна, но это как то не особенно красиво.

Интересно кто как решает эту задачу????
Старый 27.12.2006, 17:26   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Интересно, а у каких контролов нет св-ва Mandatory?
Старый 27.12.2006, 17:28   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
ListView
Старый 27.12.2006, 17:40   #4  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Интересно, а у каких контролов нет св-ва Mandatory?
Вам действительно интересно.. или это просто риторика ????
Старый 27.12.2006, 17:57   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,252 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от simply2double Посмотреть сообщение
при этом не трогая свойство Mandatory поля таблицы.
А если тронуть свойство поля datasource?
__________________
Isn't it nice when things just work?
Старый 27.12.2006, 18:39   #6  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
У контролов в Dialog вообще отсутствует как понятие свойство Mandatory
Если уж очень хочется сделать диалоговые поля обязательными к заполнению, необходимо допиливать класс Dialog
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 27.12.2006, 18:53   #7  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
Цитата:
Сообщение от Russland Посмотреть сообщение
У контролов в Dialog вообще отсутствует как понятие свойство Mandatory
Если уж очень хочется сделать диалоговые поля обязательными к заполнению, необходимо допиливать класс Dialog
Это не совсем так. Решается легко следующими фрагментами кода:

public Object dialog()
{
...................
FormStringControl fsc;
;
.................
dlgXXX= dialog.addFieldValue(typeid(XXX),XXX);
fsc = ddlgXXX.control();
fsc.mandatory(true);
.............................

и вполне сносно работает И никого не надо пилить зазря.
__________________
любитель портвейна и снов с прокисшей капустой в усах
Старый 28.12.2006, 08:53   #8  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от eugene egorov Посмотреть сообщение
Это не совсем так. Решается легко следующими фрагментами кода:

public Object dialog()
{
...................
FormStringControl fsc;
;
.................
dlgXXX= dialog.addFieldValue(typeid(XXX),XXX);
fsc = ddlgXXX.control();
fsc.mandatory(true);
.............................

и вполне сносно работает И никого не надо пилить зазря.
да конечно так, но если передаваемый тип enum... тогда контрол будет FormComboBoxControl, а у него нет свойства mandatory....
и получишь ты в рантайме такое послание:

Ошибка времени выполнения. : FormBuildComboBoxControl Объект не имеет метода 'mandatory'.

Трассировка стека:
(C) \Classes\FormBuildComboBoxControl\mandatory
(C) \Classes\FormButtonControl\Clicked - line 32
Старый 28.12.2006, 09:09   #9  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от simply2double Посмотреть сообщение
Вам действительно интересно.. или это просто риторика ????
Действительно интересно. Никогда не встречал таких контролов. Если имеется в виду combobox, то у него действительно нет такого свойства, но не ввести в него значение не так-то просто - по умолчанию берется первое из enum, при попытке удалить восстанавливается.
Старый 28.12.2006, 10:11   #10  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Действительно интересно. Никогда не встречал таких контролов. Если имеется в виду combobox, то у него действительно нет такого свойства, но не ввести в него значение не так-то просто - по умолчанию берется первое из enum, при попытке удалить восстанавливается.
Речь не об этом. При создании поля типа enum ему на уровне сервера задается дефаултное значение равное 0, даже если в базовом enum такого значения вообще нет. В большинстве базовых перечислений 0 это пустое поле. Создаю новую запись. При сохранении, если не переопределить свойство mandatory в таблице или в датасоурсе, этого поля, все так и сохранится даже не ругнувшись.
Речь о комбобоксе и его свойствах зашла только в том смысле что он является визуализатором поля типа enum.

Последний раз редактировалось simply2double; 28.12.2006 в 10:31.
Старый 28.12.2006, 14:15   #11  
Volodymyr is offline
Volodymyr
Участник
 
36 / 21 (1) +++
Регистрация: 03.11.2006
Адрес: Киев
Привет!
Как вариант - сделать проверку контрола по событию (например на запись в таблицу) и елси он не заполнен, то ругатся.
Старый 28.12.2006, 15:26   #12  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Цитата:
Сообщение от Volodymyr Посмотреть сообщение
Привет!
Как вариант - сделать проверку контрола по событию (например на запись в таблицу) и елси он не заполнен, то ругатся.
Замечательный вариант, приводит к нервозу пользователя и судорожному поиску поля на форме, а если форма содержит кучу закладок, то видимо быстрее будет прислать пользователю дежурного курьера с пистолетом.
Старый 28.12.2006, 15:37   #13  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от Dronas Посмотреть сообщение
Замечательный вариант, приводит к нервозу пользователя и судорожному поиску поля на форме, а если форма содержит кучу закладок, то видимо быстрее будет прислать пользователю дежурного курьера с пистолетом.
И, тем не менее - вариант самый что ни на есть правильный.

Допустите, что эта табличка не только с формы заполняется. И поле - действительно mandatory, физический смысл его такой. Тогда - 2 варианта:

1. Надеятся на аккуратность всех будущих разработчиков (оптимистический вариант, КМК)
2. Поставить проверку в методе таблицы.

Во-о-ооот...
Старый 28.12.2006, 16:18   #14  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,252 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Dronas Посмотреть сообщение
Замечательный вариант, приводит к нервозу пользователя и судорожному поиску поля на форме
Да, действительно, для полльзователя беда. Может стоит выводить осмысленные ошибки, с формой ввода недостающего значения?
__________________
Isn't it nice when things just work?
Старый 28.12.2006, 16:28   #15  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
По моему мнению, стоит обратить внимание на пост RVS. поле заполнять может не только пользователь, но и а) программист, пишущий что-то специфичное и устроившийся к вам после того, как другие уволились, б) администратор, воспользовавшийся стандартным импортом и ничего не знающий про ограничения.
Поэтому, опять же на мой взгляд, если бизнес-процесс требует в определенных случаях, обязательного указания значение, то вешать проверку нужно на таблицу, а не на форму. Если же это просто "хотелка кнопки счастья", то есть типа того "вроде нужно, но формализовать не можем, поэтому пусть программа что-то решит сама", то вопрос вообще не разработчику...
Старый 11.01.2007, 11:40   #16  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Volodymyr Посмотреть сообщение
Привет!
Как вариант - сделать проверку контрола по событию (например на запись в таблицу) и елси он не заполнен, то ругатся.
это верно, главное чтобы ругался осмыслено, но вопрос то был в том.... как визуализировать необходимость заполнения этого поля....


Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
По моему мнению, стоит обратить внимание на пост RVS. поле заполнять может не только пользователь, но и а) программист, пишущий что-то специфичное и устроившийся к вам после того, как другие уволились, б) администратор, воспользовавшийся стандартным импортом и ничего не знающий про ограничения.
Поэтому, опять же на мой взгляд, если бизнес-процесс требует в определенных случаях, обязательного указания значение, то вешать проверку нужно на таблицу, а не на форму. Если же это просто "хотелка кнопки счастья", то есть типа того "вроде нужно, но формализовать не можем, поэтому пусть программа что-то решит сама", то вопрос вообще не разработчику...
2Raven Melancholic

ох уж эти формализаторы специально для Вас формализую.... в таблице лежат строки восьми типов документов... из них в четырех типах поле ХХХ1 обязательно для заполнения, в трех необязательно, а в одном вообще не должно показываться... При этом с разными типами документов работают разные группы юзеров... заставить бедного юзера заполнять лишнее поле это лишний раз глумится над его и без того трудной долей... С другой стороны юзер с первого взгляда должен видеть что ему необходимо заполнить... При этом "закулисно" писать в поле какую нить ересь, что бы удовлетворить проверку mandatory я не хочу.
Достаточная формализация????

Последний раз редактировалось simply2double; 12.01.2007 в 10:40. Причина: добавил
Старый 29.01.2007, 10:51   #17  
Shakr
Гость
 
n/a
Добрый день.
Появилось желание "подсветить" поле. Но есть затычка - поле display.
CustTable_ds.object(fieldnum(Custtable,FIELDNAME))
уже не пашет
Старый 29.01.2007, 10:52   #18  
Shakr
Гость
 
n/a
тут: http://forum.mazzy.ru/index.php?showtopic=396
был
Старый 29.01.2007, 10:59   #19  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Эмм... А зачем подсвечивать display-поле? Edit - еще понятно, но display?
Но, в любом случае, если это не поле таблицы, то чем не подходит AutoDeclaration = true и потом просто ставим MyControl.mandatory(true)? Или хочется сразу "везде", где этот метод на форме используется?
Старый 29.01.2007, 11:34   #20  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от oip Посмотреть сообщение
Но, в любом случае, если это не поле таблицы, то чем не подходит AutoDeclaration = true и потом просто ставим MyControl.mandatory(true)? Или хочется сразу "везде", где этот метод на форме используется?
Хочу только отметить, что установка свойства Mandatory на Edit-поле в runtime приводит к крэшу Аксапты.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ruslan Goncharov: Mandatory property for DialogField Blog bot DAX Blogs 1 29.12.2007 20:48
Поле mandatory, а 0 вставить нужно Smith DAX: Программирование 5 15.06.2007 12:04
Проверка заполнения Mandatory полей на Datasource Wamr DAX: База знаний и проекты 4 26.06.2006 18:15
Не ставится свойство Table у Body AxDude DAX: Программирование 2 22.11.2005 00:10
Mandatory field в Dialog axaLearner DAX: Программирование 4 02.11.2004 09:50

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

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

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