Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подскажите как вы поступаете при фильтрации записей. / 25 сообщений из 27, страница 1 из 2
27.05.2019, 19:25
    #39818947
Sashaua
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Подскажите суто организационный вопрос,как вы поступаете?
Есть таблица операций (одна из основных таблиц и самая большая по количеству записей).
В программе есть форма где строится отчет по этой таблице который включает кучу условий (дата с, дата по, чекбоксы, комбобоксы...).
Сначало я делаю выбоку по таблице и в условие передаю дата с, дата по (where data_oper>=data_begin and data_oper<=data_end), потом уже локально через Filter одеваю условия фильтрации, и запоминаю какие даты установил пользователь. Если при следующем жмякании кнопки "Применить фильтр" пользователь не поменял даты, я выборку не делаю а только применяю фильтра локально.
Если пользователь просматривает отчет который включает текущее число то сколько раз он не жмякнет кнопку "Применить фильтр" он не увидит операцию которая была выплнена недавно пока неизменить промежуток дат (в этом случае я делаю новый селект в базу).
...
Рейтинг: 0 / 0
28.05.2019, 00:06
    #39819023
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Sashauaя делаю новый селект в базуЯ так делаю всегда и не парю мозг и процессор клиентского компа.
...
Рейтинг: 0 / 0
28.05.2019, 00:16
    #39819025
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Зачем клиенту данные, если они отсеиваются фильтром ?
...
Рейтинг: 0 / 0
28.05.2019, 00:50
    #39819031
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Локальная фильтрация имеет смысл только если основной запрос достаточно долог а объем возвращаемых данных относительно невелик.
...
Рейтинг: 0 / 0
28.05.2019, 04:07
    #39819050
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Сделайте просто кнопку обновить, которая будет перечитывать данные из БД.
...
Рейтинг: 0 / 0
28.05.2019, 10:02
    #39819112
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Sashauaкак вы поступаете?даю загрузить из бд с указанием произвольного условия отбора а потом загруженное уже фильтровать и вертеть на клиенте, порой это гораздо быстрее чем отсеивать сразу на сервере. да и мучать его бедного лишний раз тем что уже есть на клиенте иногда западло, ему и так несладко
...
Рейтинг: 0 / 0
28.05.2019, 11:04
    #39819146
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Делаю всю фильтрацию и сортировки на клиенте, один раз подгрузил таблицу в связке DBGridEh -> DataSource -> MemTableEh -> DBDriverEh -> Query и не нагружаю лишний раз базу запросами.
Если таблица часто обновляется, то уже через запросы к БД, но такое встречается очень редко.
Тоже интересно услышать все доводы за и против и что же лучше в каких случаях, локальная фильтрация или на сервере.
...
Рейтинг: 0 / 0
28.05.2019, 11:55
    #39819187
Beltar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Я всегда делаю новый Select, т. к. тупо не использую локальную фильтрацию. Просто не изучал особо этот вопрос.
Тут, возможно, не в этом проблема, я делал выборки данных с базы, где хранится инфа о ходе тех процесса на пром. оборудовании, это как бы десятки гигов данных легко, но при нормальной индексации по времени (MS SQL Server, как у всяких скулайтов не знаю) с этим нет никаких проблем. Т. е. нужна прокрутка на 12 часов, просто новый Select, без заморочек.
...
Рейтинг: 0 / 0
28.05.2019, 14:46
    #39819339
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
afordДелаю всю фильтрацию и сортировки на клиенте и не нагружаю лишний раз базу запросамиБраво.
...
Рейтинг: 0 / 0
28.05.2019, 23:05
    #39819534
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Сторонник фильтрации на сервере. Часто всосать базу на клиент для локальной сортировки - накладная операция. Пропускная способность сетки - вещь непредсказуемая. Плюс выше актуальность данных при серверной фильтрации.
...
Рейтинг: 0 / 0
29.05.2019, 09:52
    #39819641
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
SashauaСначало я делаю выбоку по таблице и в условие передаю дата с, дата по (where data_oper>=data_begin and data_oper<=data_end), потом уже локально через Filter одеваю условия фильтрации, и запоминаю какие даты установил пользователь.Поскольку мерзкий DevExpress очень популярен, то фильтрует он сам "удобно" на клиенте. В результате получается, что поля скрыты из показа у пользователей, но тянутся из базы. Пользователи удивляются, что скрытие полей не ускоряет процесса. Но кого интересует их мнение? Так же и подход ORM часто не позволяет фильтровать на сервере. Зато- стильно и молодёжно. СарказмОфф.
...
Рейтинг: 0 / 0
29.05.2019, 12:21
    #39819754
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
white_nigger,

