|
![]() |
#1 |
Участник
|
Интересно, а у каких контролов нет св-ва Mandatory?
|
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Действительно интересно. Никогда не встречал таких контролов. Если имеется в виду combobox, то у него действительно нет такого свойства, но не ввести в него значение не так-то просто - по умолчанию берется первое из enum, при попытке удалить восстанавливается.
|
|
![]() |
#4 |
Участник
|
Цитата:
Речь о комбобоксе и его свойствах зашла только в том смысле что он является визуализатором поля типа enum. Последний раз редактировалось simply2double; 28.12.2006 в 10:31. |
|
![]() |
#5 |
Участник
|
Привет!
Как вариант - сделать проверку контрола по событию (например на запись в таблицу) и елси он не заполнен, то ругатся. |
|
![]() |
#6 |
Участник
|
Замечательный вариант, приводит к нервозу пользователя и судорожному поиску поля на форме, а если форма содержит кучу закладок, то видимо быстрее будет прислать пользователю дежурного курьера с пистолетом.
|
|
![]() |
#7 |
Сенбернар
|
Цитата:
Допустите, что эта табличка не только с формы заполняется. И поле - действительно mandatory, физический смысл его такой. Тогда - 2 варианта: 1. Надеятся на аккуратность всех будущих разработчиков (оптимистический вариант, КМК) 2. Поставить проверку в методе таблицы. Во-о-ооот... |
|
![]() |
#8 |
NavAx
|
Да, действительно, для полльзователя беда. Может стоит выводить осмысленные ошибки, с формой ввода недостающего значения?
__________________
Isn't it nice when things just work? |
|
![]() |
#9 |
Участник
|
Цитата:
Цитата:
Сообщение от Raven Melancholic
![]() По моему мнению, стоит обратить внимание на пост RVS. поле заполнять может не только пользователь, но и а) программист, пишущий что-то специфичное и устроившийся к вам после того, как другие уволились, б) администратор, воспользовавшийся стандартным импортом и ничего не знающий про ограничения.
Поэтому, опять же на мой взгляд, если бизнес-процесс требует в определенных случаях, обязательного указания значение, то вешать проверку нужно на таблицу, а не на форму. Если же это просто "хотелка кнопки счастья", то есть типа того "вроде нужно, но формализовать не можем, поэтому пусть программа что-то решит сама", то вопрос вообще не разработчику... ох уж эти формализаторы ![]() Достаточная формализация???? Последний раз редактировалось simply2double; 12.01.2007 в 10:40. Причина: добавил |
|
![]() |
#10 |
Сенбернар
|
Цитата:
![]() Цитата:
![]() Цитата:
Как-то это недобро по отношению к ним (если Вы действительно так считаете). Цитата:
![]() Резюме: Смотрим... да на тот же InventJournalTrans: - Mandatory на таблице - ТОЛЬКО TransDate и ItemId (действительно, сложно представить себе строку складского журнала без номенклатуры и даты). - Прочие business rules - в методе ValidateField на той же таблице... И ругаются, если что-то, что в контексте данного журнала mandatory, не заполнено... И это правильно, КМК. Во всяком случае, это "в стиле". Все прочее - изврат. IMHO.
__________________
Best Regards, Roman |
|
![]() |
#11 |
MCTS
|
У контролов в Dialog вообще отсутствует как понятие свойство Mandatory
Если уж очень хочется сделать диалоговые поля обязательными к заполнению, необходимо допиливать класс Dialog
__________________
![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
![]() |
#12 |
Участник
|
Цитата:
public Object dialog() { ................... FormStringControl fsc; ; ................. dlgXXX= dialog.addFieldValue(typeid(XXX),XXX); fsc = ddlgXXX.control(); fsc.mandatory(true); ............................. и вполне сносно работает ![]()
__________________
любитель портвейна и снов с прокисшей капустой в усах |
|
![]() |
#13 |
Участник
|
Цитата:
Сообщение от 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 |
|