创建报表
# 创建报表
不同的工具下,报表创建的以及数据集导入的方式也不同。以下介绍在FastERP、Smart与Flying中创建报表以及导入数据的方式。FastWeb的报表设计说明请单独在FastWeb学习手册中的报表设计处查看。
# 1. FastERP中管理报表
在FastRERP中,打开需要建立报表的页面,点击[打印]
-[报表设计]
,打开报表设计对话框。

在该界面下,可进行FastReport中的文件的常规操作,如新建报表、保存报表、导入报表格式等操作。
该界面中已包含当前模块的窗体所使用的数据集,如窗体中的数据不满足报表的制作需求,则需要自行构建数据集,请按照下述方式进行操作。
在SQL数据集框中,点击页面,按下↓按键,新增一行,SQL类别选择SQL
,描述处可填入标识内容用于注明要构造的数据集的主要内容。在下方的SQL输入框中可输入SQL语句。如有多个需要构造的数据集,则按照上述方式进行操作。操作完成后,点击[保存]
按钮保存报表以及数据集构造信息,随后可能需要关闭该页面,刷新系统后再重新进入该页面,
如需要进行报表设计,选择要编辑的报表,点击[设计格式]
进入FastReport设计界面。
# 2. Smart中管理报表
Smart中的报表数据存储在指定位置的表中。
可以使用FastERP配套的数据库设置连接,也可以使用以下SQL在数据库中生成表结构,并在TARS中配置此数据库的连接设置,将Smart的帐套设置指定为此连接设置。
--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]
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
在Smart中构造数据集,需在TRFDataSet中进行构建,以下以使用FastERP数据库构建连接,方法参考如下:
打开Smart,在设计器窗口中放置一个TRFDataSet和一个TButton,
type
TMyHandler = class(TForm)
private
FThis:TBaseForm;
Public
constructor Create(AOwner: TComponent); override;
{模块声明 MODULE-DECLARE}
procedure Button1Click(Sender: TObject);
end;
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
//RFDataSet组件的连接设置使用Smart的帐套设置
FThis.RFDataSet1.Connection := DM.DBConnection;
end;
{方法实现 MODULE-REAL}
procedure TMyHandler.Button1Click;
//构建数据集,并打开报表设计界面
begin
FThis.RFDataSet1.SQL.Clear;
FThis.RFDataSet1.SQL.Add('SELECT * FROM Basic_Unit');
FThis.RFDataSet1.Open; //打开数据集
paxfunc.ShowReport('SmartReport',FThis,'','',False,False);//打开报表设计界面
end;
var
FMyHandler:TMyHandler;
begin
FMyHandler := TMyHandler.Create(this);
{事件绑定 MODULE-BIND}
this.Button1.OnClick := FMyHandler.Button1Click;
end.
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
上述脚本填写完成后,点击按钮,会弹出如下页面,该页面与FastERP的页面类似,但是在Smart中仅支持从RFDataSet中传递数据集,不支持在该页面下自定义数据集,故在使用该功能前需要自行定义RFDataSet数据集。
新建并保存报表文件后,选择需要设计格式的报表,点击[设计格式]
,如该报表文件尚未生成,则会弹出确认创建文件的对话框,点击[确认]
按钮后进入FastReport界面。
# 3. Flying中管理报表
点击页签打印设置-报表设计
,打开报表列表界面。

在报表列表的空白处使用鼠标右键单击,在打开的选项中选择[新建报表]
。

在弹出的新增报表页面中,输入报表名称,比如输入test
,输入完成后,点击[OK]
按钮。
在打印列表中选择刚才创建的报表,使用鼠标右键单击,在选项中点击数据构造
,打开数据构造界面。

数据构造界面中首先需要设置连接设置,使数据库设置为即将要进行读取的帐套,服务器与端口填写为TARS中设置的相关信息,点击[连接]
,待按钮变成灰色,表示已连接成功。
连接后,在SQL
处输入查询的语句,比如此处输入SELECT * FROM Basic_Unit
,然后点击[执行SQL]
,在JSON中会显示JSON序列化后的结果。

目前Flying支持最多十个数据集的报表格式,因此此处的SQL可以输入多个查询语句,最多可支持十个SQL的查询。
结果显示后,点击[应用]
按钮返回至主界面。

在列表界面中可以看到查询结果的信息,点击右上角的[保存数据]
以保存预览使用的数据集。

接下来开始设计报表。双击报表列表中的test
,打开报表设计器界面。