как тонко камешек кинули...
...
Рейтинг: 0 / 0
29.05.2019, 12:37
    #39819770
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Предоставляю пользователю оба варианта - пусть сам решает.
Но если полей много-много, то создавать форму с параметрами поиска для всех полей - это 3,14здец. Поэтому, Поэтому - оба способа, но для серверной выборки - основные поля и для всех полей - все параметры фильтрации прямо в таблице. Благо современные сетки имеют встроенные фильтры, что не скажешь про стандартный позорный TDBGrid. Разработчики VCL за последние годы потратили кучу времени на то, что реально оказалось ненужным, вместо того, чтобы усовершенствовать стандартные компоненты VCL.
...
Рейтинг: 0 / 0
29.05.2019, 12:45
    #39819777
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
X11Предоставляю пользователю оба варианта - пусть сам решает.
Но если полей много-много, то создавать форму с параметрами поиска для всех полей - это 3,14здец. Поэтому, Поэтому - оба способа, но для серверной выборки - основные поля и для всех полей - все параметры фильтрации прямо в таблице. Благо современные сетки имеют встроенные фильтры, что не скажешь про стандартный позорный TDBGrid. Разработчики VCL за последние годы потратили кучу времени на то, что реально оказалось ненужным, вместо того, чтобы усовершенствовать стандартные компоненты VCL.
Ну почему же? стандартный TDBGrid - всего лишь заготовка, которая после необходимых манипуляций превращается в деталь...
...
Рейтинг: 0 / 0
30.05.2019, 10:54
    #39820251
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
В том-то и дело, что за 20 лет можно было превратить TDBGrid в конфетку. Плюс разработать что-то вроде Layout от DevExpress.
...
Рейтинг: 0 / 0
31.05.2019, 13:26
    #39820741
Zmeelov2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
X11В том-то и дело, что за 20 лет можно было превратить TDBGrid в конфетку. Плюс разработать что-то вроде Layout от DevExpress.
Не надо превращать в конфетку. TDBGrid в состоянии as is решить 80% задач. Еще 18% решаются через руки.sys и мозги.com, посредством минимального самостоятельного допиливания/использования легковесных библиотек.
А конфетка в виде DevExpress и подобных очень часто приводит к несварению.
...
Рейтинг: 0 / 0
31.05.2019, 14:00
    #39820767
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
kealon(Ruslan)white_nigger,
как тонко камешек кинули...У нас есть решение для обоих вариантов
...
Рейтинг: 0 / 0
31.05.2019, 14:03
    #39820769
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
white_nigger,

вообще не в курсе что там у вас, в глаза не видел даже - хотя было бы странно если бы не было
но видишь, кто-то для себя открытие сделает
...
Рейтинг: 0 / 0
31.05.2019, 14:05
    #39820770
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Zmeelov2Не надо превращать в конфетку. TDBGrid в состоянии as is решить 80% задач. Еще 18% решаются через руки.sys и мозги.com, посредством минимального самостоятельного допиливания/использования легковесных библиотек.
А конфетка в виде DevExpress и подобных очень часто приводит к несварению.Хрень полная. Даже комментировать лениво
...
Рейтинг: 0 / 0
31.05.2019, 15:43
    #39820839
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Zmeelov2TDBGrid в состоянии as is решить 80% задач.

Ты забыл добавить НЕ
...
Рейтинг: 0 / 0
31.05.2019, 15:44
    #39820842
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
white_nigger, +1 но я прокомментировал
...
Рейтинг: 0 / 0
31.05.2019, 15:45
    #39820843
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Zmeelov2X11В том-то и дело, что за 20 лет можно было превратить TDBGrid в конфетку. Плюс разработать что-то вроде Layout от DevExpress.
Не надо превращать в конфетку. TDBGrid в состоянии as is решить 80% задач. Еще 18% решаются через руки.sys и мозги.com, посредством минимального самостоятельного допиливания/использования легковесных библиотек.
А конфетка в виде DevExpress и подобных очень часто приводит к несварению.

Если бы ты был прав, то таких сеток, как у TMS, EhLib, DevExpress и т.д. не было бы в мире Delphi.
...
Рейтинг: 0 / 0
31.05.2019, 16:20
    #39820864
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
X11Zmeelov2TDBGrid в состоянии as is решить 80% задач.

Ты забыл добавить НЕБез скобок вообще работать невозможно
...
Рейтинг: 0 / 0
03.06.2019, 13:44
    #39821655
Zmeelov2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
X11Если бы ты был прав, то таких сеток, как у TMS, EhLib, DevExpress и т.д. не было бы в мире Delphi.
Ну да, миллионы мух не могут ошибаться. А вот теперь уберите руки от клавиатуры и задумайтесь - какие задачи вы решали с помощью расширенных гридов. И были ли это потребности отображения данных или бесконечная гонка за красивостями. И можно ли было их решить по-другому, на базе стандартного DBGrid или минимального его обвеса хелперами/собственного компонента. При этом ваша дописка будет делать только то и именно то, что нужно вам, а "конфетка" будет жить собственной жизнью.
Причем объем доки на "конфетки" превышает зачастую объем доки на среду разработки.
"Было отображение сортировки в заголовке, точно помню было. Но надо выставить галочку в третьем уровне настроек и не забыть, что состояние индикатора никак не привязано к фактическому порядку сортировки при открытии набора данных, их надо связать кодом..."
...
Рейтинг: 0 / 0
03.06.2019, 15:52
    #39821777
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как вы поступаете при фильтрации записей.
Zmeelov2И были ли это потребности отображения данных или бесконечная гонка за красивостями.
Отвечу: моё начальство считало каждую копейку и на "гонку за красивостями" просто не выделило бы ни минуты.

Zmeelov2И можно ли было их решить по-другому, на базе стандартного DBGrid или минимального его обвеса
Насколько я помню, "решения на базе стандартного DBGrid" у меня закончились во времена Delphi 2, когда выяснилось, что при внедрении в него многострочного заголовка он принципиально и неустранимо начинает глючить. Ну а многострочные заголовки были нужны потому, что у колонки с короткими данными (скажем, числа в пределах 5-6 знаков) часто требовался заголовок из пары слов, и выбор между "тратить кучу места на пустоту в данных" и "выводить в заголовке жалкий огрызок" не устраивал.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подскажите как вы поступаете при фильтрации записей. / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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