Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-82904
Денис Андриянов
2002-08-31 13:17
2002.11.25
Определение платформы сервера по его IP


1-82761
Z-Yuri
2002-11-11 11:26
2002.11.25
Подскажите формат файла


3-82585
Rule
2002-11-08 01:18
2002.11.25
Помогите пожалуста горит проект , извиняюсь за лемерство


1-82698
AlexT1000
2002-11-14 16:24
2002.11.25
как узнать имена всех классов существующих в программе?


14-82993
slykirill
2002-11-07 12:33
2002.11.25
утилита для конвертирования файла chm в doc.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский