Componentes.Terceros.RemObj.../official/5.0.24.615/Data Abstract for Delphi/Source/Unsupported/uDAJvMTable.pas

190 lines
4.2 KiB
ObjectPascal

unit uDAJvMTable;
interface
uses Classes, DB, uDAInterfaces, uDADataTable, JvMemDS;
type
TDAJvMDataset = class(TJvMemoryData, IDADataTableDataset)
private
function GetActive: boolean;
protected
function GetDataTable: TDADataTable; safecall;
procedure InternalRefresh; override;
published
property Active: boolean read GetActive;
end;
TDAJvMemDataTable = class(TDADataTable)
private
fClientDataset: TDAJvMDataset;
protected
function GetDatasetClass: TDatasetClass; override;
procedure CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection); override;
procedure DoSort(const FieldNames: array of string; const Directions: array of TDASortDirection); override;
procedure DoBeforeOpenDataset; override;
procedure DoAfterCloseDataset; override;
procedure SetMasterSource(const Value: TDADataSource); override;
function GetMasterSource: TDADataSource; override;
procedure SetDetailsFields(const Value: string); override;
procedure SetMasterFields(const Value: string); override;
function GetDetailFields: string; override;
function GetMasterFields: string; override;
function GetIndexDefs: TIndexDefs;
procedure SetIndexDefs(const Value: TIndexDefs);
function GetIndexName: string;
procedure SetIndexName(const Value: string);
function GetFilter: string; override;
function GetFiltered: boolean; override;
procedure SetFilter(const Value: string); override;
procedure SetFiltered(const Value: boolean); override;
public
constructor Create(aOwner: TComponent); override;
published
property IndexDefs: TIndexDefs read GetIndexDefs write SetIndexDefs;
property IndexName: string read GetIndexName write SetIndexName;
end;
implementation
uses Variants;
constructor TDAJvMemDataTable.Create(aOwner: TComponent);
begin
inherited;
fClientDataset := TDAJvMDataset(Dataset);
fClientDataset.FilterOptions := [foCaseInsensitive];
end;
procedure TDAJvMemDataTable.CreateInternalFields(aDataset: TDataset; someFieldDefinitions: TDAFieldCollection);
begin
inherited;
fClientDataset.FieldDefs.Clear;
fClientDataset.CreateFields;
end;
procedure TDAJvMemDataTable.DoSort(const FieldNames: array of string; const Directions: array of TDASortDirection);
begin
with fclientDataset do begin
Sort(Fieldnames,Directions);
end;
end;
function TDAJvMemDataTable.GetDatasetClass: TDatasetClass;
begin
result := TDAJvMDataset;
end;
function TDAJvMemDataTable.GetMasterSource: TDADataSource;
begin
result := nil;
end;
procedure TDAJvMemDataTable.DoAfterCloseDataset;
begin
inherited;
end;
function TDAJvMemDataTable.GetFilter: string;
begin
result := fClientDataset.Filter
end;
procedure TDAJvMemDataTable.DoBeforeOpenDataset;
begin
inherited;
end;
procedure TDAJvMemDataTable.SetMasterSource(const Value: TDADataSource);
begin
inherited SetMasterSource(Value);
end;
procedure TDAJvMemDataTable.SetMasterFields(const Value: string);
begin
inherited;
end;
procedure TDAJvMemDataTable.SetDetailsFields(const Value: string);
begin
end;
function TDAJvMemDataTable.GetDetailFields: string;
begin
end;
function TDAJvMemDataTable.GetMasterFields: string;
begin
end;
function TDAJvMemDataTable.GetFiltered: boolean;
begin
result := fClientDataset.Filtered
end;
procedure TDAJvMemDataTable.SetFilter(const Value: string);
begin
fClientDataset.Filter := Value
end;
procedure TDAJvMemDataTable.SetFiltered(const Value: boolean);
begin
fClientDataset.Filtered := Value
end;
function TDAJvMemDataTable.GetIndexDefs: TIndexDefs;
begin
result := nil;
end;
procedure TDAJvMemDataTable.SetIndexDefs(const Value: TIndexDefs);
begin
end;
function TDAJvMemDataTable.GetIndexName: string;
begin
result := '';
end;
procedure TDAJvMemDataTable.SetIndexName(const Value: string);
begin
end;
function TDAJvMDataset.GetActive: boolean;
begin
result := inherited Active;
end;
function TDAJvMDataset.GetDataTable: TDADataTable;
begin
result := TDADataTable(Owner);
end;
procedure TDAJvMDataset.InternalRefresh;
begin
end;
end.