Значение по умолчанию для поля с типом DateTimeControl

Здравствуйте!
Пытаюсь использовать поле с типом Дата/время в версии 3.2.017
Если не задавать значение по умолчанию в поле с типом 'DateTimeControl', то при отображении поля в карточке в нем содержится значение с текущей датой.
Если не задавать значение по умолчанию для контрола с типом 'DateTimeDataControl', то отобразится незаполненное поле.
Как сделать так, чтобы при отображении поля с типом 'DateTimeControl' происходило его обнуление до пустого значения? T.e. хочу сделать так, чтобы поле с типом 'DateTimeControl' инициализировалось, каким-то образом))), значением null как при использовании 'DateTimeDataControl' (там это можно реализовать задав значение null для соответствующего поля в dataset).

Нравится

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

Да действительно работает! я сразу попытался использовать это свойство, но оно мне не помогло.
Для полей настроенных в конструкторе работает именно так... спасибо!!!!! А вот с динамически создаваемым полем это не проходит. Возможно что при инициализации контрола до добавления его на форму маловато будет сл. кода:

...
var Field = Window.CreateComponent('DateTimeControl', FieldName);
Field.IsNull = true;
...

Может кто-нибудь поможет с примером как правильно проинициализировать и загрузить контрол на форму.

Здравствуйте Геннадий,
Хочу заметить что в случае использования свойства IsNull само значение Value контрола DateTimeControl будет текущая дата, т.е при его обработке следует дополнительно проверять свойство IsNull, как это сделано в scr_MsOutlookSynchronization

	if (!edtTSLastDate.IsNull) {
		FilteredDate = edtTSLastDate.Value;
	} else {
	    FilteredDate = null;
	}

По поводу примера

var Window = Control.ParentWindow;
var Field = Window.CreateComponent('DateTimeControl', 'CodeDateTimeControl');
Field.IsNull = true;
var frm = Window.ComponentsByName('frmData');
frm.AddItem(Field);

Добавляем DateTimeControl во фрейм в нашем окне, устанавливаем в него значение IsNull. Визуально видим пустой контрол
1
Строчка var Window = Control.ParentWindow; была установлена так как для тестирования контрол я добавлял по нажатию на кнопку Ок
XML серивсов в приложении

Спасибо, Алексей!

А теперь сюрприз!)))
Есть одно замечательное свойство у компанента DateTimeControl называется оно Kind. Так вот в вашем случае ему установлено значение 0. Это соответствует отображению только даты и... обнуление в таких случаях действительно происходит... по крайней мере это так отображается)).
Для значений 1-2 это не действует (простов время и дата со временем). Беда в том, что мне надо свойство Kind установить в значение 2, так как при заполнении этого поля критично указывать не только дату но и время.

Высылаю вам обратно настроенные мной сервисы. При тестировании я добавил функцию Main() и организовал вывод вашего окна:

 function Main(){
	var Window = Services.GetNewItemByUSI('wnd_PhotoLoad');
	var Field = Window.CreateComponent('DateTimeControl', 'CodeDateTimeControl');
	Field.IsNull = true;
	Field.Kind = 1;
	var frm = Window.ComponentsByName('fgFields');
	frm.AddItem(Field);
 	Window.Prepare();	 
	Window.ShowModal();
}

Я вижу три варианта выхода из этой ситуации:
1. Field.Value = 0.
В этом случае устанавливается минимально возможная дата и ее можно использовать для уведомления пользователя, что он это поле не заполнил.
2. Ничего не далать)))
Но при этом прикрутить проверку, которая бы проверяла при подтверждении карточки изменилось ли Field.Value с момента открытия;
3. Связать карточку с фиктивным датасетом, фиктивным полем дата/время в нем (в этом случае как известно все работает)
Лично у склоняюсь к 1-му но с удоваольствием выслушаю чужое мнение.test.rar

Мне не до конца понятна проблема
В случае Kind для DateTimeControl в значение dtkDateTime = = 0x00000002; (определено в scr_SysEnums) мы получим следующее отображение
1
второй контрол создан в коде, и на сколько я понимаю он пустой, значение с него мы также можем считать, ввести можем руками
2
Какие бинарные файлы вы используете ? Я проводил данные действия на 3.4.0.67, сервисы прикрепляю

Алексей, видимо возникло недопонимание. Я указал номер версии в своем первом сообщении. Текущая используемая версия 3.2.017.

Геннадий, простите, не заметил версию, передал данный вопрос в департамент разработки, доработаем бинарные файлы для 3.2.0, так как в последующих версиях данной проблемы нет. Я буду информировать вас о сроках решения проблемы в данной теме

Ориентировочный срок решения 15.11.2011

Спасибо, Алексей! Буду ждать...

Исправили, в сборке 3.2.0.86, ссылку для скачивания выслал Вам на e-mail указанный в профиле.

Огромное спасибо, Алексей!

Есть ли возможность получить список изменений которые произошли с момента сборки 3.2.0.17? Есть ли возможность подписаться на рассылку, которая держала бы в курсе о самых последних изменениях в билдах 3.2.x

Добрый день, Геннадий!

Для получения информации об изменениях, которые были внесены в сборки выше 3.2.0.17, Вам следует обратиться в Службу технической поддержки по адресу support@terrasoft.ru

Что касается получения информации о новых сборках в дальнейшем, то ее также можно получать в службе технической поддержки. К сожалению, функции автоматической рассылки нет для наших клиентов.

С уважением
Белецкий Арсений
Операционный менеджер

Сделал так как вы порекомендовали. Спасибо за помощь!

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