Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > внешний вид cxGrid


Автор: FortMax 25.11.2009, 10:14
Доброго времени суток =)
Первый раз используй cxGrid, разбил таблицу по групаам и в заголовке группы отображается название поля и через двоеточие значение по которому групируется. как мне сделать что бы отображалось только одно значение ???

Автор: former 25.11.2009, 11:38
Цитата(FortMax @  25.11.2009,  10:14 Найти цитируемый пост)
как мне сделать что бы отображалось только одно значение ??? 

Уточните вопрос. Одна запись или название группы без названия заголовка?

Автор: FortMax 25.11.2009, 13:43
название группы состоит из двух частей разделенных двоеточием, слева название поля по которому идет сортровка, а слева значение по которому формируется группа, мне нужно оставить только значение    smile 

Автор: former 25.11.2009, 15:14
Цитата(FortMax @  25.11.2009,  13:43 Найти цитируемый пост)
мне нужно оставить только значение

Собственно это только и нужно было узнать. smile 
Как вариант, в коде удалять и присваивать Caption заголовка.
А вообще, если есть возможность, лучше использовать древовидную структуру (id, prent id, item) и cxDBTreeList.

Автор: FortMax 26.11.2009, 01:14
Цитата(former @  25.11.2009,  15:14 Найти цитируемый пост)
Как вариант, в коде удалять и присваивать Caption заголовка.

простите где ? и как ?

Автор: former 26.11.2009, 09:31
Цитата(FortMax @  26.11.2009,  01:14 Найти цитируемый пост)
простите где ? и как ? 

Если руками, то так: в таблице cxGrid выделяем колонку, по которой выполняется группировка, и очищаем ее свойство Caption.
Программно. Пусть колонка, по которой выполняется группировка - clDepartments, тогда:
Код

procedure TForm1.cxGrid1DBTableView1DataControllerGroupingChanged(
  Sender: TObject);
begin
  if clDepartments.GroupIndex<>-1 then
    clDepartments.Caption:=''
  else clDepartments.Caption:='Подразделения';
end;

Автор: FortMax 26.11.2009, 10:09
former,  в сойствах нельзя настроить ?
clDepartments, в данном случае это что ?

Автор: former 26.11.2009, 10:31
Цитата(FortMax @  26.11.2009,  10:09 Найти цитируемый пост)
former,  в сойствах нельзя настроить ?

Что бы автоматически менялось нельзя.
Цитата(FortMax @  26.11.2009,  10:09 Найти цитируемый пост)
clDepartments, в данном случае это что ?

Цитата(former @  26.11.2009,  09:31 Найти цитируемый пост)
Пусть колонка, по которой выполняется группировка - clDepartments

Еще раз. Это название (свойство Name) колонки (для примера), по которой выполняется группировка.

Автор: Akella 26.11.2009, 19:48
Цитата(FortMax @  25.11.2009,  10:14 Найти цитируемый пост)
разбил таблицу по групаам и в заголовке группы отображается название поля и через двоеточие значение по которому групируется

Разве так можно группировать? Или я вопроса не понял.

может тебе лучше использовать BandedTable?

Добавлено через 23 секунды
Снимок экрана бы посмотреть, а?

Автор: former 26.11.2009, 20:30
Цитата(Akella @  26.11.2009,  19:48 Найти цитируемый пост)
Или я вопроса не понял.

Akella, FortMax имел виду стандартную группировку в cxGrid smile 

Автор: Akella 26.11.2009, 23:47
А при чём здесь разделитель в виде двоеточия. Для группирования достаточно перетянуть заголовок столбца вверх, на панель группирования

Автор: FortMax 27.11.2009, 01:20
для наглядности картинка

Автор: Akella 27.11.2009, 07:47
Цитата(FortMax @  25.11.2009,  10:14 Найти цитируемый пост)
и через двоеточие значение по которому групируется

значит делай отдельным полем значение, по которому группируется

Автор: former 29.11.2009, 10:20
Цитата(Akella @  26.11.2009,  23:47 Найти цитируемый пост)
А при чём здесь разделитель в виде двоеточия. Для группирования достаточно перетянуть заголовок столбца вверх, на панель группирования 

Akella, FortMax так и делает. В результате, название каждой группы выглядит так: 
Caption столбца:общие данные группы. А надо что-бы были только общие данные группы.

FortMax, мой вариант пробовал?

Автор: FortMax 30.11.2009, 01:21
former, не работает, вот мой код на всякий
Код

procedure TSDIAppForm.cxGrid1DBTableView1DataControllerGroupingChanged(
  Sender: TObject);
begin
//Изменение заголовка груп
if cxGrid1DBTableView1C_OKATO2.GroupIndex<>-1 then
    cxGrid1DBTableView1C_OKATO2.Caption:=''
 else cxGrid1DBTableView1C_OKATO2.Caption:='Подразделения';
end;

Автор: former 30.11.2009, 10:26
Цитата(FortMax @  30.11.2009,  01:21 Найти цитируемый пост)
former, не работает

У тебя колонка при запуске уже находится на панели группировки? Мой код работает (проверял) при перемещении колонки на/с панели группировки.
Сделал для тебя пример (D2009).

Автор: FortMax 1.12.2009, 01:29
former,  спасибо огромное =) получилось то что нужно =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)