lazarus/components/lazreport/source/addons/TDbfDB/lrtdbfdata.pas
2013-10-06 13:55:23 +00:00

159 lines
3.7 KiB
ObjectPascal

unit lrTDbfData;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Graphics, LR_Class, LR_DBComponent, DB, dbf;
type
TlrTDbfData = class(TComponent)
end;
type
{ TLRDbf }
TLRDbf = class(TLRDataSetControl)
private
function GetFilePath: string;
function GetIndexName: string;
function GetShowDeleted: Boolean;
function GetTableName: string;
procedure SetFilePath(AValue: string);
procedure SetIndexName(AValue: string);
procedure SetShowDeleted(AValue: Boolean);
procedure SetTableName(AValue: string);
protected
procedure SetDataSource(AValue: string); override;
procedure AfterLoad;override;
public
constructor Create(AOwnerPage:TfrPage); override;
procedure LoadFromXML(XML: TLrXMLConfig; const Path: String); override;
procedure SaveToXML(XML: TLrXMLConfig; const Path: String); override;
published
property ShowDeleted: Boolean read GetShowDeleted write SetShowDeleted;
property TableName: string read GetTableName write SetTableName;
property IndexName: string read GetIndexName write SetIndexName;
property FilePath: string read GetFilePath write SetFilePath;
end;
procedure Register;
implementation
{$R lrtdbfdata_img.res}
uses LR_Utils;
var
lrBMP_TDbf:TBitmap = nil;
procedure InitLRComp;
begin
if not assigned(lrBMP_TDbf) then
begin
lrBMP_TDbf := TbitMap.Create;
lrBMP_TDbf.LoadFromResourceName(HInstance, 'TLRDbf');
frRegisterObject(TLRDbf, lrBMP_TDbf, 'TLRDbf', nil, otlUIControl, nil);
end;
end;
procedure Register;
begin
RegisterComponents('LazReport',[TlrTDbfData]);
end;
{ TLRDbf }
procedure TLRDbf.SetIndexName(AValue: string);
begin
TDbf(DataSet).IndexName:=AValue
end;
function TLRDbf.GetFilePath: string;
begin
Result:=TDbf(DataSet).FilePath;
end;
function TLRDbf.GetIndexName: string;
begin
Result:=TDbf(DataSet).IndexName;
end;
function TLRDbf.GetShowDeleted: Boolean;
begin
Result:=TDbf(DataSet).ShowDeleted;
end;
function TLRDbf.GetTableName: string;
begin
Result:=TDbf(DataSet).TableName;
end;
procedure TLRDbf.SetFilePath(AValue: string);
begin
TDbf(DataSet).FilePath:=AValue
end;
procedure TLRDbf.SetShowDeleted(AValue: Boolean);
begin
TDbf(DataSet).ShowDeleted:=AValue
end;
procedure TLRDbf.SetTableName(AValue: string);
begin
TDbf(DataSet).TableName:=AValue
end;
//TDBF not used Master-detail
procedure TLRDbf.SetDataSource(AValue: string);
begin
end;
procedure TLRDbf.AfterLoad;
begin
try
if FileExists(TDbf(DataSet).FilePathFull + TDbf(DataSet).TableName) then
DataSet.Active:=FActive;
finally
end;
end;
constructor TLRDbf.Create(AOwnerPage: TfrPage);
begin
inherited Create(AOwnerPage);
BaseName := 'lrDbf';
DataSet:=TDbf.Create(OwnerForm);
end;
procedure TLRDbf.LoadFromXML(XML: TLrXMLConfig; const Path: String);
begin
inherited LoadFromXML(XML, Path);
TableName := XML.GetValue(Path+'TableName/Value'{%H-}, '');
IndexName := XML.GetValue(Path+'IndexName/Value'{%H-}, '');
ShowDeleted:= XML.GetValue(Path+'ShowDeleted/Value'{%H-}, false);
FilePath:= XML.GetValue(Path+'FilePath/Value'{%H-}, '');
end;
procedure TLRDbf.SaveToXML(XML: TLrXMLConfig; const Path: String);
begin
inherited SaveToXML(XML, Path);
XML.SetValue(Path+'TableName/Value'{%H-}, TableName);
XML.SetValue(Path+'IndexName/Value'{%H-}, IndexName);
XML.SetValue(Path+'ShowDeleted/Value'{%H-}, ShowDeleted);
XML.SetValue(Path+'FilePath/Value'{%H-}, FilePath);
end;
initialization
InitLRComp;
{ RegisterPropertyEditor(TypeInfo(string), TLRZQuery, 'Database', TLRZQueryDataBaseProperty);
RegisterPropertyEditor(TypeInfo(string), TLRZConnection, 'Protocol', TLRZConnectionProtocolProperty);
}
finalization
if Assigned(lrBMP_TDbf) then
FreeAndNil(lrBMP_TDbf);
end.