線上報表列印(WEB)
# FastWeb之線上報表列印
- 適用平臺:WEB(桌面)
# 1. 說明
該範例可實現簡單報表列印格式的線上設計以及列印的功能。通過圖形化的方式可自行設計文字,表格等在內內容,並通過在模組中執行呼叫實現列印預覽以及列印的效果。關於列印格式設計的部分可參考FastWeb學習手冊之列印模板設計進行設計。該報表功能僅能實現簡單的表格資訊列印效果,如有複雜的報表列印格式需求,請參考FastWeb之Flying網路列印文件。
通過本範例學習,可以掌握呼叫已存在的列印模板,傳遞數據給列印模板實現列印的功能。
# 2. 設計明細
開啟FastWeb設計器,分別加入下插圖之控制元件。或者點選左上角的[匯入]
選擇模板檔案來打開對應模板。
①:TUgButton元件,控制元件名稱為btnPrint
。
②:TUgButton元件,控制元件名稱為btPreview
。
③:TUgContainerPanel元件,控制元件名稱為UgContainerPanel01
。
④:TUgDataSource元件,控制元件名稱為dsMeter
。
⑤:TUgRFDataSet元件,控制元件名稱為dtsMeter
。
⑥:TUgDBGrid元件,控制元件名稱為UgDBGrid01
。
UgWebRunFrame屬性設定
Height
:設定頁面高度=600
。Width
:設定頁面寬度=1200
。
①btPrint屬性設定
Caption
:設定按鈕顯示的標籤內容,設定為=直接列印
。Name
:設定控制元件名稱為btPrint
。
②btPreview屬性設定
Caption
:設定按鈕顯示的標籤內容,設定為=列印預覽
。Name
:設定控制元件名稱為btPreview
。
③UgContainerPanel屬性設定
Align
:設定對齊方式=alTop
。
④dsMeter屬性設定
DataSet
:設定繫結的數據集控制元件,設定為dtsMeter
。Name
:設定控制元件名稱為dsMeter
。
⑤dtsMeter屬性設定
SQL
:設定查詢的SQL語句,設定為Select * from Ems_Meter Order by MeterType,EnergyType
。
⑥UgDBGrid01屬性設定
Align
:設定對齊方式=alClient
。DataSource
:設定其繫結的數據源=dsMeter
。Options
:設定相關選項,dgRowNumbers
設定為True
。WebOptions
:設定網頁顯示的相關選項,其中設定Paged
為False
。- 在控制元件界面上雙擊,打開欄位編輯器,在其中新增如下圖所示的欄位內容。
# 3. 程式設計
點選程式設計界面右下角的按鈕,切換至單元選擇界面,勾選需要使用的單元。該程式的程式需要引用TARS
、Print
單元。
# 3.1. 程式初始設定
程式啟動時,打開數據。
Begin
//獲取數據
dtsMeter.Connection := GetRFWeb;
dtsMeter.Open;
End.
2
3
4
5
# 3.2. 事件設定
- ①btPrint-OnClick事件
點選[直接列印]
按鈕,開啟列印界面。
//JScript
function btPrintOnClick(sender)
//列印
{
var PrintData;
PrintData = "var printData = { "+#13+
"company:'"+ UGMM.LT("XX科技有限公司") + "',"+#13+
"address:'"+ UGMM.LT("XX省XX市XX區XXX路XXX號XXX號樓XXX") + "',"+#13+
"telphone:'18888888888',"+#13+
"table:"+CreatePrintDataJson(dtsMeter)+"};";
//showmessage(PrintData);
PrintPreview(UGMM.LT("儀表資料"),PrintData,1);
}
2
3
4
5
6
7
8
9
10
11
12
13
//PasScript
procedure btPrintOnClick(sender: tobject);
//列印
Var
printData:String;
begin
PrintData := 'var printData = { '+#13+
'company:'''+ UGMM.LT('XX科技有限公司') + ''','+#13+
'address:'''+ UGMM.LT('XX省XX市XX區XXX路XXX號XXX號樓XXX') + ''','+#13+
'telphone:''18888888888'','+#13+
'table:'+CreatePrintDataJson(dtsMeter)+'};';
//showmessage(PrintData);
PrintPreview(UGMM.LT('儀表資料'),PrintData,1);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
// Make sure to add code blocks to your code group
- ②btPreview-OnClick事件
點選[列印預覽]
按鈕,開啟列印預覽界面。
//JScript
function btPreviewOnClick(sender)
{
var PrintData;
PrintData = "var printData = { "+#13+
"company:'"+ UGMM.LT("XX科技有限公司") + "',"+#13+
"address:'"+ UGMM.LT("XX省XX市XX區XXX路XXX號XXX號樓XXX") + "',"+#13+
"telphone:'18888888888',"+#13+
"table:"+CreatePrintDataJson(dtsMeter)+"};";
//showmessage(PrintData);
PrintPreview(UGMM.LT("儀表資料"),PrintData,0);
}
2
3
4
5
6
7
8
9
10
11
12
//PasScript
procedure btPreviewOnClick(sender: tobject);
Var
printData:String;
begin
PrintData := 'var printData = { '+#13+
'company:'''+ UGMM.LT('XX科技有限公司') + ''','+#13+
'address:'''+ UGMM.LT('XX省XX市XX區XXX路XXX號XXX號樓XXX') + ''','+#13+
'telphone:''18888888888'','+#13+
'table:'+CreatePrintDataJson(dtsMeter)+'};';
//showmessage(PrintData);
PrintPreview(UGMM.LT('儀表資料'),PrintData);
end;
2
3
4
5
6
7
8
9
10
11
12
13
// Make sure to add code blocks to your code group
# 4. 運行結果
使用滑鼠在FastWeb功能表,點選[儲存至資料庫]
按鈕,將其儲存至資料庫,點選[除錯運行]
確認能夠正常打開。
打開程式后,點選[直接列印]
或者[列印預覽]
,在彈出的視窗中顯示列印設定或者列印預覽的界面。