Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение данных в grid / 23 сообщений из 23, страница 1 из 1
08.02.2005, 06:39
    #32905108
Lena_yan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Здравствуйте!
Помогите, пожалуйста, с такой проблемой.
Есть данные (одна таблица), которые отображаются в Grid. Как сделать так, чтобы отображались не все данные, а только те у которых поле (например - registr) = false.
...
Рейтинг: 0 / 0
08.02.2005, 06:56
    #32905114
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Lena_yanЗдравствуйте!
Помогите, пожалуйста, с такой проблемой.
Есть данные (одна таблица), которые отображаются в Grid. Как сделать так, чтобы отображались не все данные, а только те у которых поле (например - registr) = false.
Ну, например, отображать не таблицу (что не есть хорошо), а результат выборки из таблицы (Select-SQL) по условию. В данном случае по условию: not registr...
...
Рейтинг: 0 / 0
08.02.2005, 09:00
    #32905185
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Используй параметризированные 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
08.02.2005, 09:13
    #32905201
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
фс:е это прекрасно, но самое простое - это Натравить на таблицу SET FILTER TO !registr
...
Рейтинг: 0 / 0
08.02.2005, 09:20
    #32905214
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Hel!Riser

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

Научишь человека, потом он тебя долго ещё будет вспоминать
...
Рейтинг: 0 / 0
08.02.2005, 09:37
    #32905261
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
ну дык от простого к сложному.. Думаю на начальном этапе это фполне предостаточна.
...
Рейтинг: 0 / 0
08.02.2005, 09:47
    #32905282
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Дело не в начальном этапе, а в принципе.
Попробуй поставить
Код: 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
08.02.2005, 09:54
    #32905293
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
я это прекрасна фс:е понимаю. Вот толька при задавании подобного вопроса лична у меня ассоциация возникает со студентом 3 курса, кот нужно сделать курсовик или лабу. А жизнь у него наладица в другой отрасли. И знать досканальна то што может Фокс в такой ситу:евине.... Вопщем прошу не пинать
...
Рейтинг: 0 / 0
08.02.2005, 12:02
    #32905702
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Lena_yan почему-то сама молчит. Какое приняла решение, непонятно.
...
Рейтинг: 0 / 0
08.02.2005, 16:24
    #32906502
Андрей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Лена! Фильтруй свою таблицу через Set Filter to !registr и
не забудь сделать кнопку, отмены фильтра
...
Рейтинг: 0 / 0
08.02.2005, 16:36
    #32906545
Grumax_user
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Я не являюсь 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
08.02.2005, 16:45
    #32906566
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
Код: plaintext
1.
SET FILTER TO UPPER(clAbonent)$UPPER(Telefon.Abonent) AND 
AND UPPER(clNameStreet)$UPPER(Telefon.NameStreet)
...
Рейтинг: 0 / 0
08.02.2005, 16:46
    #32906571
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение данных в grid
тока не пинайте меня сильно я фильтры не использую по крайней мере как предлагалось, но всё же по поводу как заменить выше приведенное выражение на фильтр есть такая функция как OCCURS( )

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

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

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

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

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

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

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

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

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


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