powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фильтр по нескольким датам
10 сообщений из 10, страница 1 из 1
Фильтр по нескольким датам
    #38060627
Евгений_РМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
У меня вопрос: как создать фильтр по нескольким датам. Например в таком виде 01.10.2012=05.11.2012=15.11.2012 и т.д.
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38060636
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
set filter to INLIST(MyDate,{^2012.10.01},{^2012.11.05},{^2012.11.15 })
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38061137
Евгений_РМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного не то. Для наглядности приведу пример фильтра для поиска по одной дате:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ppowstring = ''
v30 = ''
if thisform.pageframe1.page1.check11.value = 1
v33 = alltrim(thisform.pageframe1.page1.edit4.value)
v30 = '{^' + substr(v33,7,4) + '-' + substr(v33,4,2) + '-' + substr(v33,1,2) + '}'
do case
case thisform.pageframe1.page1.combo11.value == '='
ppowstring = per_tab + ".dat_v = " + v30
case thisform.pageframe1.page1.combo11.value == '<>'
ppowstring = per_tab + ".dat_v <> " + v30
fltr10 = ppowstring
else
fltr10 = '.t.'
endif
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38061172
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений_РМНемного не то.
чего не то? ты сейчас из одной даты генеришь строку:
Код: sql
1.
per_tab + ".dat_v = {^2012-10-01}"


сгенри
Код: sql
1.
"INLIST("+ per_tab + ".dat_v,{^2012-10-01},{^2012-11-05},{^2012-11-15})"


вместо <> сделай "!INLIST(...
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38061498
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, я так понял, что ТС пишет несколько дат в одну строчку, с разделителем "=".
Можно сделать так:
Код: sql
1.
2.
3.
4.
set date german
lcDatesList = alltrim(thisform.pageframe1.page1.edit4.value) && '01.10.2012=05.11.2012=15.11.2012'
lcDatesFilt = 'INLIST(f1,CTOD("' + strtran(lcDatesList,'=','"),CTOD("')+'"))'
set filter to &lcDatesFilt
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38063080
Евгений_РМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMНе, я так понял, что ТС пишет несколько дат в одну строчку, с разделителем "=".
Можно сделать так:
Код: sql
1.
2.
3.
4.
set date german
lcDatesList = alltrim(thisform.pageframe1.page1.edit4.value) && '01.10.2012=05.11.2012=15.11.2012'
lcDatesFilt = 'INLIST(f1,CTOD("' + strtran(lcDatesList,'=','"),CTOD("')+'"))'
set filter to &lcDatesFilt



А вместо f1, что подставить?
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38063092
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений_РМ,

Код: sql
1.
... 'INLIST(' + per_tab + '.dat_v,CTOD("' + ...


А остальное вам всё понятно?
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38063120
Евгений_РМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Да, спасибо!
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38066927
Johny_Limony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что нужно было)))
...
Рейтинг: 0 / 0
Фильтр по нескольким датам
    #38066983
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny_LimonyТо что нужно было)))Все же, я не советовал бы увлекаться использованием именно вышеприведенного подхода, поскольку он всё же обладает рядом недостатков - например, нужно понимать значение использования SET DATE , нужно всё равно быть уверенным, что входная строка соответствует шаблону, ну и то, что данный метод применим в Фоксе с его макроподстановкой. Если же отталкиваться от того, что код может формировать строки, например, для SQLExec() , то более правильно было бы распарсить строку, используя ALINES() , а затем в цикле собрать условие в нужном формате.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фильтр по нескольким датам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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