powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проверка даты на корректность
8 сообщений из 8, страница 1 из 1
Проверка даты на корректность
    #35725551
grimjaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
Подскажите, пожалуйста, как сделать так, чтобы при вводе некорректного значения даты в функции dw.SetFilter выдавалось не сообщение "Expression is not valid", а выпадал мой MessageBox.
Можно ли поймать через TRY...CATCH? Если да, то какое исключение ловить?
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725562
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через TRY...CATCH нельзя
А зачем вгонять некорректное значение даты в dw.SetFilter ?
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725567
grimjaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вгонять незачем. Просто как-то надо проверить корректность даты, поэтому думал, что через TRY и CATCH получится. Если как-то можно проверить по-другому буду рад узнать.
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725569
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grimjawНу вгонять незачем. Просто как-то надо проверить корректность даты, поэтому думал, что через TRY и CATCH получится. Если как-то можно проверить по-другому буду рад узнать.
Date(string)<>'1900-01-01'
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725573
grimjaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to ЗоринАндрей

Не совсем понял: преобразование к date строки с некорректной датой дает 1900-01-01? Так?
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725590
grimjaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм...проверил - действительно некорректная дата преобразуется к 1900-01-01.
Но интересно, получается так, что вполне нормальную дату 1900-01-01, введенную без ошибок, такая проверка обработает как некорректную.
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35725766
18-я весна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для общего развития - есть такое:
Код: plaintext
1.
dw.Modify("DataWindow.NoUserPrompt='yes'")

А касательно конкретно вашего случая: правильно - сначала получить дату в виде типа Date. И проверку валидности строкового представления даты, введенной юзером, надо делать уже на этом этапе.
А в фильтр DW передавать дату преобразованную в литерал даты в формате yyyy-mm-dd:
Код: plaintext
dw.SetFilter("column = " + String(dt_1, "yyyy-mm-dd"))

Парсинг из строки в Date в общем случае встроенными в PB средствами невозможен.
Ф-я Date(String) воспринимает в качестве даты только форматы "yyyy-mm-dd" и текущий региональный формат в Windows.
Если же требуется другой формат (например американскую дату в русской винде), то надо писать свой парсер даты.

Проверка валидности строки с датой в т.ч. и для даты 1900-01-01 при использовании встроенной ф-и Date:
Код: plaintext
ls_date = String(Date(ls_date)) or ls_date = String(Date(ls_date), "yyyy-mm-dd")
...
Рейтинг: 0 / 0
Проверка даты на корректность
    #35726010
grimjaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to 18-я весна
Спасибо! Как раз самое то.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проверка даты на корректность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]