报表设计
# 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),测试运行结果。
点击可进入到报表设计的界面,具体的设计方法可查看报表设计工具使用。