ZEN: разрешить несколько форматов даты в элементе управления dateText и преобразовать их в YYYY-MM-DD.
Существует ограниченный список форматов даты, которые пользователи хотят использовать для ввода даты в форму. Эти форматы включают однозначные числа для месяца и дня и двузначные числа для года. Поле представлено элементом управления dateText.
Как можно разрешить элементу управления dateText принимать несколько форматов даты? Я вижу только 3 перечисленных (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GZCP_forms_dateText), включают ли они использование однозначных чисел для месяца и дня?
Я попытался установить значение format = "#(myPageProperty.myValue)#", но у меня возникла ошибка компиляции в Studio, так что это ни к чему не привело. Кто-нибудь когда-нибудь мог установить значение формата в зависимости от введенного пользователем значения?
Я предполагаю, что входное значение элемента управления должно быть преобразовано в YYYY-MM-DD перед проверкой. Я открыт для вызова функции javascript для этого, но где лучше всего ее разместить?
1 ответ
подробнее см. Class%ZEN.Component.dateText
формат настройки: Формат
свойства Как%ZEN.Datatype.string(MAXLEN = 3, VALUELIST = ",MDY,DMY,YMD", ZENEXPRESSION = 1) у
вас есть ровно 3 формата или ""
Ваше предположение о значениях верное и задокументировано:
/// Значение этого элемента управления всегда в канонической форме: ГГГГ-ММ-ДД.
Поскольку это один из старейших компонентов ZEN, ваш единственный шанс реализовать
свой способ работы - создать свою собственную версию, наследующую от
Class%ZEN.Component.dateText, и перегрузить части, которые вы хотите изменить.
копия этого ответа в сообществе разработчиков