dbgrid и сортировка

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

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

Re: dbgrid и сортировка

Сообщение SeventhSon » 28.05.2009 16:08:54

alexs извини но я новичок в этом деле.что значит включить модуль сортировщика в проект?использую RxLib и RxDBGrid оттуда.в базе фаербёрд цепляюсь зеосом.я может что не так объясняю.саму сортировку я наверное смогу реализовать через обработку события нажатия заголовка DBGrid.я не знаю простого способа отображать значки сортировки в заголовке DBGrid.в некоторых программах рисуются треугольнички и цифра,т.е. с зажатым контролом можно усложнить сортировку по нескольким столбцам.в Бате вроде стрелочки цветные рисуются.модуль exsortXXX.pas про который ты упоминал в зеосе я не нашёл.искал разумеется по маске exsort*.pas.
и вообще.не только тебе но и остальным гуру.вы же видите статус пользователя.зачем употреблять слова подключаешь,добавляешь,используешь,включаешь и прочее?надо попроще как-то.проект-добавить-файл такой-то.т.е. конкретные указания какие кнопки жать.а с этим ccr разбирался целый день.куча ссылок на RxLib,в том числе и на твоей странице.и оказывается что ничего не работает!а ccr нашёл только поисковиком.ну разве это нормально? :(
SeventhSon
новенький
 
Сообщения: 56
Зарегистрирован: 17.02.2009 01:57:17

Re: dbgrid и сортировка

Сообщение Vadim » 28.05.2009 18:27:03

SeventhSon
exsort*.pas находится в комплекте пакета RxLib.
Скачать пакет целиком можно по этой ссылке: http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/rx.tar.gz?view=tar.
Демонстрашка AutoSort туда уже добавлена.
SeventhSon писал(а):и вообще.не только тебе но и остальным гуру.вы же видите статус пользователя.зачем употреблять слова подключаешь,добавляешь,используешь,включаешь и прочее?надо попроще как-то.проект-добавить-файл такой-то.т.е. конкретные указания какие кнопки жать.

Статус, который мы видим на форуме, это Ваш статус именно в форуме. Никто Ваших реальных знаний и умений в программировании не знает, а сами Вы рассказать об этом почему-то постеснялись. Отчего же Вас тогда удивил и даже обидел получившийся результат? С Вами разговаривали как с равным, искренне надеясь на то, что Вы не будете зажиматься, когда спрашиваете о непонятных для Вас вещах.
Все гуру когда-то были начинающими, однако мало кто из гуру помнит, какими они тогда были. :) Может быть Вас удивит, но у всех гуру процесс становления, как программиста, протекал по разному. Кому-то не давались одни вещи, кому-то другие. Поэтому давайте Вы не будете обижаться, а лучше соберитесь с мыслями и постарайтесь формулировать Ваши вопросы так, чтобы любому гуру было понятно, что именно Вы не понимаете, где, в каком конкретно месте у Вас затруднения. Иначе, если Вы не сможете детально описать свою проблему, Вам невозможно будет помочь. ;)
Хочу только Вас сразу предупредить, что "кнопочников", т.е. тех кто может понять только на уровне
SeventhSon писал(а):...конкретные указания какие кнопки жать...

никто нигде не любит. Здесь не партийный аппарат КПСС, в котором только требовалось беспрекословно исполнять вышестоящие указания не задумываясь. Здесь приветствуется самостоятельное мышление. А руководство, т.е. постоянное ведение за руку, всех без исключения приводит в беспросветное уныние. Из-за этого закрылось или остановило свою работу множество интереснейших сайтов в интернете. Вы ведь не хотите, чтобы и этот сайт тоже заглох? ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dbgrid и сортировка

Сообщение SeventhSon » 01.06.2009 10:55:44

да вы меня не правильно поняли.я вовсе не обиделся.я вообще не обидчивый :) просто высказал свои пожелания.просто заметил что у многих гуру такая болезнь.они напрочь забывают что были когда-то чайниками и объясняют всё типа берёшь,создаёшь,добавляешь...ну это не те слова.им-то кажется всё просто как 2*2 а человек не понимает что значит создаёшь.про кнопки я высказался утрированно но вот в данном ведь случае сказали добавить exportXXX.pas а из RxLib не добавили слова.а я из контекста понял что надо в зеосе это искать.и потерял гораздо больше времени чем если бы автор допечатал "из RxLib".
конечно я хочу чтобы данный ресурс процветал.я пробовал программировать под линукс на Ruby+Tk,были проблемы с кирилицей.фаербёрд прикручивается не так просто.вобщем я для себя сделал вывод что несмотря на критику лазаруса(большой объём скомпилированной простейшей программы например) это самый удобный и простой способ GUI-программирования под линукс.сравнивать паскаль и си не буду это отдельная тема но тоже считаю что паскаль практичнее.майкрософт в тупике,линукс же наоборот развивается стремительными темпами.и сейчас очень необходим такой инструмент как лазарус чтобы большое количество талантливых дельфистов начали писать софт под линукс.конечно я не думаю что вы и другие гуру обязаны помогать таким чайникам как я.но я считаю что сортировка в дбгриде это очень важный кирпичик-элемент для написания многих программ.и если я не смог реализовать хотя кое-какой опыт у меня есть то и у других будут проблемы.
и может завтра человек который писал в дельфи,сел за линукс и создал простейшее приложение завтра напишет что-то серьёзное.кстати насколько я знаю qip и TheBat наверное лучшие программы в своём классе написаны на дельфи.
спасибо за ответ буду дальше работать в этом направлении.может когда-нибудь и я буду на вашем форуме давать умные советы:)
SeventhSon
новенький
 
Сообщения: 56
Зарегистрирован: 17.02.2009 01:57:17

Re: dbgrid и сортировка

Сообщение Vadim » 01.06.2009 11:36:21

В DBGrid обычно не нужно делать сортировку, т.к. сортировка, и очень просто, делается прямо в запросе к серверу БД, а DBGrid он нужен только для показывания таблицы (результата запроса) и больше ни для чего...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dbgrid и сортировка

Сообщение alexs » 01.06.2009 19:36:14

Vadim
ты не прав
когда ты уже имееш отобранный набор данных - а оператор хочет его пересортировать по своей прихоти - то нагружать сервер для этого - слшком расточительно. Гораздо дешевле произвести сортировку уже отобранных на клиента данны на месте, не дергая лишний раз сервак БД.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: dbgrid и сортировка

Сообщение yuray » 01.06.2009 23:23:43

alexs писал(а):Vadim
ты не прав
когда ты уже имееш отобранный набор данных - а оператор хочет его пересортировать по своей прихоти - то нагружать сервер для этого - слшком расточительно. Гораздо дешевле произвести сортировку уже отобранных на клиента данны на месте, не дергая лишний раз сервак БД.


При многопользовательском режиме, думаю, Vadim более прав.
На то он и сервер, чтобы выполнять такие задачи. Клиенты должны только представлять данные, а не заниматься сложными операциями. Может я ошибаюсь. Это мое мнение.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: dbgrid и сортировка

Сообщение alexs » 02.06.2009 07:33:14

ага - когда клиентов много (больше 100) и им хочется постояно посмотреть - а что будет - если вот так я данные хочу увидеть (а для бухов это нормально) - любой серер ложится на раз.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: dbgrid и сортировка

Сообщение Vadim » 02.06.2009 07:55:54

Спорить не буду, может так оно и есть. Только за сервер большие тышы плочены, пусть отрабатывает. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dbgrid и сортировка

Сообщение yuray » 02.06.2009 16:21:06

Интересно. А как быть с трафиком? Если клиент будет делать сортировки у себя, то это ему нужно передавать в любом случае весь набор данных. Или я что-то не понимаю? К тому же, если юзер открыл у себя набор, пошел покурить, а потом отсортировал и сделал какие-то выводы, то они (выводы) будут базироваться на данных, которые уже много раз изменились или вовсе не существуют.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: dbgrid и сортировка

Сообщение Vadim » 02.06.2009 16:58:21

yuray
Имеется в виду сортировка только полученной порции данных. Ему не надо забирать с сервера всю таблицу.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dbgrid и сортировка

Сообщение alexs » 02.06.2009 19:50:13

