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

Не совсем понял: преобразование к date строки с некорректной датой дает 1900-01-01? Так?
...
Рейтинг: 0 / 0
19.12.2008, 22:02
    #35725590
grimjaw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка даты на корректность
хм...проверил - действительно некорректная дата преобразуется к 1900-01-01.
Но интересно, получается так, что вполне нормальную дату 1900-01-01, введенную без ошибок, такая проверка обработает как некорректную.
...
Рейтинг: 0 / 0
20.12.2008, 02:35
    #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
20.12.2008, 17:20
    #35726010
grimjaw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка даты на корректность
to 18-я весна
Спасибо! Как раз самое то.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проверка даты на корректность / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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