Lazarus и группировка заголовков DbGrid

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

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

Lazarus и группировка заголовков DbGrid

Сообщение wofs » 26.05.2011 17:00:04

Доброго дня.
Стоит задача сгруппировать колонки dbGrid и отобразить в виде:

|Общий заголовок для сгруппированных столбцов|
--------------------------------------------------------------
|столбец 1|столбец 2 | столбец 3 |

Пошел по пути наименьшего сопротивления и реализовал это через HeaderControl но возникла проблема - при горизонтальной прокрутке мои общие заголовки стоят на месте ( что ожидаемо)... Как встроить HeaderControl непосредственно над титлом DBGrid и заставить его прокручиваться вместе с гридом...
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 26.05.2011 19:49:34

wofs
rxdbgrid это умеет.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Lazarus и группировка заголовков DbGrid

Сообщение wofs » 26.05.2011 19:55:52

ок, поставим, посмотрим - спасибо.
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 02.11.2016 14:18:30

А как сгруппировать столбцы?
никак не могу найти где это можно сделать у rxdbgrid
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 02.11.2016 15:26:41

А пример глянуть?
Соседние колонки сливаются - если у них есть общаий заголовок черех |
т.е. если колонки назвать
Протокол|Дата
Протокол|Оператор
то будет счастье
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 02.11.2016 15:36:06

СПАСИБО!!!

Добавлено спустя 7 минут 28 секунд:
еще вопрос немного не в тему. а можно ли сделать так чтобы он вел себя как CxGrid - а именно скролился сразу когда тянешь за скролбар...датасет - rxMemoryData

Добавлено спустя 22 минуты:
и еще вопрос...а столбый друг над дружкой можно поставить, чтобы получилось что то вроде:::
Код: Выделить всё
---------------------
| ИД  |              |
|-----| Пользователь |
| ИМЯ |              |
----------------------
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 02.11.2016 17:59:07

Заголовок можно
Данные - нет.

Насчёт непрервного скролинга - я убрал собственный обработчик на LM_VScroll. Он вроде как устарел уже.
Но надо потестировать.
Чтобы такой мягкий скролинг заработал - надо включить dgThumbTracking.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 02.11.2016 20:03:53

Я включил...ничего не поменялось.... скроллится по прежнему
или что то еще надо сделать?
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 02.11.2016 22:48:14

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

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 02.11.2016 23:08:19

Да спасибо все отлично работает!

Еще вопрос делаю фильтрацию "like" по стринговому полю brief а он выдает ошибку:

Index based on unknown field "LIKE".

Press OK to ignore and risk data corruption.
Press Cancel to kill the program.
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 03.11.2016 13:50:53

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

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 03.11.2016 16:20:50

Возможно. Компонент доступа - rxmemorydata. Он поддерживает фильтрацию такую?

Добавлено спустя 9 часов 2 минуты 15 секунд:
Проверил, да like не понимает ...

Добавлено спустя 49 минут 57 секунд:
аналог like это поставить = и символ звездочки...
но не работает is null и is not null

Добавлено спустя 12 минут 1 секунду:
И еще... при фильтрации никак нельзя сделать чтобы скрол не нарушался?
В данный момент при фильтрации у грида скрол становить в одну треть высоты полоски... и принимает только три "значения" первая средня и последяя строка.
Реально это исправить?
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Re: Lazarus и группировка заголовков DbGrid

Сообщение kit » 04.11.2016 10:10:45

Проблема фильтрации из-за старого модуля bufdataset_parser. Вот би кто-то его доработал.
kit
постоялец
 
Сообщения: 156
Зарегистрирован: 29.09.2016 09:39:07

Re: Lazarus и группировка заголовков DbGrid

Сообщение alexs » 07.11.2016 09:30:52

rellai2 писал(а):В данный момент при фильтрации у грида скрол становить в одну треть высоты полоски... и принимает только три "значения" первая средня и последяя строка.

Для RxMem - простого решения нет. Вызвано это тем, что при включении фильтрации компонент не знает - сколько записей попало под фильтр.
Если не ошибаюсь - в ZEOS для этого завели отдельный массив, в который включают только отфильтрованные записи и с работают с этим массивом.
Но мне чего-то не очень хочется это писать. rxmemorydata - он "по наследству" из дельфёвого RX, почти не переделывался мной. Если у кого есть желание - всегда рад.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Lazarus и группировка заголовков DbGrid

Сообщение rellai2 » 08.11.2016 09:54:30

Ок, спасибо за информацию!
Еще вопрос не совсем в тему. он либо с гридами лазаря связан либо с датасетом
поставил событие на afterscroll датасета и наример когда кликаю по скролбару событие вызывается. А когда хватаю за скролбар и тяну вниз или вверх, затем отпускаю он позиционирует грид на новую строку но событие afterscroll не вызывается. И если щелкнешь по этой строке тоже ничего не произойдет. нужно лелкнуть по другой только тогда событие произойдет... это относится и к rxdbgrid и к обычному гриду
rellai2
постоялец
 
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 253

Рейтинг@Mail.ru