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

Вниз

EhGrid сортировки   Найти похожие ветки 

 
oss   (2002-11-17 03:00) [0]

подскажите, как заставить этот грид сортировать при щелчке по заголовку столбца !


 
iKS1   (2002-11-17 11:06) [1]

см. DEMO1


 
BlackTiger   (2002-11-17 11:59) [2]

Блин, там тааакие классные примеры, что сразу все понятно!


 
KSergey   (2002-11-17 16:29) [3]

Сортировать надо не грид, а набор данных с ним связанный
Может в этом непонятки?


 
oss   (2002-11-17 20:48) [4]

2KSergey,
соверешенно верно :)

разобрался немного, получается, если я использую TIBDataSet,
то организовывать такие сортировки не получится ?


 
-=Sergeante=-   (2002-11-18 11:19) [5]

Вот выдержка из EhLib users guide
If you adjust grid and title for sortmatking but don"t write OnSortMarkingChanged event then grid will try to sort data automatically. First of all grid pass control to global variable DBGridEhDataService. You can write DBGridEhDataService.OnApplySorting event (assign it at run time) to sort data in grids. OnApplySorting event have TNotifyEvent type where Sender is TCustomDBGridEh whose sortmarkers have been changed. If OnApplySorting is not assigned then DBGridEhDataService try to find special object that can sort data in specified type of TDatsetSet usning function GetDatasetFeaturesForDataSet. As you know TDataSet does not support sorting data, but descented objects as TQuery or TClientDataSet allows to do it. Using procedure RegisterDatasetFeaturesEh you can register class that inherited from TDatasetFeaturesEhClass class to sort data in specified type of DataSet. EhLib already have classes that can sort data TQuery, TADOQuery and TClientDataSet components. Simply add one of the units EhLib... (EhLibBDE, EhLibADO, EhLibCDS) to "uses" clause of any unit of your project and grid will automatically sort data in such DataSet if it connected to one of such DataSet. EhLibBDE, EhLibADO, EhLibCDS call RegisterDatasetFeaturesEh procedure in initialization part of unit for according type of DataSet"s. For other types of datasets you have to write and register new object that will implement sorting data in DataSet. Writing procedure T[YouDataSet]DatasetFeaturesEh.ApplySorting you can access to list of columns whose sortmarkers have up/down direction using SortMarkedColumns property. See, for instance, DBUtils unit to understand how to write T[YouDataSet]DatasetFeaturesEh class and EhLibBDE unit to understand how to register T[YouDataSet]DatasetFeaturesEh class.

Насколько я понял, бегло покопавшись в исходниках, достаточно сделать следующее:
RegisterDatasetFeaturesEh(TSQLDatasetFeaturesEh, TIBDataSet);

Но вот функция function IsSQLBasedDataSet(DataSet: TDataSet; var SQL: TStrings): Boolean; {unit DBUtilsEh} ищет свойство SQL, которое у TIBDataSet отсутствует за неимением.

Отсюда пути решения проблемы - переписать function IsSQLBasedDataSet и процедуру ApplySortingForSQLBasedDataSet, которая собственно и манипулирует всеми необходимыми ORDER DESC ASC и т.д.

Вот навскидку пока так.



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

Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-14493
gary5555
2002-11-23 18:25
2002.12.05
ComboBox


3-14430
oss
2002-11-17 03:00
2002.12.05
EhGrid сортировки


14-14811
Aristarh
2002-11-15 21:53
2002.12.05
Только что с концерта Арии - КЛАСС!


1-14490
Raph
2002-11-26 00:53
2002.12.05
Панелька в


1-14595
[BAD]Angel
2002-11-26 16:30
2002.12.05
СРОЧНО НУЖНА ПОМОЩЬ!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский