powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress Группировка и отображение.
21 сообщений из 21, страница 1 из 1
DevExpress Группировка и отображение.
    #36314999
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая ситуация:

В HEADER перетаскиваю колонку, коорая содержит название чего либо.
Происходит группировка по этойц колонке. Пока все нормально.
Но вот отображение сгрупированных данных - меня не устраивает - они отображаются в отсортированном виде, причем по имени (колонка стринговая). А мне нужно чтобы отображение шло с сортировкой по другому полю (по int). Или хотя бы вообще без сортировки, потому что сортировка по стринговому полю меня точно не устраивает.
Это как то возможно сделать?
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315073
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы себе представляете группировку без сортировки?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315170
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RENaissance,

Не совсем так.
Давайте по очереди:
1. данные сгрупированы:
2. В гриде отображаются группы, которые можно развернуть, например:

+Подразделение 2
+Подразделение 3
+Подразделение 4
+Сектор 1

3. Отображение этих групп в гриде - подчинено правилу: Отсортированы по алфавиту (можно включить обратную сортировку)

Проблема:

Мне нужно показывать группы не по алфавиту. А скажем по другому полю, например по индексу групп (у них есть ID)

Если обьяснения не достаточно - я могу более глубокие примеры привести с табличками и данными
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315177
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
os2007
RENaissance,

Не совсем так.
Давайте по очереди:
1. данные сгрупированы:
2. В гриде отображаются группы, которые можно развернуть, например:

+Подразделение 2
+Подразделение 3
+Подразделение 4
+Сектор 1

3. Отображение этих групп в гриде - подчинено правилу: Отсортированы по
алфавиту (можно включить обратную сортировку)

Проблема:

Мне нужно показывать группы не по алфавиту. А скажем по другому полю,
например по индексу групп (у них есть ID)

Если обьяснения не достаточно - я могу более глубокие примеры привести с
табличками и данными

Так не получится.

З.Ы Но можно через известное место.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315196
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
os2007, Ну и группируйте их по ID
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315221
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно. Приэтом в Header-е будет выпадающий список с индексами подразделений (а не с названиями, как нужно).
И отображаемое "дерево" которое плучится притакой групировке - будет в таком виде:

+1
+2
+3

То есть развертываются уже не читаемые имена, а индексы.
А нужно чтобы были названия, соответсвующие данным индексам.
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315283
Кости Гамлета
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RENaissance
Так не получится.

З.Ы Но можно через известное место.

Я ошибся. Можно. Смотрим на событие OnCompare у TDataController'а. В аттаче скрин примера.
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315316
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кости ГамлетаRENaissance
Так не получится.

З.Ы Но можно через известное место.

Я ошибся. Можно. Смотрим на событие OnCompare у TDataController'а. В аттаче скрин примера.

Ого! Спасибо. Попробую разобраться )
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315328
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кости ГамлетаRENaissance
Так не получится.

З.Ы Но можно через известное место.

Я ошибся. Можно. Смотрим на событие OnCompare у TDataController'а. В аттаче скрин примера.

Мде, у меня пишет что HELP зщ событию onCompare отсутсвует )
Не могли бы коротко описать что нужно в событи делать:

procedure TForm1.cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin

end;
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315337
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
os2007
Мде, у меня пишет что HELP зщ событию onCompare отсутсвует )
Не могли бы коротко описать что нужно в событи делать:

procedure TForm1.cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin

end;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if ADataController.Values[ARecordIndex1, <индекс колонки id>] < ADataController.Values[ARecordIndex1, <индекс колонки id>] then
   Compare := - 1 
else
   if ADataController.Values[ARecordIndex1, <индекс колонки id>] = ADataController.Values[ARecordIndex1, <индекс колонки id>] then
     Compare :=  0 
   else
     Compare :=  1 ;

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315344
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
os2007, ExpressDataController Help -> TcxCustomDataController.OnCompare
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315354
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RENaissance
os2007
Мде, у меня пишет что HELP зщ событию onCompare отсутсвует )
Не могли бы коротко описать что нужно в событи делать:

procedure TForm1.cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin

