Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

QuantumGrid: сортировка.   Найти похожие ветки 

 
koks ©   (2002-11-05 10:21) [0]

Уважаемые мастера! Столкнулся с заморочкой...

Передаю в грид запрос TQuery:
SQL:

SELECT CH1_id, CH2_id, SUM(MASSA) AS SMASSA, MAX(ID) AS SID
FROM BASE
GROUP BY CH1_id, CH2_id
ORDER BY CH1_id, CH2_id.

CH1_id и CH2_id - коды определенных характеристик товара, которые расшифровываются в справочниках. Я создаю для TQuery 2 Lookup-поля c расшифровкой этих характеристик: lkpCh1, lkpCh2.

Далее - передаем TQuery в QuantumGrid. Создаем 6 колонок.
SID (visible := false) - значение KeyField для odgoLoadAllRecords
CH1_id (visible := false)
CH2_id (visible := false)
lkpCH1 (visible := true)
lkpCH2 (visible := true)
SMASSA (visible := true)

Для всех колонок устанавливаем Sorted := stNone и в свойствах грида устанавливаем edgoAutoSort := false.

В результате мы имеем 3 видимых колонки, отсортированные SQL-ом в нужном порядке (по кодам характеристик). Вся возможная сортировка в самом гриде отключена. До этого момента все OK...

Далее - включаем группировку. (она мне нужна для рассчета подитогов) Устанавливаем в колонках соответствующие GroupIndex - и .... грид включает свою собственную сортировку, перемешивая сортировку SQL-а.

Вопрос - как ее отключить.
Дело в том, что мне надо чтобы она в пенельке, возникающей в заголовке каждой группы писала не

Форма: 12 (12 - "это СH_id")

а

Форма: Кр-57 (это характеристика по справочнику). Но сортировка - ориоинальная.

Заранее спасибо... Немного сумбурно я тут все описал - если надо задавайте уточняющие вопросы


 
KoluChi ©   (2002-11-05 10:41) [1]

А чем тебе не нравится сортировка по характеристике, ну отсортирует Grid в алфавитном порядке, да так же и удобнее (для оператора).


 
koks ©   (2002-11-05 11:46) [2]

В том то вся и фишка, что сортировка характеристики (Ch_id) в алфавитном порядке абсолютно неприемлема...


 
KoluChi ©   (2002-11-05 11:48) [3]

Я говорил о расшифровке характеристики (lkpCH1), ведь Ch_id скрыт от пользователя.


 
koks ©   (2002-11-05 12:34) [4]

Ну да, мне нужно, чтобы характеристики CH* былы отсортированы по их CH*_ID причем именно так, как в запросе (ORDER BY CH1_ID, CH_ID2). Это - основополагающее для меня условие.... к сожалению ...
Вот если бы можно было как-нить подставить в панельке вместо кода значение самой характеристики - это самое лучшее решение. Но как - ума не приложу... не знаю даже где копать...


 
KoluChi ©   (2002-11-05 12:52) [5]

Поковыряй события OnAddGroupColumn (может позволит поменять заголовок), OnColumnSorting, OnCustomDrawColumnHeader


 
koks ©   (2002-11-05 14:48) [6]

OnAddGroupColumn - возникает при RunTime группировке а у меня группировка в DesignTime.
OnCustomDrawColumnHeader - Это от носится к Headery, а у мне скорее всего надо что-то вроде OnCustomDrawNodeHeader... но такого нет
OnColumnSorting - используется для запрещения/разрешения сортировки опр. колонки.. опять таки в ран-тайме.

нет, это все не выход..
Я уже тут отчаялся - столько работы, и вот когда уже почти все - такая заморочка.

Вот думаю - попробовать использовать MasterView


 
koks ©   (2002-11-06 10:05) [7]

Господа! подскажите пожалуйста, можно ли как нибудь достучаться до этой панельки, которая появляется "над" сгруппированным нодом. Мне нужно убрать все что там пишется.... Ну например написать серым на сером


 
Faun ©   (2002-11-06 12:16) [8]

Если я правильно понял, "панелька" это и есть сгруппированный нод, поэтому необходимо использовать обработчик OnCustomDrawCell. Вот пример:

procedure TForm1.dxDBGridCustomDrawCell(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
ASelected, AFocused, ANewItemRow: Boolean; var AText: String;
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
var ADone: Boolean);
begin
with (Sender as TdxDBGrid) do
if ANode.HasChildren and
(GroupColumns[ANode.Level].Name = "CH1_id") then
try
...
AText :="Кр-57"; {Вообще то, все что угодно, используй данные из ANode}
except
end;
end;

Подробно писать не стал. Если будут вопросы спрашивай.

ЗЫ: Рассмотрение подобных вопросов смотри на форуме разработчика www.devexpress.com


 
koks ©   (2002-11-06 13:29) [9]

2 Faun: ОГРОМНОЕ СПАСИБО !!! То, что надо



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
1-82716
AL2OO2
2002-11-14 19:43
2002.11.25
Как задать массив точек?


6-82887
TDOP
2002-09-28 22:10
2002.11.25
Как узнать все IP адреса ?


3-82668
xxxxxx
2002-11-06 17:53
2002.11.25
Чем экспортировать таблицу .gdb в текстовый файл.


3-82634
iKS1
2002-11-05 16:42
2002.11.25
API


3-82601
Vagrant
2002-11-04 09:50
2002.11.25
DBTreeView на основе VirtualTreeView