建立報表
# 建立報表
不同的工具下,報表建立的以及數據集匯入的方式也不同。以下介紹在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
,打開報表設計器界面。