:: Visual Foxpro, Foxpro for DOS
простой вопрос про фильтр
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
Уважаемые форумчане ! Наложил некий фильтр на таблицу через команду SET FILTER TO.
Вопрос. Как понять что некоторая запись с номером полученным от RECN() входит в диапозон фильтра? Спасибо.


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: простой вопрос про фильтр
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
решение нашел EVALUATE(FILTER()).


------------------
Незнание делает жизнь такой интересной.




Исправлено 1 раз(а). Последнее : dimuhametov, 19.06.22 16:49
Ratings: 0 negative/0 positive
Re: простой вопрос про фильтр
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Как понять что некоторая запись с номером полученным от RECN() входит в диапазон фильтра?
...
решение нашел EVALUATE(FILTER())
Если известен RECNO(), то проверить, попадает ли запись в фильтр можно многими способами, начиная с банального поиска записи с известным номером:
LOCATE FOR RECNO()=m.recno

EVALUATE(FILTER()), стоя на проверяемой записи, сработает только в том случае, если этот фильтр - единственный:
CLEAR
CREATE CURSOR curs1 (no1 I, no2 I)
INSERT INTO curs1 VALUES (1,1)
INSERT INTO curs1 VALUES (2,1)
INDEX on no2 FOR no1=1 TAG tag1
SET FILTER TO no2=1
m.norec = 2
GO m.norec
? 'Попадает запись # '+TRAN(m.norec)+' в фильтр? - '+IIF(EVALUATE(FILTER()),'да','нет')
LOCATE FOR RECNO()=m.norec
? 'Попадает запись # '+TRAN(m.norec)+' в фильтр? - '+IIF(FOUND(),'да','нет')
Ratings: 0 negative/2 positive
Re: простой вопрос про фильтр
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
akvvohinc
EVALUATE(FILTER()), стоя на проверяемой записи, сработает только в том случае, если этот фильтр - единственный:
ну а что мешает добавить:
? 'Попадает запись # '+TRAN(m.norec)+' в фильтр? - '+IIF(EVALUATE(FILTER().and.(empty(for()).or.eval(for()))),'да','нет')
да и filter() полезно проверять на empty.
Ratings: 0 negative/0 positive
Re: простой вопрос про фильтр
of63
Автор

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
dimuhametov
решение нашел EVALUATE(FILTER()).

()в две строки можно:
m.x = FILTER()
SET FILTER TO &x && глупо "фильторовать", на операции типа SELECT это не влияет
но, SELECT * WHERE &x && - красиво
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 41 (Гостей: 41)

© 2000-2024 Fox Club 
Яндекс.Метрика