1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
unit fradata;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, db, FileUtil, LResources, Forms, Controls, ExtCtrls,
DbCtrls, DBGrids, Buttons, dmImages;
type
{ TDataFrame }
TDataFrame = class(TFrame)
FDBGrid: TDBGrid;
FDataSource: TDataSource;
FNavigator: TDBNavigator;
FTopPanel: TPanel;
FExportSB: TSpeedButton;
FCodeSB: TSpeedButton;
procedure DoExport(Sender : TObject);
procedure DoCode(Sender : TObject);
private
{ private declarations }
FTableName : String;
function GetDisplayMemoText: Boolean;
procedure SetDisplayMemoText(AValue: Boolean);
public
{ public declarations }
procedure Checkbuttons;
function GetDataset: TDataset;
function GetExtra: Boolean;
procedure SetExtra(const AValue: Boolean);
Protected
Property TopPanel : TPanel Read FTopPanel;
Property DBGrid : TDBGrid Read FDBGrid;
Property DataSource : TDatasource Read FDataSource;
procedure SetDataset(const AValue: TDataset);virtual;
Public
Property Dataset : TDataset Read GetDataset Write SetDataset;
Property TableName: String Read FTableName Write FTableName;
Procedure ExportData;
Procedure CreateCode;
Property ShowExtraButtons : Boolean Read GetExtra Write SetExtra;
Property DisplayMemoText : Boolean Read GetDisplayMemoText Write SetDisplayMemoText;
end;
implementation
{$r *.lfm}
uses fpdataexporter,fpcodegenerator;
{ TDataFrame }
function TDataFrame.GetDataset: TDataset;
begin
Result:=FDatasource.Dataset;
end;
procedure TDataFrame.DoExport(Sender: TObject);
begin
ExportData;
end;
procedure TDataFrame.DoCode(Sender : TObject);
begin
CreateCode;
end;
function TDataFrame.GetDisplayMemoText: Boolean;
begin
result := (dgDisplayMemoText in FDBGrid.Options);
end;
procedure TDataFrame.SetDisplayMemoText(AValue: Boolean);
begin
If AValue <> DisplayMemoText then
begin
If AValue then
FDBGrid.Options := FDBGrid.Options + [dgDisplayMemoText]
else
FDBGrid.Options := FDBGrid.Options - [dgDisplayMemoText];
end;
end;
function TDataFrame.GetExtra: Boolean;
begin
Result:=FExportSB.Visible;
end;
procedure TDataFrame.SetExtra(const AValue: Boolean);
begin
FExportSB.Visible:=AValue;
FCodeSB.Visible:=AValue;
end;
procedure TDataFrame.SetDataset(const AValue: TDataset);
begin
FDatasource.Dataset:=AValue;
CheckButtons;
end;
procedure TDataFrame.ExportData;
begin
With TFPDataExporter.Create(Dataset) do
Try
If Self.TableName<>'' then
TableNameHint:=Self.TableName;
Execute;
Finally
Free;
end;
end;
procedure TDataFrame.CreateCode;
begin
With TFPCodeGenerator.Create(Dataset) do
try
If Self.TableName<>'' then
TableNameHint:=Self.TableName;
Execute;
Finally
Free;
end;
end;
procedure TDataFrame.Checkbuttons;
Const
NavBtns = [nbFirst,nbPrior,nbNext,nbLast,nbRefresh];
EditBtns = [nbInsert,nbEdit,nbPost,nbDelete,nbCancel];
begin
If Assigned(FNavigator) and Assigned(Dataset) then
begin
If Dataset.CanModify then
begin
FNavigator.VisibleButtons:=NavBtns;
FNavigator.Width:=122;
end
else
begin
FNavigator.VisibleButtons:=NavBtns+EditBtns;
FNavigator.Width:=244;
end
end;
end;
end.
|