end;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if ADataController.Values[ARecordIndex1, <индекс колонки id>] < ADataController.Values[ARecordIndex1, <индекс колонки id>] then
   Compare := - 1 
else
   if ADataController.Values[ARecordIndex1, <индекс колонки id>] = ADataController.Values[ARecordIndex1, <индекс колонки id>] then
     Compare :=  0 
   else
     Compare :=  1 ;



Большое вам спасибо за участие :)

Может тогда заодно подскажите и ещё один момент:
При использовании группировки (перетаскиванием колонки в Header), грид отображает информацию в виде:

+Наименование подразделения: Отдел 1
+Наименование подразделения: Отдел 2
+Наименование подразделения: Отдел 3

Где "Наименование подразделения" это Caption у Column, которую мы перетащили в Header. Можно ли как то избавиться от этой надписи. Дело в том что если в Caption ее убрать, тогда в выпадающем списке не будт названия (у того что висит выше в Нeader). И как бы странно будет выбирать какие то значения из списка без названия :)
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315380
RENaissance
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
os2007, смотрите в сторону события OnCustomDrawGroupCell, в котором берем AViewInfo.Text и заменяем на нужный текст - находим точку с запятой и берем
все, что справа.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #36315488
os2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RENaissance
os2007, смотрите в сторону события OnCustomDrawGroupCell, в котором берем AViewInfo.Text и заменяем на нужный текст - находим точку с запятой и берем
все, что справа.


Суть понял - думаю разберусь. Ещё одно спасибо)
Кстати, по предыдущей проблеме - вылезла другая проблема:

Сортировка - заработала - она верная, но перестала при этом работать группировка по тем полям что я вытащил в Header.
ТОчнее я вытащил 2. Работает только по первому. Второе игнорирует ((( так что проблема осталась (((
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DevExpress Группировка и отображение.
    #37847241
DoctorRoot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для нормальной работы сортировки надо писать так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm2.cxGrid1DBBandedTableView1DataControllerCompare(
  ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
  AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
if ADataController.Values[ARecordIndex1, {Индекс столбца}] < ADataController.Values[ARecordIndex2, {Индекс столбца}] then
   Compare := -1
else
   if ADataController.Values[ARecordIndex1, {Индекс столбца}] = ADataController.Values[ARecordIndex2 {Индекс столбца}] then
     Compare := 0
   else
     Compare := 1;
end;



Например для сортировки по столбцу №2 код будет выглядеть следующим образом:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm2.cxGrid1DBBandedTableView1DataControllerCompare(
  ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
  AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
if ADataController.Values[ARecordIndex1, 2] < ADataController.Values[ARecordIndex2, 2] then
   Compare := -1
else
   if ADataController.Values[ARecordIndex1, 2] = ADataController.Values[ARecordIndex2, 2] then
     Compare := 0
   else
     Compare := 1;
end;



Ну вот и группировка есть и сортировка как надо ...
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #37847262
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, пролоббируйте кто-нибудь из кругов, приближенных к администрации сайта, эти мои 2 предложения относительно старых топиков
10321035

и 10325091

я там пресложения по улучшению сайта высказал:
screenshots


...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #37847757
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoctorRoot Для нормальной работы сортировки надо писать так
ну а для совсем нормальной работы надо переписать с учетом B198486
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DevExpress Группировка и отображение.
    #39926359
capuzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavan
... ну а для совсем нормальной работы надо переписать с учетом B198486


Вот как раз по поводу этого бага, знает ли кто-нибудь нормальное решение без правок исходников для случая, когда ARecordIndex1 или ARecordIndex2 имеют отрицательные значения?
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #39926570
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capuzi, а там до сих пор отрицательные присылают?
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #39926587
capuzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavan, версия Dev 6.57 и да, к сожалению RecordIndex периодически отрицательный присылают.
В варианте с группировками и сортировкой по полю, в группировке не участвующем, после редактирования данных в гриде все валится из-за отрицательных RecordIndex, а если обрабатывать только RecordIndex > 0, то сворачивается ряд узлов.
...
Рейтинг: 0 / 0
DevExpress Группировка и отображение.
    #39926594
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capuzi
версия Dev 6.57
больно слышать. сам на 12.2.4 застрял
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress Группировка и отображение.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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