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;
|
||||
|
||||
initialization
|
||||
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TFBDataSet);
|
||||
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, 'TFBDataSet');
|
||||
end.
|
||||
|
||||
|
@ -5,8 +5,7 @@ unit exsortzeos;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractRODataset,
|
||||
ZMacroQuery;
|
||||
Classes, SysUtils, DB, RxDBGrid, ZConnection, ZDataset, ZAbstractDataset, ZAbstractRODataset;
|
||||
|
||||
type
|
||||
|
||||
@ -23,31 +22,13 @@ implementation
|
||||
procedure TZeosDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);
|
||||
begin
|
||||
if not Assigned(ADataSet) then exit;
|
||||
if ADataSet.ClassName='TZReadOnlyQuery' then
|
||||
if ADataSet is TZAbstractDataset then
|
||||
begin
|
||||
(ADataSet as TZReadOnlyQuery).SortedFields:=Field.FieldName;
|
||||
TZAbstractDataset(ADataSet).SortedFields:=Field.FieldName;
|
||||
if Asc then
|
||||
(ADataSet as TZReadOnlyQuery).SortType:=stAscending
|
||||
TZAbstractDataset(ADataSet).SortType:=stAscending
|
||||
else
|
||||
(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 TZTable).SortType:=stAscending
|
||||
else
|
||||
(ADataSet as TZTable).SortType:=stDescending;
|
||||
TZAbstractDataset(ADataSet).SortType:=stDescending;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -83,23 +64,13 @@ begin
|
||||
end;
|
||||
|
||||
(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;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZReadOnlyQuery);
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZQuery);
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZTable);
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, TZMacroQuery);
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZReadOnlyQuery');
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZQuery');
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZTable');
|
||||
RegisterRxDBGridSortEngine(TZeosDataSetSortEngine, 'TZMacroQuery');
|
||||
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;
|
||||
|
||||
TRxDBGridSortEngine = class
|
||||
private
|
||||
FDataSetClass: TDataSetClass;
|
||||
public
|
||||
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;
|
||||
@ -763,7 +761,7 @@ type
|
||||
end;
|
||||
|
||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass: TRxDBGridSortEngineClass;
|
||||
DataSetClass: TDataSetClass);
|
||||
DataSetClassName: string);
|
||||
|
||||
implementation
|
||||
|
||||
@ -789,17 +787,16 @@ const
|
||||
var
|
||||
RxDBGridSortEngineList: TStringList;
|
||||
|
||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass: TRxDBGridSortEngineClass;
|
||||
DataSetClass: TDataSetClass);
|
||||
procedure RegisterRxDBGridSortEngine(
|
||||
RxDBGridSortEngineClass: TRxDBGridSortEngineClass; DataSetClassName: string);
|
||||
var
|
||||
Pos: integer;
|
||||
RxDBGridSortEngine: TRxDBGridSortEngine;
|
||||
begin
|
||||
if not RxDBGridSortEngineList.Find(DataSetClass.ClassName, Pos) then
|
||||
if not RxDBGridSortEngineList.Find(DataSetClassName, Pos) then
|
||||
begin
|
||||
RxDBGridSortEngine := RxDBGridSortEngineClass.Create;
|
||||
RxDBGridSortEngine.FDataSetClass := DataSetClass;
|
||||
RxDBGridSortEngineList.AddObject(DataSetClass.ClassName, RxDBGridSortEngine);
|
||||
RxDBGridSortEngineList.AddObject(DataSetClassName, RxDBGridSortEngine);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -66,6 +66,6 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterRxDBGridSortEngine(TRxMemoryDataSortEngine, TRxMemoryData);
|
||||
RegisterRxDBGridSortEngine(TRxMemoryDataSortEngine, 'TRxMemoryData');
|
||||
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