Vadim
А ты даёш возможность оператору вытягивать на клиента одним махом большие объёмы? Зачем?
Всё равно чисто физически оператор не может обработать список более 200-300 записей. Ограничения человека.
Лучше предоставить возможности по хорошей фильтрации данных - желательно незаметной для пользователя.
А вот уже в отфильтрованных (и обработанных предвариательно на сервере) данных пусть оператор возится. С НЕ БОЛЬШИМ списком.
И сортирует как ему хочется.
И ещё - в многопользовательских системах (за исключениме аналитики) оператору обычно не очень интересны данные, введённые другими операторами.

Vadim писал(а):олько за сервер большие тышы плочены, пусть отрабатывает

Вот чтобы не платить большие тыщи - надо просто сначала продумать интерфейс взаимодествия оператора с системой.
А практика бездумного увеличения мощности ПК - это абсурд. И то, что дешевле заплатить за железку - чем за нормально работающую программу - миф. Я сейчас с этим каждый день сталкиваюсь.

P.S.
Эту тему мы уже обсасывали здесь. По моему, не стоит ещё раз поднимать.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: dbgrid и сортировка

Сообщение yuray » 03.06.2009 01:01:46

alexs писал(а):А практика бездумного увеличения мощности ПК - это абсурд.

С этим никто не спорит. Речь идет о том, каким образом сортировать данные в гриде. О чем, собственно, и спрашивают. Ответов два - делать сортировку на сервере или клиенте. От выбора способа сортировки зависит его реализация. Конечно, давать возможность отображать (FetchAll) и сортировать большие наборы данных нецелесообразно. Но если уж очень надо, а временами это удобный способ быстро получить доступ к последней или первой записи, то, на мой взгляд, делать это нужно на сервере. Так как клиенту нужно сначала передать весь набор данных, а потом заставить заниматься не свойственными ему делами. И определить на стадии проектирования приложения каким будет размер каждого набора данных (200-300 записей или больше) невозможно.
А оптимизацию запросов, раздачу прав пользователям, выбор архитектуры приложения и т.д. никто не отменял. Это само собой.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: dbgrid и сортировка

Сообщение alexs » 03.06.2009 07:37:10

yuray писал(а):Но если уж очень надо, а временами это удобный способ быстро получить доступ к последней или первой записи,

alexs писал(а):Лучше предоставить возможности по хорошей фильтрации данных - желательно незаметной для пользователя.

Вопросы?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: dbgrid и сортировка

Сообщение Vadim » 03.06.2009 07:54:39

alexs писал(а):А ты даёш возможность оператору вытягивать на клиента одним махом большие объёмы? Зачем?

Не понял, почему эти вопросы адресованы именно мне. :) Я вытягиваю именно столько данных, сколько нужно - не больше и не меньше.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dbgrid и сортировка

Сообщение SeventhSon » 03.06.2009 09:42:43

задача DBGrid-ОТОБРАЗИТЬ данные.не забывайте об этом.т.е. при взгляде на DBGrid пользователь должен сразу увидеть по какому полю данные отсортированы не заходя в "настройки-сортировать по...", для этого и нужен треугольничек или другой значок в заголовке.посмотрите как это красиво сделано в TheBat например.альтернативный вариант-кинуть на форму PageControl, создать страницы по числу столбцов DBGrid и на каждую страницу положить DBGrid.видел и такое.согласитесь что первый вариант удобнее и практичнее.
ну и конечно имхо глупо фетчить данные создавая ненужную нагрузку на сервер и лишний трафик потому что уже выбранные данные пользователь решил пересортировать по другому полю.конечно при обычной работе 200-300 записей достаточно.а если необходимо выбрать ВСЕ(тысячи или десятки тысяч строк) данных чтобы например их распечатать или экспортировать в табличный процессор типа Excel?кстати под Дельфи видел хитрый DBGrid который умеет это делать.

Добавлено спустя 15 минут 58 секунд:
бегло посмотрел пример с AutoSort.как-то непонятно.при клике по Title'у треугольнички появляются.и меняют направление вверх-вниз.но данные всё равно сортируются только по возрастанию.но уже прогресс.будем разбираться спасибо
SeventhSon
новенький
 
Сообщения: 56
Зарегистрирован: 17.02.2009 01:57:17

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru