Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
4-83080
BFG-2000
2002-09-12 19:58
2002.11.25
Приведите пример использования WM_SETFONT


3-82650
koks
2002-11-05 10:21
2002.11.25
QuantumGrid: сортировка.


3-82633
VictorT
2002-11-05 21:17
2002.11.25
Еквивалентные запросы


3-82676
=SOFT=
2002-11-06 18:40
2002.11.25
interbase 6 - Помогите пожалуйста !!!!!


14-82933
to666a
2002-11-05 20:34
2002.11.25
сообщения




   Наверх