-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathGS.Common.Report.Flexcel.pas
More file actions
121 lines (93 loc) · 2.49 KB
/
GS.Common.Report.Flexcel.pas
File metadata and controls
121 lines (93 loc) · 2.49 KB
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
unit GS.Common.Report.Flexcel;
interface
uses SysUtils,
Classes,
IOUtils,
GS.Common.Report,
Generics.Collections,
FlexCel.XlsAdapter,
Datasnap.DBClient,
Data.DB,
FlexCel.Report,
FlexCel.Render;
Type
TGSReportFlexcelFactory = class(TInterfacedObject,IGSReportFactory)
function getInstance : IGSReport;
end;
TGSReportFlexCel = class(TInterfacedObject, IGSReport, IGSReportData)
private
FReport : TFlexCelReport;
public
constructor Create; virtual;
destructor Destroy; override;
//IGSReport
procedure Render(aTemplateFile : string; aTargetFile : string);
function Data : IGSReportData;
//IGSReportData
procedure addVar(name : String; value : string); overload;
procedure addVar(name : String; value : TDateTime); overload;
procedure addVar(name : String; value : TBytes); overload;
procedure addVar(name : String; value : TClientDataset); overload;
procedure DataBufferAdd(aDataBufferName : String);
procedure DataBufferNewLine;
procedure DataBufferAddFieldData(fieldName :string; Value : String);
end;
implementation
{ TGSReportFlexCel }
procedure TGSReportFlexCel.addVar(name, value: string);
begin
FReport.SetValue(name,value);
end;
procedure TGSReportFlexCel.addVar(name: String; value: TBytes);
begin
FReport.SetValue(name,value);
end;
procedure TGSReportFlexCel.addVar(name: String; value: TDateTime);
begin
FReport.SetValue(name,value);
end;
procedure TGSReportFlexCel.addVar(name: String; value: TClientDataset);
begin
FReport.AddTable(name,value);
end;
constructor TGSReportFlexCel.Create;
var i : integer;
begin
Inherited;
FReport := TFlexCelReport.Create(True);
end;
function TGSReportFlexCel.Data: IGSReportData;
begin
result := IGSReportData(Self);
end;
procedure TGSReportFlexCel.DataBufferAdd(aDataBufferName: String);
begin
///..
end;
procedure TGSReportFlexCel.DataBufferAddFieldData(fieldName, Value: String);
begin
///..
end;
procedure TGSReportFlexCel.DataBufferNewLine;
begin
///..
end;
destructor TGSReportFlexCel.Destroy;
begin
FreeAndNil(FReport);
inherited;
end;
procedure TGSReportFlexCel.Render(aTemplateFile : string; aTargetFile : string);
begin
// if ExtractFileExt(aTargetFile).ToLower = 'pdf' then
// FReport.
FReport.Run(aTemplateFile,aTargetFile);
end;
{ TGSReportFlexcelFactory }
function TGSReportFlexcelFactory.getInstance: IGSReport;
begin
result := TGSReportFlexCel.Create;
end;
initialization
TGSReportFactory.ReportRegister('flexcel',TGSReportFlexcelFactory.Create);
end.