powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять про SET FILTER TO
12 сообщений из 12, страница 1 из 1
Опять про SET FILTER TO
    #34236789
Заметил такую странность....
Есть список накладных, на который ставицца нужный фильтр (пусть такой SET FILTER TO YEAR(ДатаНакладной)=ТекущийГод) и отображаецца в гриде...
Так вот, если накладных, удовлетворяющих условию фильтра (например, текущему 2007 году) нет, то форма открываецца конечно же с пустым гридом, но гораздо медленне, чем если бы были отобраны какие-то записи по условию фильтра...
Вот почему, если нет записей, удовлетворяющих условию фильтра, работа замедляецца?

ЗЫ. хотел было сделать индекс в таблице, совпадающий с условием фильтра, но в фильтре могут быть переменные, например ТекущийГод...
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34236918
StandD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уж сколько меня за использования SET FILTER на GRID мутузили. И это правильно. Тем более на расшаренном файле. Фильтр просто гробит грид. А от чего тормоз, мне кажется, - это просто. Чем больше отобрано записей по фильтру из всех имеющихся - тем быстрее грид как бы проявляется. Продолжение отбора не видно, когда появляется первый экран данных. Если записей вообще не отобрано - это как раз крайний жесткий случай. Если не ошибаюсь, при количестве записей за несколько тысяч эффект проявляется особенно ярко.
Я так развлекался, пока не перешел на локальные гриды эксклюзивных зеркал расшаренных файлов, а потом и совсем отошел от этого.
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34236940
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КонецЦиклаЗаметил такую странность....
Есть список накладных, на который ставицца нужный фильтр (пусть такой SET FILTER TO YEAR(ДатаНакладной)=ТекущийГод) и отображаецца в гриде...
Так вот, если накладных, удовлетворяющих условию фильтра (например, текущему 2007 году) нет, то форма открываецца конечно же с пустым гридом, но гораздо медленне, чем если бы были отобраны какие-то записи по условию фильтра...
Вот почему, если нет записей, удовлетворяющих условию фильтра, работа замедляецца?

ЗЫ. хотел было сделать индекс в таблице, совпадающий с условием фильтра, но в фильтре могут быть переменные, например ТекущийГод...
Сделай индекс по YEAR(ДатаНакладной) должно помочь. А в остальном уже сказали.
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34237100
логично.... Вот уж действительно, труднее всего ответить на тот вопрос, ответ на который очевиден...

Спасибо, коллеги!
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34237137
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСделай индекс по YEAR(ДатаНакладной) должно помочь. А в остальном уже сказали.
Если версия FoxPro младше 9, то для Grid - не поможет. Там нет оптимизации для наложенных фильтров внутри Grid.
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34362218
=Sergey==
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ

а какой способ есть создания интерфейса с помощью Grid и наложенным фильтром
не подскажите,
а то почти подобная ситуация как у автора (Foxpro 7)
и необходимо создать интерфейс редактирования таблицы по установленному фильтру
Спасибо !
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34362353
Al_fa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
=Sergey== ВладимирМ

а какой способ есть создания интерфейса с помощью Grid и наложенным фильтром
не подскажите,
а то почти подобная ситуация как у автора (Foxpro 7)
и необходимо создать интерфейс редактирования таблицы по установленному фильтру
Спасибо !
Вместо фильтра можно использовать индекс с фильтром
Код: plaintext
index on ... for .... to tmp.idx
Заодно бонусом получаешь возможность сортировки данных.
Вот только если используешь табличную буферизацию и (или) транзакции, то это решение становится неригодным. Вернее придется выполнять различные сложные маневры для обхода возникающих проблем.
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34362601
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Sergey== ВладимирМ

а какой способ есть создания интерфейса с помощью Grid и наложенным фильтром
не подскажите,
а то почти подобная ситуация как у автора (Foxpro 7)
и необходимо создать интерфейс редактирования таблицы по установленному фильтру
Спасибо !
Local View

Т.е. не фильтр накладывать, а просто сделать выборку нужных записей.

Фильтр (SET FILTER) имеет смысл использовать, если количество записей, отбрасываемых этим фильтром, относительно невелико. Если же необходимо отбросить значительный процент данных, то лучше делать выборку (Local View).
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34362709
=Sergey==
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
насколько я знаю Local View используется совместно с DataBases или можно без включения, и изменения структуры таблиц (файлы dbf используются еще в старых fox программах) использовать Local View для выборки данных ??
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34362876
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Sergey==насколько я знаю Local View используется совместно с DataBases или можно без включения, и изменения структуры таблиц (файлы dbf используются еще в старых fox программах) использовать Local View для выборки данных ??
Описание Local View физически хранится в контейнере базы данных (файл DBC). Но, поскольку, по сути, Local View - это просто Select-SQL + некая "обертка", то в качестве источника данных для Local View можно указать и свободные таблицы (не включенные в DBC). В том числе и созданные в младших версиях FoxPro.

Т.е. вместе с EXE надо будет сделать и DBC, но включать в него свободные таблицы не обязательно.
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34363530
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. вместе с EXE надо будет сделать и DBC
Даже это не обязательно - DBC для хранения можно создавать по мере необходимости прямо в процессе выполнения и убивать их как только в них пропадет надобность
...
Рейтинг: 0 / 0
Опять про SET FILTER TO
    #34365484
=Sergey==
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а тогда разъясните мне пожалуйста, в чем тогда преимущество Local View перед обычным курсором, в том что сохраняется связь с исходными данными допустим изменение данным в Local View влечет автоматическое изменение в основом (исходном) наборе записей
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять про SET FILTER TO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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