powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных в grid
23 сообщений из 23, страница 1 из 1
Отображение данных в grid
    #32905108
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите, пожалуйста, с такой проблемой.
Есть данные (одна таблица), которые отображаются в Grid. Как сделать так, чтобы отображались не все данные, а только те у которых поле (например - registr) = false.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905114
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lena_yanЗдравствуйте!
Помогите, пожалуйста, с такой проблемой.
Есть данные (одна таблица), которые отображаются в Grid. Как сделать так, чтобы отображались не все данные, а только те у которых поле (например - registr) = false.
Ну, например, отображать не таблицу (что не есть хорошо), а результат выборки из таблицы (Select-SQL) по условию. В данном случае по условию: not registr...
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905185
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй параметризированные Local View.

На закладке Filter такого View в качестве значения, с которым необходимо сравнить поле registr пишешь что-то вроде

?tlValue

Вопросительный знак перед именем, указывает что далее следует параметр, который будет задан непосредственно перед открытием View. Тогда View открывается примерно так:

Код: plaintext
1.
2.
3.
USE MyView NODATA
LOCAL tlValue
tlValue = .F.
REQUERY(MyView)

Если такой View включен в DataEnvironment формы, то для него устанавливается значение NoDataOnLoad = .F., а весь приведенный выше код (кроме команды USE) повторяется в событии INIT-формы.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905201
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фс:е это прекрасно, но самое простое - это Натравить на таблицу SET FILTER TO !registr
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905214
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel!Riser

Hel!Riserфс:е это прекрасно, но самое простое - это Натравить на таблицу SET FILTER TO !registr

Научишь человека, потом он тебя долго ещё будет вспоминать
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905261
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну дык от простого к сложному.. Думаю на начальном этапе это фполне предостаточна.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905282
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело не в начальном этапе, а в принципе.
Попробуй поставить
Код: plaintext
set filter to recno() = reccount()
, например, на таблицу длиной несколько тысяч записей. Ах, не оптимизируемое выражение? Хорошо, попробуй так
Код: plaintext
1.
2.
3.
4.
5.
index on id tag id
set order to && можно также сделать set order to id или set order to SomeOtherTag
go bottom
m.nMaxValue = id
set filter to id = m.nMaxValue
- теперь оптимизируемое. Не чувствуешь задержки? Поэкспериментируй с таблицей на несколько десятков тысяч записей. А потом до кучи и с миллионной. А потом давай советы ;-)))

Нет, если ты сначала делаешь короткую выборку в курсор или временную таблицу (выбираешь десятки или сотни, максимум, пару тысяч строк), то потом по этой выборке ставить фильтры вполне допустимо и даже очень хорошо. Но фильтр по исходной, да еще большой, таблице - это плохо. M'kay?
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905293
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это прекрасна фс:е понимаю. Вот толька при задавании подобного вопроса лична у меня ассоциация возникает со студентом 3 курса, кот нужно сделать курсовик или лабу. А жизнь у него наладица в другой отрасли. И знать досканальна то што может Фокс в такой ситу:евине.... Вопщем прошу не пинать
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32905702
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lena_yan почему-то сама молчит. Какое приняла решение, непонятно.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906502
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лена! Фильтруй свою таблицу через Set Filter to !registr и
не забудь сделать кнопку, отмены фильтра
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906545
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не являюсь Hel!Riserстудентом 3 курса я самоучка :-))). SET FILTER TO вообще не касался :-(((, поэтому большое спасибо Urri ...это руль, мой Select ... where ... LIKE ... into cursor рядом не стоит 8-(((.
если не секрет, как с помощью "Set filter" адекватно заменить Select, я имею ввиду LIKE "%Петро%" по нескольком полям, например:
Код: plaintext
1.
2.
3.
SELECT * FROM Telefon ;
WHERE UPPER(ALLTRIM(Telefon.Abonent)) LIKE "%"+UPPER(clAbonent)+"%" ;
AND UPPER(ALLTRIM(Telefon.NameStreet)) LIKE "%"+UPPER(clNameStreet)+"%" ;
ORDER BY Nomer INTO CURSOR cur_tel NOFILTER READWRITE
Спасибо.

Код: plaintext
 
Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906566
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SET FILTER TO UPPER(clAbonent)$UPPER(Telefon.Abonent) AND 
AND UPPER(clNameStreet)$UPPER(Telefon.NameStreet)
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906571
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тока не пинайте меня сильно я фильтры не использую по крайней мере как предлагалось, но всё же по поводу как заменить выше приведенное выражение на фильтр есть такая функция как OCCURS( )

SET FILTER TO OCCURS( upper(clabonent),upper(telefon.abonent))>0

и т.п.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906576
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или знак доллара присоединяюсь
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906591
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leafтока не пинайте меня сильно я фильтры не использую...
имхо нужно проста соизмерять некоторые вещи. при тыщах записей фильтрация, согласен, неоптимальный вариант. но про нее забывать не нужно - инструмент для быстрого отбора нужных вещей из сотни - прост и ифективен
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32906625
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Grumax_user

Собственно, ответили уже ;-)
От себя добавлю, если есть возможность, заменяй set filter to... на locate for... continue. Само собой, этот подход нельзя использовать для фильтрации данных в grid, но для поиска в нем - или для пакетной обработки - то, что надо.
Ну и напоследок: епархией set filter являются, пожалуй, только файл-серверные системы. Для клиент-серверных систем этот подход применять совсем не следует. Ну, то есть, найти применение, может, и можно, но в саму концепцию КС эта команда как-то не укладывается. И еще раз: фильтровать можно только маленькие источники данных. Если табличка сейчас маленькая, но со временем вырастет - не используй set filter. Потому что тормоза растут в геометрической прогрессии.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32907269
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здрасте всем!
Ниче себе полемика развернулась :)
Я пока эксперементирую и через фильтр и через View, и так и этак, но пока результат не определен.
Таблица где-то 6 000 записей. Из нее нужно заполнять Grid и стоять это все будет примерно на 3 машинах и как я понимаю без выделенного сервера. Пока перспективы такие

Все дело в том, что это впервой, вот пока разбираюсь :)
Но всем БОЛЬШОЕ спасибо за отклик :)
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32907396
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hel!Riser and leaf сенкс
Я поэксперементировал с табличкой 200 тыс. записей, у меня сложилось впечатление, что SET FILTER работает немного, но побыстрее, чем SELECT. Не вижу замедления и тормозов, может я не так эксперементировал. Наверное стоит создать таблицу >1000 тыс. :-)) и посмотреть. Откройте мне веки! :-).
Hel!Riser при тыщах записей фильтрация, согласен, неоптимальный вариант
UrriЕсли табличка сейчас маленькая, но со временем вырастет - не используй set filter.
ВладимирМНаложение фильтров на исходные таблицы не приветствуется, поскольку такая технология замедляет работу (переход от записи к записи происходит заметно медленнее)
А что является оптимальным? Просвятите или ссылочку почитать :-))

