You've already forked lazarus-ccr
1. RxDBGrid - change declaration for register sort engine function
2. New package - Rx_Sort_Zeos - sort engine for zeos components git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2542 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -71,6 +71,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TFBDataSet);
|
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, 'TFBDataSet');
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -5,8 +5,7 @@ unit exsortzeos;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractRODataset,
|
Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractDataset, ZAbstractRODataset;
|
||||||
ZMacroQuery;
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -23,31 +22,13 @@ implementation
|
|||||||
procedure TZeosDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);
|
procedure TZeosDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);
|
||||||
begin
|
begin
|
||||||
if not Assigned(ADataSet) then exit;
|
if not Assigned(ADataSet) then exit;
|
||||||
if ADataSet.ClassName='TZReadOnlyQuery' then
|
if ADataSet is TZAbstractDataset then
|
||||||
begin
|
begin
|
||||||
(ADataSet as TZReadOnlyQuery).SortedFields:=Field.FieldName;
|
TZAbstractDataset(ADataSet).SortedFields:=Field.FieldName;
|
||||||
if Asc then
|
if Asc then
|
||||||
(ADataSet as TZReadOnlyQuery).SortType:=stAscending
|
TZAbstractDataset(ADataSet).SortType:=stAscending
|
||||||
else
|
else
|
||||||
(ADataSet as TZReadOnlyQuery).SortType:=stDescending;
|
TZAbstractDataset(ADataSet).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 TZTable).SortType:=stAscending
|
|
||||||
else
|
|
||||||
(ADataSet as TZTable).SortType:=stDescending;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -83,23 +64,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
(ADataSet as TZAbstractRODataset).SortedFields:=S;
|
(ADataSet as TZAbstractRODataset).SortedFields:=S;
|
||||||
|
|
||||||
{ if ADataSet.ClassName='TZReadOnlyQuery' then
|
|
||||||
(ADataSet as TZReadOnlyQuery).SortedFields:=S
|
|
||||||
else
|
|
||||||
if (ADataSet.ClassName='TZQuery') or (ADataSet is TZMacroQuery) then
|
|
||||||
(ADataSet as TZQuery).SortedFields:=S
|
|
||||||
else
|
|
||||||
if ADataSet.ClassName='TZTable' then
|
|
||||||
begin
|
|
||||||
(ADataSet as TZTable).SortedFields:=S}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZReadOnlyQuery);
|
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZReadOnlyQuery');
|
||||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZQuery);
|
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZQuery');
|
||||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZTable);
|
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZTable');
|
||||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZMacroQuery);
|
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZMacroQuery');
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
48
components/rx/rx_sort_zeos.lpk
Normal file
48
components/rx/rx_sort_zeos.lpk
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="4">
|
||||||
|
<Name Value="rx_sort_zeos"/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Other>
|
||||||
|
<CompilerMessages>
|
||||||
|
<MsgFileName Value=""/>
|
||||||
|
</CompilerMessages>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Version Major="1"/>
|
||||||
|
<Files Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="rxsortzeos.pas"/>
|
||||||
|
<HasRegisterProc Value="True"/>
|
||||||
|
<UnitName Value="RxSortZeos"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Filename Value="exsortzeos.pas"/>
|
||||||
|
<UnitName Value="exsortzeos"/>
|
||||||
|
</Item2>
|
||||||
|
</Files>
|
||||||
|
<Type Value="RunAndDesignTime"/>
|
||||||
|
<RequiredPkgs Count="3">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="zcomponent"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="rxnew"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<PackageName Value="FCL"/>
|
||||||
|
</Item3>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
21
components/rx/rx_sort_zeos.pas
Normal file
21
components/rx/rx_sort_zeos.pas
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ This file was automatically created by Lazarus. Do not edit!
|
||||||
|
This source is only used to compile and install the package.
|
||||||
|
}
|
||||||
|
|
||||||
|
unit rx_sort_zeos;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
RxSortZeos, exsortzeos, LazarusPackageIntf;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
begin
|
||||||
|
RegisterUnit('RxSortZeos', @RxSortZeos.Register);
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
RegisterPackage('rx_sort_zeos', @Register);
|
||||||
|
end.
|
@ -182,8 +182,6 @@ type
|
|||||||
TRxSortEngineOptions = set of TRxSortEngineOption;
|
TRxSortEngineOptions = set of TRxSortEngineOption;
|
||||||
|
|
||||||
TRxDBGridSortEngine = class
|
TRxDBGridSortEngine = class
|
||||||
private
|
|
||||||
FDataSetClass: TDataSetClass;
|
|
||||||
public
|
public
|
||||||
procedure Sort(Field: TField; ADataSet: TDataSet; Asc: boolean; SortOptions: TRxSortEngineOptions); virtual; abstract;
|
procedure Sort(Field: TField; ADataSet: TDataSet; Asc: boolean; SortOptions: TRxSortEngineOptions); virtual; abstract;
|
||||||
procedure SortList(ListField: string; ADataSet: TDataSet; Asc: array of boolean; SortOptions: TRxSortEngineOptions); virtual;
|
procedure SortList(ListField: string; ADataSet: TDataSet; Asc: array of boolean; SortOptions: TRxSortEngineOptions); virtual;
|
||||||
@ -763,7 +761,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass: TRxDBGridSortEngineClass;
|
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass: TRxDBGridSortEngineClass;
|
||||||
DataSetClass: TDataSetClass);
|
DataSetClassName: string);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -789,17 +787,16 @@ const
|
|||||||
var
|
var
|
||||||
RxDBGridSortEngineList: TStringList;
|
RxDBGridSortEngineList: TStringList;
|
||||||
|
|
||||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass: TRxDBGridSortEngineClass;
|
procedure RegisterRxDBGridSortEngine(
|
||||||
DataSetClass: TDataSetClass);
|
RxDBGridSortEngineClass: TRxDBGridSortEngineClass; DataSetClassName: string);
|
||||||
var
|
var
|
||||||
Pos: integer;
|
Pos: integer;
|
||||||
RxDBGridSortEngine: TRxDBGridSortEngine;
|
RxDBGridSortEngine: TRxDBGridSortEngine;
|
||||||
begin
|
begin
|
||||||
if not RxDBGridSortEngineList.Find(DataSetClass.ClassName, Pos) then
|
if not RxDBGridSortEngineList.Find(DataSetClassName, Pos) then
|
||||||
begin
|
begin
|
||||||
RxDBGridSortEngine := RxDBGridSortEngineClass.Create;
|
RxDBGridSortEngine := RxDBGridSortEngineClass.Create;
|
||||||
RxDBGridSortEngine.FDataSetClass := DataSetClass;
|
RxDBGridSortEngineList.AddObject(DataSetClassName, RxDBGridSortEngine);
|
||||||
RxDBGridSortEngineList.AddObject(DataSetClass.ClassName, RxDBGridSortEngine);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -66,6 +66,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterRxDBGridSortEngine(TRxMemoryDataSortEngine, TRxMemoryData);
|
RegisterRxDBGridSortEngine(TRxMemoryDataSortEngine, 'TRxMemoryData');
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
32
components/rx/rxsortzeos.pas
Normal file
32
components/rx/rxsortzeos.pas
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
unit RxSortZeos;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils;
|
||||||
|
|
||||||
|
type
|
||||||
|
TRxSortZeos = class(TComponent)
|
||||||
|
private
|
||||||
|
{ Private declarations }
|
||||||
|
protected
|
||||||
|
{ Protected declarations }
|
||||||
|
public
|
||||||
|
{ Public declarations }
|
||||||
|
published
|
||||||
|
{ Published declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses exsortzeos;
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
begin
|
||||||
|
RegisterComponents('RX DBAware',[TRxSortZeos]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Reference in New Issue
Block a user