powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с датами в фильтре грида Petrovicha
8 сообщений из 8, страница 1 из 1
Проблема с датами в фильтре грида Petrovicha
    #35545706
АленаШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме грид Petrovicha (из решений с форума FoxPro Club), есть поля Date.
Настройки даты в программе SET DATE TO GERMAN, SET CENTURY ON.

Использую свойства грида - фильтрация по таблице.
Если фильтрую записи в гриде только по одному полю даты - все ок.
Если фильтрую по таблице, т.е. по нескольким полям, одно из них - дата, то вылетает ошибка:

Ambiguous date/datetime constant. Use the format {^yyyy-mm-dd...

Подскажите, может, кто сталкивался, что можно сделать.
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35545790
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АленаШНа форме грид Petrovicha (из решений с форума FoxPro Club), есть поля Date.
Настройки даты в программе SET DATE TO GERMAN, SET CENTURY ON.

Использую свойства грида - фильтрация по таблице.
Если фильтрую записи в гриде только по одному полю даты - все ок.
Если фильтрую по таблице, т.е. по нескольким полям, одно из них - дата, то вылетает ошибка:

Ambiguous date/datetime constant. Use the format {^yyyy-mm-dd...

Подскажите, может, кто сталкивался, что можно сделать.
Перевести текст ошибки с английского на русский и выполнить рекомендованное, то есть использовать не зависящий от настроек среды способ задания дат в виде {^yyyy-mm-dd}.
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35545834
АленаШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему же все такие злые. Перевела я все. Выдается табличка со всеми значениями введенных дат
10.09.2008
11.09.2008
23.09.2008
и комббоксы напротив каждой даты. Остается только выставить галочки, какие даты взять для фильтра. Так где устанавливать формат, независящий от настроек среды. Вот не понимаю пока и все. А если не хотите отвечать, так и ерничать не надо. Извините.
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35545852
гость.....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего, в классе где то данные введены/подставляются в виде {}
попробуй по поиску в классе поискать скобку {
заменить на функцию DAte(), тогда будет без разницы, формат даты.
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35547491
АленаШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость.....Скорее всего, в классе где то данные введены/подставляются в виде {}
попробуй по поиску в классе поискать скобку {
заменить на функцию DAte(), тогда будет без разницы, формат даты.


Спасибо, Гость, за совет, поискала и конечно же нашла. Просто не сталкивалась с этим, думала, есть возможность перенастроить без правки класса.
Было :
lcFilterStr = lcFilterStr + ' or ' + lcFieldName + ' = {' + DTOC(&lcrFilterValues..Filter_Val) + '}'

Стало:
lcFilterStr = lcFilterStr + ' or ' + lcFieldName + ' = {^' +ALLTRIM(str(YEAR(&lcrFilterValues..Filter_Val))) + IIF(MONTH(&lcrFilterValues..Filter_Val)<10,'-0','-') + ALLTRIM(STR(MONTH(&lcrFilterValues..Filter_Val))) +IIF(day(&lcrFilterValues..Filter_Val)<10,'-0','-') + ALLTRIM(STR(DAY(&lcrFilterValues..Filter_Val))) + '}'

&lcrFilterValues..Filter_Val - это и есть моя дата {21.01.2008}. Теперь фильтр будет выглядеть так:

'имя поля' = {^2008-01-21}

Может кому-то пригодится, не все же сразу такие умные получаются.
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35548146
гость...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
предлагаю еще один вариант:
Код: plaintext
1.
2.
3.
4.
lcDateSet=SET("Date") &&запоминаем текущие настройки формата даты
SET DATE YMD &&установим нужный для нас формат
lcFilterStr = lcFilterStr + ' or ' + lcFieldName + ' = {' + DTOC(&lcrFilterValues..Filter_Val) + '}'
SET DATE &lcDateSet &&возвращаем формат даты в исходное состояние
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35548195
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это:
АленаШ IIF(MONTH(&lcrFilterValues..Filter_Val)<10,'-0','-') + ALLTRIM(STR(MONTH(&lcrFilterValues..Filter_Val)))

короче можно написать:
Код: plaintext
PADL(ALLTRIM(STR(MONTH(&lcrFilterValues..Filter_Val))),  2 , '0')

или разом заменить все пробелы на '0'
Код: plaintext
... + chrtran("{^"+str(year(&lcrFilterValues..Filter_Val), 4 )+"-"+str(month(&lcrFilterValues..Filter_Val), 2 )+"-"+str(day(&lcrFilterValues..Filter_Val), 2 )+"}"," ","0") + ...

А еще проше один раз сделать свою функцию для преобразования и потом везде ее использовать:
Код: plaintext
1.
2.
3.
func date2str
para tdDate
return chrtran("{^"+str(year(tdDate), 4 )+"-"+str(month(tdDate), 2 )+"-"+str(day(tdDate), 2 )+"}"," ","0")
...
Рейтинг: 0 / 0
Проблема с датами в фильтре грида Petrovicha
    #35548204
гость...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чтобы не пучкаться с этими IIF()можно сделать проще ;)
Код: plaintext
1.
2.
ldCurDate=DATE()
? STRTRAN(STR(YEAR(ldCurDate), 4 , 0 )+'-'+STR(month(ldCurDate), 2 , 0 )+'-'+STR(day(ldCurDate), 2 , 0 ),' ','0')
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с датами в фильтре грида Petrovicha
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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