Здравствуйте!
Пытаюсь использовать поле с типом Дата/время в версии 3.2.017
Если не задавать значение по умолчанию в поле с типом 'DateTimeControl', то при отображении поля в карточке в нем содержится значение с текущей датой.
Если не задавать значение по умолчанию для контрола с типом 'DateTimeDataControl', то отобразится незаполненное поле.
Как сделать так, чтобы при отображении поля с типом 'DateTimeControl' происходило его обнуление до пустого значения? T.e. хочу сделать так, чтобы поле с типом 'DateTimeControl' инициализировалось, каким-то образом))), значением null как при использовании 'DateTimeDataControl' (там это можно реализовать задав значение null для соответствующего поля в dataset).
Нравится
Посмотрите тут:
http://www.community.terrasoft.ua/forum/topic/6840
Да действительно работает! я сразу попытался использовать это свойство, но оно мне не помогло.
Для полей настроенных в конструкторе работает именно так... спасибо!!!!! А вот с динамически создаваемым полем это не проходит. Возможно что при инициализации контрола до добавления его на форму маловато будет сл. кода:
... 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. Визуально видим пустой контрол
Строчка 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) мы получим следующее отображение
второй контрол создан в коде, и на сколько я понимаю он пустой, значение с него мы также можем считать, ввести можем руками
Какие бинарные файлы вы используете ? Я проводил данные действия на 3.4.0.67, сервисы прикрепляю
Алексей, видимо возникло недопонимание. Я указал номер версии в своем первом сообщении. Текущая используемая версия 3.2.017.
Геннадий, простите, не заметил версию, передал данный вопрос в департамент разработки, доработаем бинарные файлы для 3.2.0, так как в последующих версиях данной проблемы нет. Я буду информировать вас о сроках решения проблемы в данной теме
Исправили, в сборке 3.2.0.86, ссылку для скачивания выслал Вам на e-mail указанный в профиле.
Огромное спасибо, Алексей!
Есть ли возможность получить список изменений которые произошли с момента сборки 3.2.0.17? Есть ли возможность подписаться на рассылку, которая держала бы в курсе о самых последних изменениях в билдах 3.2.x
Добрый день, Геннадий!
Для получения информации об изменениях, которые были внесены в сборки выше 3.2.0.17, Вам следует обратиться в Службу технической поддержки по адресу support@terrasoft.ru
Что касается получения информации о новых сборках в дальнейшем, то ее также можно получать в службе технической поддержки. К сожалению, функции автоматической рассылки нет для наших клиентов.
С уважением
Белецкий Арсений
Операционный менеджер
Сделал так как вы порекомендовали. Спасибо за помощь!