From 4a643de30c530370ec4b2ba785054222744a2b24 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Wed, 23 Feb 2011 08:29:55 +0000 Subject: [PATCH] add to sort engine for zeos zmacroquery git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1511 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/exsortzeos.pas | 86 ++++++++++++++++++------------------ components/rx/rxtimeedit.pas | 2 +- 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/components/rx/exsortzeos.pas b/components/rx/exsortzeos.pas index c9475ce40..1a562eb67 100644 --- a/components/rx/exsortzeos.pas +++ b/components/rx/exsortzeos.pas @@ -5,7 +5,8 @@ unit exsortzeos; interface uses - Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractRODataset; + Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractRODataset, + ZMacroQuery; type @@ -21,64 +22,64 @@ implementation procedure TZeosDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions); begin - if Assigned(ADataSet) then - if ADataSet.ClassName='TZReadOnlyQuery' then - begin - (ADataSet as TZReadOnlyQuery).SortedFields:=Field.FieldName; - if Asc then - (ADataSet as TZReadOnlyQuery).SortType:=stAscending - else - (ADataSet as TZReadOnlyQuery).SortType:=stDescending; - end + if not Assigned(ADataSet) then exit; + if ADataSet.ClassName='TZReadOnlyQuery' then + begin + (ADataSet as TZReadOnlyQuery).SortedFields:=Field.FieldName; + if Asc then + (ADataSet as TZReadOnlyQuery).SortType:=stAscending else - if ADataSet.ClassName='TZQuery' then - begin - (ADataSet as TZQuery).SortedFields:=Field.FieldName; + (ADataSet as TZReadOnlyQuery).SortType:=stDescending; + end + else + if (ADataSet.ClassName='TZQuery') or (ADataSet is TZMacroQuery) then + begin + (ADataSet as TZQuery).SortedFields:=Field.FieldName; + if Asc then + (ADataSet as TZQuery).SortType:=stAscending + else + (ADataSet as TZQuery).SortType:=stDescending; + end + else + if ADataSet.ClassName='TZTable' then + begin + (ADataSet as TZTable).SortedFields:=Field.FieldName; if Asc then - (ADataSet as TZQuery).SortType:=stAscending + (ADataSet as TZTable).SortType:=stAscending else - (ADataSet as TZQuery).SortType:=stDescending; - end - else - if ADataSet.ClassName='TZTable' then - begin - (ADataSet as TZTable).SortedFields:=Field.FieldName; - if Asc then - (ADataSet as TZTable).SortType:=stAscending - else - (ADataSet as TZTable).SortType:=stDescending; - end; + (ADataSet as TZTable).SortType:=stDescending; + end; end; procedure TZeosDataSetSortEngine.SortList(ListField:string; ADataSet:TDataSet; Asc:boolean); begin - if Assigned(ADataSet) then - if ADataSet.ClassName='TZReadOnlyQuery' then - begin + if not Assigned(ADataSet) then exit; + if ADataSet.ClassName='TZReadOnlyQuery' then + begin (ADataSet as TZReadOnlyQuery).SortedFields:=ListField; if Asc then (ADataSet as TZReadOnlyQuery).SortType:=stAscending else (ADataSet as TZReadOnlyQuery).SortType:=stDescending; - end - else - if ADataSet.ClassName='TZQuery' then - begin + end + else + if (ADataSet.ClassName='TZQuery') or (ADataSet is TZMacroQuery) then + begin (ADataSet as TZQuery).SortedFields:=ListField; if Asc then (ADataSet as TZQuery).SortType:=stAscending else (ADataSet as TZQuery).SortType:=stDescending; - end - else - if ADataSet.ClassName='TZTable' then - begin - (ADataSet as TZTable).SortedFields:=ListField; - if Asc then - (ADataSet as TZTable).SortType:=stAscending - else - (ADataSet as TZTable).SortType:=stDescending; - end; + end + else + if ADataSet.ClassName='TZTable' then + begin + (ADataSet as TZTable).SortedFields:=ListField; + if Asc then + (ADataSet as TZTable).SortType:=stAscending + else + (ADataSet as TZTable).SortType:=stDescending; + end; end; @@ -86,5 +87,6 @@ initialization RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZReadOnlyQuery); RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZQuery); RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZTable); + RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZMacroQuery); end. diff --git a/components/rx/rxtimeedit.pas b/components/rx/rxtimeedit.pas index c6ce371ba..dc8ec28f7 100644 --- a/components/rx/rxtimeedit.pas +++ b/components/rx/rxtimeedit.pas @@ -31,7 +31,7 @@ unit RxTimeEdit; -{$mode objfpc}{$H+} +{$I rx.inc} interface