Skip to content

Commit 6f6c311

Browse files
committed
readme: draft
1 parent eb23b42 commit 6f6c311

9 files changed

Lines changed: 331 additions & 27 deletions

Delphi/uData.dfm

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ object DataModule1: TDataModule1
55
Width = 740
66
PixelsPerInch = 192
77
object mdLayouts: TdxMemData
8-
Active = True
98
Indexes = <>
109
Persistent.Data = {
1110
5665728FC2F5285C8FFE3F02000000000000000D0007004C61796F7574001400
@@ -791,11 +790,11 @@ object DataModule1: TDataModule1
791790
5265663D22352220436F6E74656E743D2253797374656D2E496E743332222054
792791
7970653D2253797374656D2E5479706522202F3E0D0A20203C2F4F626A656374
793792
53746F726167653E0D0A3C2F587472615265706F7274734C61796F7574536572
794-
69616C697A65723E0D0A010B0000005400610062006C0065005200650070006F
795-
0072007400}
793+
69616C697A65723E0D0A010C0000005400610062006C00650020005200650070
794+
006F0072007400}
796795
SortOptions = []
797-
Left = 408
798-
Top = 112
796+
Left = 416
797+
Top = 104
799798
object mdLayoutsLayout: TBlobField
800799
FieldName = 'Layout'
801800
end

Delphi/uMainForm.dfm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ object MainForm: TMainForm
1111
Font.Height = -12
1212
Font.Name = 'Segoe UI'
1313
Font.Style = []
14+
OnCreate = FormCreate
1415
TextHeight = 15
1516
object dxLayoutControl1: TdxLayoutControl
1617
Left = 0

Delphi/uMainForm.pas

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ TMainForm = class(TForm)
2929
liShowDesigner: TdxLayoutItem;
3030
liViewReport: TdxLayoutItem;
3131
liGrid: TdxLayoutItem;
32+
procedure FormCreate(Sender: TObject);
3233
procedure btnDesignClick(Sender: TObject);
3334
procedure btnPreviewClick(Sender: TObject);
3435
procedure btnNewClick(Sender: TObject);
3536
procedure dxReport1LayoutChanged(ASender: TdxReport);
3637
private
38+
procedure LoadReportNameAndLayout;
39+
procedure SaveReportNameAndLayout;
3740
{ Private declarations }
3841
public
3942
{ Public declarations }
@@ -49,41 +52,70 @@ implementation
4952
uses uData;
5053

5154

52-
procedure TMainForm.btnNewClick(Sender: TObject);
55+
procedure TMainForm.FormCreate(Sender: TObject);
5356
begin
54-
DataModule1.mdLayouts.Append
57+
LoadReportNameAndLayout;
5558
end;
5659

57-
procedure TMainForm.btnDesignClick(Sender: TObject);
60+
procedure TMainForm.LoadReportNameAndLayout();
5861
begin
5962
if (DataModule1.mdLayouts.RecordCount = 0) and not (DataModule1.mdLayouts.State = dsInsert) then
6063
begin
6164
ShowMessage('The database is empty');
6265
Exit;
6366
end;
67+
// Load the report name from the database
6468
dxReport1.ReportName := DataModule1.mdLayoutsName.AsString;
69+
// Load the report layout from the database
6570
dxReport1.Layout.Assign(DataModule1.mdLayoutsLayout);
71+
end;
72+
73+
procedure TMainForm.SaveReportNameAndLayout();
74+
begin
75+
// Start editing the active dataset record
76+
DataModule1.mdLayouts.Edit;
77+
// Save the report name
78+
DataModule1.mdLayoutsName.AsString := dxReport1.ReportName;
79+
// Save the report layout
80+
DataModule1.mdLayoutsLayout.Assign(dxReport1.Layout);
81+
// Finish editing and write a modified record
82+
DataModule1.mdLayouts.Post;
83+
end;
84+
85+
86+
procedure TMainForm.btnNewClick(Sender: TObject);
87+
begin
88+
DataModule1.mdLayouts.Append
89+
end;
90+
91+
procedure TMainForm.btnDesignClick(Sender: TObject);
92+
begin
93+
if (dxReport1.ReportName = '') then
94+
begin
95+
ShowMessage('The report is not specified');
96+
Exit;
97+
end;
6698
dxReport1.ShowDesigner;
6799
end;
68100

69101
procedure TMainForm.btnPreviewClick(Sender: TObject);
70102
begin
71-
if (DataModule1.mdLayoutsName.AsString = '') then
103+
if (dxReport1.ReportName = '') then
72104
begin
73105
ShowMessage('The report is not specified');
74106
Exit;
75107
end;
76-
77-
dxReport1.ReportName := DataModule1.mdLayoutsName.AsString;
78-
dxReport1.Layout.Assign(DataModule1.mdLayoutsLayout);
79108
dxReport1.ShowViewer;
80109
end;
81110

111+
// Event that is called when a user saves a report layout in the Report Designer
82112
procedure TMainForm.dxReport1LayoutChanged(ASender: TdxReport);
83113
begin
84114
DataModule1.mdLayouts.Edit;
85-
DataModule1.mdLayoutsLayout.Assign(dxReport1.Layout);
115+
// Save the report name in the database
86116
DataModule1.mdLayoutsName.AsString := dxReport1.ReportName;
117+
// Copy the report layout to the BLOB field
118+
DataModule1.mdLayoutsLayout.Assign(dxReport1.Layout);
87119
DataModule1.mdLayouts.Post;
88120
end;
89121

0 commit comments

Comments
 (0)