Форум: "Базы";
Текущий архив: 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 отсутствует за неимением.
Отсюда пути решения проблемы - переписать functionIsSQLBasedDataSet
и процедуруApplySortingForSQLBasedDataSet
, которая собственно и манипулирует всеми необходимыми ORDER DESC ASC и т.д.
Вот навскидку пока так.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c