27.12.2006, 17:19 | #1 |
Участник
|
Про свойство Mandatory
Возможно кто-то сталкивался с необходимостью указать пользователю на то, что поле является обязательным к заполнению ( нарисовать волнистое подчеркивание ), при этом не трогая свойство Mandatory поля таблицы. К примеру если есть необходимость заполнения поля по некоторому условию. Можно к примеру управлять этим свойством контрола, но не у всех контролов оно есть. Или просто втупую нарисовать волнистую линию через контекст окна, но это как то не особенно красиво.
Интересно кто как решает эту задачу???? |
|
27.12.2006, 17:26 | #2 |
Участник
|
Интересно, а у каких контролов нет св-ва Mandatory?
|
|
27.12.2006, 17:28 | #3 |
Программатор
|
ListView
|
|
27.12.2006, 17:40 | #4 |
Участник
|
|
|
27.12.2006, 17:57 | #5 |
NavAx
|
А если тронуть свойство поля datasource?
__________________
Isn't it nice when things just work? |
|
27.12.2006, 18:39 | #6 |
MCTS
|
У контролов в Dialog вообще отсутствует как понятие свойство Mandatory
Если уж очень хочется сделать диалоговые поля обязательными к заполнению, необходимо допиливать класс Dialog
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
27.12.2006, 18:53 | #7 |
Участник
|
Цитата:
public Object dialog() { ................... FormStringControl fsc; ; ................. dlgXXX= dialog.addFieldValue(typeid(XXX),XXX); fsc = ddlgXXX.control(); fsc.mandatory(true); ............................. и вполне сносно работает И никого не надо пилить зазря.
__________________
любитель портвейна и снов с прокисшей капустой в усах |
|
28.12.2006, 08:53 | #8 |
Участник
|
Цитата:
Сообщение от eugene egorov
Это не совсем так. Решается легко следующими фрагментами кода:
public Object dialog() { ................... FormStringControl fsc; ; ................. dlgXXX= dialog.addFieldValue(typeid(XXX),XXX); fsc = ddlgXXX.control(); fsc.mandatory(true); ............................. и вполне сносно работает И никого не надо пилить зазря. и получишь ты в рантайме такое послание: Ошибка времени выполнения. : FormBuildComboBoxControl Объект не имеет метода 'mandatory'. Трассировка стека: (C) \Classes\FormBuildComboBoxControl\mandatory (C) \Classes\FormButtonControl\Clicked - line 32 |
|
28.12.2006, 09:09 | #9 |
Участник
|
Действительно интересно. Никогда не встречал таких контролов. Если имеется в виду combobox, то у него действительно нет такого свойства, но не ввести в него значение не так-то просто - по умолчанию берется первое из enum, при попытке удалить восстанавливается.
|
|
28.12.2006, 10:11 | #10 |
Участник
|
Цитата:
Речь о комбобоксе и его свойствах зашла только в том смысле что он является визуализатором поля типа enum. Последний раз редактировалось simply2double; 28.12.2006 в 10:31. |
|
28.12.2006, 14:15 | #11 |
Участник
|
Привет!
Как вариант - сделать проверку контрола по событию (например на запись в таблицу) и елси он не заполнен, то ругатся. |
|
28.12.2006, 15:26 | #12 |
Участник
|
Замечательный вариант, приводит к нервозу пользователя и судорожному поиску поля на форме, а если форма содержит кучу закладок, то видимо быстрее будет прислать пользователю дежурного курьера с пистолетом.
|
|
28.12.2006, 15:37 | #13 |
Сенбернар
|
Цитата:
Допустите, что эта табличка не только с формы заполняется. И поле - действительно mandatory, физический смысл его такой. Тогда - 2 варианта: 1. Надеятся на аккуратность всех будущих разработчиков (оптимистический вариант, КМК) 2. Поставить проверку в методе таблицы. Во-о-ооот... |
|
28.12.2006, 16:18 | #14 |
NavAx
|
Да, действительно, для полльзователя беда. Может стоит выводить осмысленные ошибки, с формой ввода недостающего значения?
__________________
Isn't it nice when things just work? |
|
28.12.2006, 16:28 | #15 |
Участник
|
По моему мнению, стоит обратить внимание на пост RVS. поле заполнять может не только пользователь, но и а) программист, пишущий что-то специфичное и устроившийся к вам после того, как другие уволились, б) администратор, воспользовавшийся стандартным импортом и ничего не знающий про ограничения.
Поэтому, опять же на мой взгляд, если бизнес-процесс требует в определенных случаях, обязательного указания значение, то вешать проверку нужно на таблицу, а не на форму. Если же это просто "хотелка кнопки счастья", то есть типа того "вроде нужно, но формализовать не можем, поэтому пусть программа что-то решит сама", то вопрос вообще не разработчику... |
|
11.01.2007, 11:40 | #16 |
Участник
|
Цитата:
Цитата:
Сообщение от Raven Melancholic
По моему мнению, стоит обратить внимание на пост RVS. поле заполнять может не только пользователь, но и а) программист, пишущий что-то специфичное и устроившийся к вам после того, как другие уволились, б) администратор, воспользовавшийся стандартным импортом и ничего не знающий про ограничения.
Поэтому, опять же на мой взгляд, если бизнес-процесс требует в определенных случаях, обязательного указания значение, то вешать проверку нужно на таблицу, а не на форму. Если же это просто "хотелка кнопки счастья", то есть типа того "вроде нужно, но формализовать не можем, поэтому пусть программа что-то решит сама", то вопрос вообще не разработчику... ох уж эти формализаторы специально для Вас формализую.... в таблице лежат строки восьми типов документов... из них в четырех типах поле ХХХ1 обязательно для заполнения, в трех необязательно, а в одном вообще не должно показываться... При этом с разными типами документов работают разные группы юзеров... заставить бедного юзера заполнять лишнее поле это лишний раз глумится над его и без того трудной долей... С другой стороны юзер с первого взгляда должен видеть что ему необходимо заполнить... При этом "закулисно" писать в поле какую нить ересь, что бы удовлетворить проверку mandatory я не хочу. Достаточная формализация???? Последний раз редактировалось simply2double; 12.01.2007 в 10:40. Причина: добавил |
|
29.01.2007, 10:51 | #17 |
Гость
|
Добрый день.
Появилось желание "подсветить" поле. Но есть затычка - поле display. CustTable_ds.object(fieldnum(Custtable,FIELDNAME)) уже не пашет |
|
29.01.2007, 10:52 | #18 |
Гость
|
|
|
29.01.2007, 10:59 | #19 |
Axapta
|
Эмм... А зачем подсвечивать display-поле? Edit - еще понятно, но display?
Но, в любом случае, если это не поле таблицы, то чем не подходит AutoDeclaration = true и потом просто ставим MyControl.mandatory(true)? Или хочется сразу "везде", где этот метод на форме используется? |
|
29.01.2007, 11:34 | #20 |
Banned
|
Хочу только отметить, что установка свойства Mandatory на Edit-поле в runtime приводит к крэшу Аксапты.
|
|