Главная страница
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.02 c
14-82911
Ru
2002-11-04 16:21
2002.11.25
Лигическая задача


3-82622
mas_alexey
2002-11-05 15:58
2002.11.25
SQL


3-82680
saniok
2002-11-06 19:36
2002.11.25
А что, больше 7-ми в парадоксе нельзя?


14-82964
Василий
2002-11-06 17:59
2002.11.25
Кто ни будь знает как программно инсталлировать шрифт ?


7-83017
DuXe
2002-09-25 15:49
2002.11.25
А как прибавить к системному времени 30 секунд?