DBGrid - кнопка фильтра как в Excel

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

DBGrid - кнопка фильтра как в Excel

Сообщение alegzz » 15.03.2017 20:15:56

Здравствуйте.

Начал разбираться с Lazarus, так как Excel уже не подходит для задач, но хотелось бы перенести плюшки.
Как бы добавить к каждому столбцу кнопку фильтр, чтобы при нажатии появлялось окошко, в которое можно ввести часть текста и в отфильтрованном списке можно было бы выбрать варианты (или при нажатии Enter сразу бы фильтровалось по тому, что уже нашлось)? При этом нужно учитывать фильтры других столбцов
alegzz
незнакомец
 
Сообщения: 4
Зарегистрирован: 15.03.2017 19:57:59

Re: DBGrid - кнопка фильтра как в Excel

Сообщение Deimos » 15.03.2017 22:26:51

Буду удивлен, если буду не прав, но эта хотелка из разряда МНОГО своего кода. Для БД смотреть LIKE и локальный (самодельный) поиск по гридам. Я копал-бы в эту сторону...
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: DBGrid - кнопка фильтра как в Excel

Сообщение olegy123 » 16.03.2017 10:23:36

Вам никто не может предоставить "кнопки как в Excel-е", кроме как в самом Excel-е.. Майкрософт придумала данный компонент, включила функционал для удобства своих клиентов, и то не сразу.
Это их фишичка.. на который вы подсели..

Хотя не все так печально. Есть компоненты которые предоставляют похожий функционал:
http://www.ehlib.com
https://www.devexpress.com/
http://www.tmssoftware.com/
и др..
можно тут, крупная база компонентов, поискать
http://torry.net/

вообще если вы умеете делать визуальные компоненты - то за один вечер вы сможете нарисовать кнопку.. Ну нужен опыт.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: DBGrid - кнопка фильтра как в Excel

Сообщение Nick74 » 16.03.2017 11:51:36

И ждут вас на этом пути многие овраги и ямы... ))
У меня в программе (Правда на Дельфи, но смысл один) используется похожее.
Использую компоненты EhLib. Там есть очень похожий на Excel-ный фильтр, но с ограниченным функционалом, в основном хорошо работающий локально в памяти. Никакие визуальные компоненты править/писать не придется.
Но для таблицы в 30 строк все это лишнее, зато когда в таблице 50000 строк (Хотя бы), или, не дай бог, пара миллионов строк, все это начинает ощутимо подтормаживать (Дико тормозить), приходится переносить фильтры в SQL запрос, а это требует парсинга SQL-запроса, чтобы вставить в него нужные where/having и т.д. и т.п.
Впрочем у меня это все писалось в крайне общем случае для сферической лошади, возможно у вас все это будет сильно проще.

P.S. У меня был EhLib 5.6/6.0, сейчас смотрю есть уже 9-й, правда дико дорогой. А вдруг там уже все это сделали и ничего делать не надо вообще (Помечтал немножко...)
Nick74
новенький
 
Сообщения: 25
Зарегистрирован: 15.03.2017 13:55:06
Откуда: Москва

Re: DBGrid - кнопка фильтра как в Excel

Сообщение java73 » 16.03.2017 11:56:22

А в RXDGGrid случаем нет подобного? Итоговые всякие строки как в "умных" таблицах там есть, я использую. А фильтр скорее всего придется писать самому, т.к. это же разные компоненты - таблица только за внешнее отображение отвечает, а фильтруется уже сама таблица БД через SQL запросы...
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Re: DBGrid - кнопка фильтра как в Excel

Сообщение alegzz » 16.03.2017 13:45:10

мне бы понять, как рюшечки делать: запихнуть значок фильтр к столбцам и нарисовать окошко. обработку по-любому писать, так как там связанные таблицы. а то я сейчас даже смотрю на DBGrid и в печали: края не прилипают к краям формы...
alegzz
незнакомец
 
Сообщения: 4
Зарегистрирован: 15.03.2017 19:57:59

Re: DBGrid - кнопка фильтра как в Excel

Сообщение java73 » 16.03.2017 13:57:14

Края к форме - привязку надо в редакторе anchors поставить и все будет прилипать, или align свойство
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Re: DBGrid - кнопка фильтра как в Excel

Сообщение serbod » 16.03.2017 14:02:44

Быстрый фильтр/сортировка в памяти делается очень просто - для отображения используется вторичная (виртуальная) таблица, которая не содержит данных, только ссылки на элементы первичной (реальной) таблицы. При изменении условия фильтра/сортировки нужно перезаполнить вторичную таблицу, это может занять ощутимое время (около секунды для миллиона строк), но зато скроллинг и прочие манипуляции пользователя тормозить не будут.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: DBGrid - кнопка фильтра как в Excel

Сообщение alegzz » 16.03.2017 17:06:12

serbod сделать еще один dbgrid? а в колонках как можно добавить иконку фильтра? стандартный компонент работы с MySQL какой-то убогий - при любой проблеме все падает, есть смысл с zeos заморочиться или есть что лучше?
alegzz
незнакомец
 
Сообщения: 4
Зарегистрирован: 15.03.2017 19:57:59

Re: DBGrid - кнопка фильтра как в Excel

Сообщение serbod » 16.03.2017 17:48:11

alegzz писал(а):сделать еще один dbgrid?

Боюсь, вы неправильно меня поняли. Поправочка - все просто, если вы умеете работать с реальными и виртуальными датасетами. А если хочется готовое, то выше накидали ссылок с компонентами. Они наверняка платные, но тут либо долго учиться и делать все самому, либо платить и получать результат сразу.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: DBGrid - кнопка фильтра как в Excel

Сообщение alegzz » 16.03.2017 18:34:05

serbod, вроде понял - смутило то, что речь про таблицы шла. осталось попробовать. а по рюшечкам где посмотреть?
alegzz
незнакомец
 
Сообщения: 4
Зарегистрирован: 15.03.2017 19:57:59

Re: DBGrid - кнопка фильтра как в Excel

Сообщение svk12 » 16.03.2017 21:36:29

java73 писал(а):А в RXDGGrid случаем нет подобного?


Есть!
svk12
постоялец
 
Сообщения: 407
Зарегистрирован: 09.06.2008 18:42:47

Re: DBGrid - кнопка фильтра как в Excel

Сообщение olegy123 » 16.03.2017 21:50:31

alegzz писал(а):мне бы понять, как рюшечки делать: запихнуть значок фильтр к столбцам и нарисовать окошко.

http://citforum.ru/programming/delphi/nogrid/
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: DBGrid - кнопка фильтра как в Excel

Сообщение java73 » 17.03.2017 09:26:48

Вон сколько экстра-свойств есть у RxDBGrid, там это можно прикрутить я так думаю!
Изображение
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

Рейтинг@Mail.ru
cron