Добавил в окно несколько DataTimeControl, но при открытии окна они заполняются значением текущей даты, мне же необходимо оставлять их пустыми. Оказалось, что сделать данное поле пустым не получается, оно принимает значение "0:0:0", но визуально отображается дата. Подскажите, как заставить указанные поля "опустеть"?

Нравится

7 комментариев

Здравствуйте, Олег!

Сделать поле DataTimeControl пустым не получится.
Дело в том, что когда мы работаем с источником данных (DateTimeDatControl), значение в поле может быть пустое, тогда при сохранении в базу данных, соответствующее поле у нас будет пустым, но когда мы используем просто DatTimeControl, нам нужен контрол для ввода даты и времени, и этот контрол позволяет ввести только корректное значение даты и времени, это зашито в компоненте ядра, также как и в NumericControl не могут быть внесены не цифровые символы.

Это корректная ситуация, так как непонятно, что должно происходить, если, например, на нажатии Ок у нас пустой контрол, кроме того, на самом деле, если в поле уже введена текущая дата (или другая дата, предусмотренная Вашей логикой), пользователю удобнее ее исправить, чем начинать вводить с нуля, потому что, если это поле пустое, то куда бы в нем пользователь не поставил курсор, остальные значения подставятся сегодняшние. Например, пользователь начнет вводить день, а год и месяц тут же подтянутся сегодняшние.

Возможно, Вы опишите нам Вашу задачу, чтобы мы могли помочь найти обходной вариант ее решения, например, используя Edit с проверкой ввода.

Инна Безверхняя,
II линия службы поддержки Terrasoft

Пользователю отображается окно с дюжиной полей указанного типа. После нажатия "ОК" создаются записи в разделе операции, кол-во создаваемых операций должно совпадать с кол-вом заполненных полей.

У компонента есть свойство IsNull, надо присвоить ему true - и он будет пустым.
Аналогично по этому свойству надо проверять, оставил пользователь компонент пустым, или там дата.

Здравствуйте, Олег!

Может быть, сделать чек-боксы около полей. Если чек-бокс установлен, то поле активно, запись создается. То есть, количество операций будет совпадать с количеством отмеченных чек-боксов.
Другой вариант - использовать все же DateTimeDatаControl, создав специально под эту задачу датасет.
Или использовать Edit с соответствующей маской даты/времени, а затем преобразовывать его в нужный формат.

Инна Безверхняя,
II линия службы поддержки Terrasoft

Здравствуйте, Валерий!

Да, Вы правы.
Это намного проще, спасибо! как-то упустила это свойство :)

"Валерий Андрусик" написал:У компонента есть свойство IsNull, надо присвоить ему true - и он будет пустым.
Аналогично по этому свойству надо проверять, оставил пользователь компонент пустым, или там дата.

Валерий, спасибо!

Маленькое дополнение к этой теме http://www.community.terrasoft.ua/forum/topic/7217

Показать все комментарии