Код: plaintext
 
Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32907460
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET FILTER - вычисляет значение фильтра каждый раз , когда требуется отобразить или перейти на очередную запись таблицы

Select-SQL (Local View) - отбирает все записи удовлетворяющие условию один раз, в момент выборки. Переход по записям и их отображение происходит без тормозов.

Как Select-SQL, так и SET FILTER могут быть оптимизированы. Т.е. при наличии индекса по фильтруемому условию отбор выполняется значительно быстрее.

Любая программа имеет "привычку" развиваться. Поэтому, даже если "сейчас" Вы не видите тормозов по SET FILTER (таблица маленькая, условие оптимизируемое), то это вовсе не значит, что со временем эти тормоза не появяться.

Как правило, пользователь согласен ждать некоторое время открытия формы (Select-SQL), но крайне нервно реагирует на тормоза в процессе работы с формой (SET FILTER).
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32907568
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все понятно. Спасибо.
Код: plaintext
 
Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32909271
Lena_yan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Теперь у меня такая проблема:
На форме у меня PageFrame с двумя страницами. Так вот на первой странице Grid заполняется из таблицы (список акционеров), а на второй grid заполняется из Local View (данные для Local View также берутся из этой же таблице, но есть параметр). Когда запускаешь форму открывается первая страница, все нормально показывается (Grid заполнен), перехожу на вторую, там тоже все отрабатывается (выборка по конкретному акционеру идет - grid заполняется). Но когда я обратно перехожу на первую, то вместо Grid у меня белый прямоугольник (без линий).
Как сделать чтобы grid был виден и был заполнен информацией ?
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32909324
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lena_yan
На форме у меня PageFrame с двумя страницами. Так вот на первой странице Grid заполняется из таблицы (список акционеров), а на второй grid заполняется из Local View (данные для Local View также берутся из этой же таблице, но есть параметр). Когда запускаешь форму открывается первая страница, все нормально показывается (Grid заполнен), перехожу на вторую, там тоже все отрабатывается (выборка по конкретному акционеру идет - grid заполняется). Но когда я обратно перехожу на первую, то вместо Grid у меня белый прямоугольник (без линий).
Как сделать чтобы grid был виден и был заполнен информацией ?
Пробробуйте сделать два Local View. Первый Local View для первой страницы, второй Local View для второй страницы.
...
Рейтинг: 0 / 0
Отображение данных в grid
    #32909328
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/forum/actualsearch.aspx?search=recordsource+null&a=&ma=0&bid=37&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных в grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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