報表設計
# Smart之報表設計
# 1. 說明
範例使用Smart智慧控制平臺,用於設計報表的列印格式並使用數據進行報表的列印。
在使用該範例前,請先檢查配套使用的資料庫Smart是否存在,需要使用到的示例的數據SQL命令如下。
--Table_Test數據表,存放列印用的數據。
CREATE TABLE [dbo].[Table_Test](
[FCode] [nvarchar](50) NOT NULL,
[FName] [nvarchar](50) NOT NULL
) ON [PRIMARY]
--Dict_Report數據表,存放報表的列印格式內容
CREATE TABLE [dbo].[Dict_Report](
[FReportID] [nvarchar](36) NOT NULL,
[FModuleID] [nvarchar](36) NULL,
[FOrderByNo] [int] NULL,
[FReportName] [nvarchar](100) NULL,
[FReportImg] [image] NULL,
[FRightID] [nvarchar](36) NULL,
[FRightCode] [nvarchar](50) NULL,
[FRemark] [nvarchar](100) NULL,
[FPrintNum] [int] NULL,
[FRoleName] [nvarchar](50) NULL,
CONSTRAINT [PK__Dict_Rep__23B5CEDA46E78A0C] PRIMARY KEY CLUSTERED
(
[FReportID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
--Dict_ReportSQL數據表,存放報表所使用的列印SQL內容
CREATE TABLE [dbo].[Dict_ReportSQL](
[FMXID] [nvarchar](36) NOT NULL,
[FReportID] [nvarchar](36) NULL,
[FModuleID] [nvarchar](36) NULL,
[FOrderNo] [int] NULL,
[FSQLType] [nvarchar](20) NULL,
[FSQL] [nvarchar](4000) NULL,
[FMXRemark] [nvarchar](100) NULL,
CONSTRAINT [PK__Dict_Rep__89939BF14316F928] PRIMARY KEY CLUSTERED
(
[FMXID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
--插入測試用的數據
INSERT INTO Table_Test(FCode,FName)
VALUES('0101','小明')
INSERT INTO Table_Test(FCode,FName)
VALUES('0102','小王')
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
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
運行TARS,將該資料庫配置為連線設定test
,使Smart能夠訪問該資料庫。同時在Smart中根據TARS連線設定的內容配置Smart帳套設定。
# 2. 設計明細
開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]
-[打開專案]
選擇範例專案檔案來打開該範例。
①:TImage元件,控制元件名稱為Image1
。
②:TRFDataSet元件,控制元件名稱為RFDataSet1
。
③:TLabel元件,控制元件名稱為Label1
。
④:TBitBtn元件,控制元件名稱為BitBtnLoad
。
⑤:TBitBtn元件,控制元件名稱為BitBtnDesign
。
Main窗體屬性設定
Caption
:設定窗體標題=報表設計
。ClientHeight
:設定窗體客戶區高度=438
。ClientWidth
:設定窗體客戶區寬度=465
。BorderStyle
:設定窗體型別=bsDialog
。
①Image1屬性設定
Align
:設定對齊方式為alClient
。Stretch
:設定圖片拉伸=True
。Picture
:設定圖片。 點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
③Label1屬性設定
Caption
:設定文字內容為報表設計
。Font
:設定字型。雙擊該屬性或者點選右側的[...]
打開字型設定界面,設定內容如下:
④BitBtnLoad屬性設定
Height
:設定控制元件高度=190
。Width
:設定控制元件寬度=150
。Caption
:設定按鈕顯示的字幕=載入數據集
。Layout
:設定佈局內容=blGlyphTop
(影象位於頂部)。Glyph
:設定顯示的影象。 點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
⑤BitBtnDesign屬性設定
Height
:設定控制元件高度=190
。Width
:設定控制元件寬度=150
。Caption
:設定按鈕顯示的字幕=報表設計
。Layout
:設定佈局內容=blGlyphTop
(影象位於頂部)。Glyph
:設定顯示的影象。 點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
# 3. 程式設計
# 3.1. 程式初始設定
該程式無初始設定。
# 3.2. 事件設定
- ④BitBtnLoad-OnClick事件
點選[載入數據集按鈕]
,將數據載入至數據集中。
procedure TMyHandler.BitBtnLoadClick;
//載入數據集
begin
FThis.RFDataSet1.Connection := dm.DBConnection;
FThis.RFDataSet1.SQL.Text := 'SELECT FCode,FName FROM Table_Test';
FThis.RFDataSet1.Open;
end;
1
2
3
4
5
6
7
2
3
4
5
6
7
- ⑤BitBtnDesign-OnClick事件
點選[報表設計]
,將數據載入至報表中。
procedure TMyHandler.BitBtnDesignClick;
//報表設計界面
{
//打開報表配置
PaxFunc.ShowReport('ReportPrint',FThis,'','',false,false);
//預覽報表,id為報表模板檔案的id,對應為數據表中Dict_Report中的FReportID。
PaxFunc.ShowReport('ReportPrint',FThis,'','EB8BA008-4730-4BAC-AD5F-2D469C2FB732',false,True);
//列印報表
PaxFunc.ShowReport('ReportPrint',FThis,'','EB8BA008-4730-4BAC-AD5F-2D469C2FB732',false,false);
}
begin
if FThis.RFDataSet1.IsEmpty then
begin
ShowMessage('數據集未載入或為空,請先新增數據后再點選該按鈕。');
Exit;
end;
paxfunc.ShowReport('Smart',FThis,'','',false,false);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 4. 運行模板
通過工具欄儲存,將程式儲存為 sdb 專案檔案。
使用滑鼠點選工具欄運行(Run),測試運行結果。
點選可進入到報表設計的界面,具體的設計方法可檢視報表設計工具使用。