powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Установка фильтра
6 сообщений из 6, страница 1 из 1
Установка фильтра
    #36974540
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как установить фильтр по значения поля GRIDа, а не по значению этого же поля в источнике? Например, таблица "Table" состоит всего из 1 поля - Auto n(4), в котором храняться индексы наименований автомобилей. Допустим этих значений немного и они не меняются(как их число так и значения), и мы решили в качестве источника для COLUMN1 (ControlSource) задать программный код - следующего содержания:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Do case
case auto= 1 
     return 'Audi'
case auto= 2 
     return 'BMW'
case auto= 3 
     return 'Renault'
otherwise
return ''
endcase

Как для данного примера установить фильтр типа: Наименование авто>'R'
...
Рейтинг: 0 / 0
Установка фильтра
    #36974722
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос можно закрыть.

Все заработало при:
SET FILTER TO code()=='Audi' IN Table
...
Рейтинг: 0 / 0
Установка фильтра
    #36974760
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenВопрос можно закрыть.

Все заработало при:
SET FILTER TO code()=='Audi' IN Table

зря

жигули приедут, что делать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Create Cursor sprav (id i, name v( 50 ))
Insert into sprav values ( 1 , 'Audi')
Insert into sprav values ( 2 , 'BMW')
Insert into sprav values ( 3 , 'Renault')


Create Cursor tt (dat d( 8 ), id_spr i, numb i)
Insert into tt values ({^ 2010 - 01 - 01 },  1 ,  10 )
Insert into tt values ({^ 2010 - 03 - 01 },  2 ,  20 )
Insert into tt values ({^ 2010 - 06 - 01 },  3 ,  8 )
Insert into tt values ({^ 2010 - 06 - 01 },  4 ,  8 )


Select t.dat ;
     , t.id_spr ;
     , Nvl(s.name,'нема') ;
     , t.numb ;
   from tt t ;
      left join sprav s on s.id=t.id_spr
...
Рейтинг: 0 / 0
Установка фильтра
    #36974775
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenВопрос можно закрыть.

Все заработало при:
SET FILTER TO code()=='Audi' IN Table

Как-то через зад у тебя получилось. code() каждый раз будет вызываться при перемещении по записям.
Правильнее получить код для 'Audi' и по коду фильтровать.
Оно так гораздо быстрее будет работать и индекс фокс задействует если таковой есть.
...
Рейтинг: 0 / 0
Установка фильтра
    #36974854
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПравильнее получить код для 'Audi' и по коду фильтровать.

Ну для приведенного фильтра возможно. А если нужен фильтр :
Код: plaintext
SET FILTER TO code()>'BMW' IN Table
Причем само значение для сравнения мы не знаем, его задает пользователь.
...
Рейтинг: 0 / 0
Установка фильтра
    #36975173
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenавторПравильнее получить код для 'Audi' и по коду фильтровать.

Ну для приведенного фильтра возможно. А если нужен фильтр :
Код: plaintext
SET FILTER TO code()>'BMW' IN Table
Причем само значение для сравнения мы не знаем, его задает пользователь.
В конкретном примере не вижу никакого смысла, но более быстрый способ такой:
создать курсор из кодов удовлетворяющих условию выборки ">'BMW'", проиндексировать его, и пользоваться индексом. Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
Create Cursor MyFilter (id i)
Insert into MyFilter values ( 2 )
Insert into MyFilter values ( 3 )
index on id tag id
sele MyTable
set filter to IndexSeek(MyTable.Auto, .F., 'MyFilter', 'id')
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Установка фильтра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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