fastreport中文版初級教程之引數查詢報表?

fastreport中文版初級教程之引數查詢報表,我們建立一個比較複雜一點報表,在報表輸出之前,在對話方塊中輸入引數查詢。

工具/原料

fastreport

方法/步驟

引數查詢報表

我們建立一個比較複雜一點報表,在報表輸出之前,在對話方塊中輸入引數查詢。在上面的報表中在點選新報表,重新建立一個空白報表。

切換到data頁,放置ADO Query元件到面板上,雙擊元件單出編輯器,輸入查詢語句:

select * from Customer where CustNo > :p1

加入一個對話方塊窗體,組織元件如下:

fastreport中文版初級教程之引數查詢報表

設定元件屬性:

Label1:

Caption = '選擇CustNo大於'

Edit1:

Text = '2000'

Button1:

Caption = '確定'

ModalResult = mrOk

Button2:

Caption = '取消'

ModalResult = mrCancel

開啟Query的引數params屬性編輯器對話方塊,設定引數:

fastreport中文版初級教程之引數查詢報表

回到報表設計器頁面,組織報表結構如下:

進行預覽,輸入引數,檢視顯示結果。

fastreport中文版初級教程之引數查詢報表

同為比較常用的報表工具,FineReport對報表中引數的解決方案思路有相同,但具體的實現方式存在差異,主要有三種實現方式,大概如下:

引數控制元件繫結資料

1. 描述

FineReport為了讓使用者快速的實現引數查詢資料功能,提供了專門的引數介面,用來放置與查詢相關的控制元件,如下圖:

fastreport中文版初級教程之引數查詢報表

2. 示例

根據下圖我們製作一個簡單的查詢介面,從而瞭解引數查詢介面的具體制作方法。

fastreport中文版初級教程之引數查詢報表

2.1 開啟報表

開啟報表:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\Parameter\Parameter.cpt,這張模板是模板引數章節的示例模板,該模板中添加了引數介面,以此模板為例來講述引數介面的一些使用方法。

2.2 引數佈局

按照下圖所示,將控制元件拖至相應的位置,如下:

另:引數介面採用絕對佈局方式,因此可以將控制元件拖至面板中的任何位置。

fastreport中文版初級教程之引數查詢報表

2.3 引數控制元件編輯風格

預設的引數控制元件都是文字框,有時如希望使用日期控制元件來選擇日期,或者下拉框直接選擇資料,這就需要為引數控制元件定義編輯風格了。

如將地區控制元件設為下拉框。選中地區控制元件,選擇控制元件中的扳手,在下面的對話方塊中選擇控制元件型別為下拉框:

fastreport中文版初級教程之引數查詢報表

注:如果已經選擇控制元件型別之後,又需要重新修改,那麼需要刪除原來的控制元件,再在控制元件列表中拖拽您需要的控制元件型別至引數面板中,然後修改控制元件名與引數名稱一致即可。

然後在屬性表的基本屬性>資料字典中,按照下圖設定下拉框的資料:

fastreport中文版初級教程之引數查詢報表

注:給控制元件設定資料字典,即為控制元件繫結待選值,一般適用於下拉框、下拉樹這類可以直接選擇值的控制元件。

另:如果控制元件與資料集引數繫結,資料集引數的預設值是無法傳遞到引數面板控制元件中的,控制元件預設值需要另外設定,詳細請參照控制元件預設值,但是模板引數的預設值是可以傳遞到控制元件的預設值中的,無需再次設定。

2.4 控制元件名稱

引數與控制元件是通過控制元件名稱進行繫結的,即控制元件名與引數名保持一致,如果引數控制元件是通過點選右下角的以下引數未生成按鈕生成的,那麼控制元件名會自動與引數就行繫結,如果是自己拖曳的,就需要在控制元件名屬性處修改控制元件名,使之與引數名保持一致。

2.5 儲存報表並預覽

儲存並分頁預覽便可以看到效果了。

引數過濾

1. 描述

使用者在引數查詢介面的控制元件中輸入引數值,點選查詢按鈕,就將相應的資料查詢出來了,這就是引數的過濾。

根據引數的型別不同,其引數過濾的方式不一樣,分為模板引數和資料集引數。

2. 模板引數的過濾

模板引數在與控制元件繫結之後,並沒有進行關於查詢資料的關聯操作,即,如果直接進行分頁預覽,查詢資料時是不會將控制元件中的引數值進行過濾的。

此時,需要在報表主體的資料列過濾條件中對引數進行過濾處理。

如下圖,傳入的引數amount金額,需要獲取的資料為銷售總額大於(引數值-500),則可以如下使用公式進行引數處理:

操作完成之後,再次預覽模板,就能對引數進行過濾了。

fastreport中文版初級教程之引數查詢報表

3. 資料集引數的過濾

不同於模板引數,定義資料集如SELECT * FROM TableName WHERE ColName = ${para},其中${}中的內容為變數,即資料集引數,FineReport會將${}中的內容計算後形成字串拼接至SQL中形成最終的可執行查詢語句,傳送到資料庫端進行執行。${}可以直接對資料進行過濾。

如需要給傳入的引數加上固定的字串然後再用來過濾,此時sql可以寫成SELECT * FROM [使用者密碼] where 密碼='${password+"123"}'

若給引數password傳遞值“ZY”,此時${password+123}的結果就是ZY123,就可以查詢出密碼是ZY123的資料了。

故,資料集引數控制元件繫結資料之後,無需下一步操作,就可以預覽模板,檢視效果了。

引數介面設定

1. 描述

FineReport為了讓使用者快速的實現引數查詢資料功能,提供了專門的引數介面,用來放置與查詢相關的控制元件,並且可以對引數介面進行簡單的屬性設定。

下面我們來一一介紹引數介面的屬性設定。

2. 是否顯示引數介面

有時使用者希望能夠自己控制是否顯示引數介面,使用者可以在引數設計介面設定是否顯示引數窗體,也可以再訪問報表時,在URL後面新增引數&__pi__=false來控制不顯示引數面板。

· 引數介面設定

是否顯示引數窗體可以通過在引數介面面板中直接設定,如下圖,切換至引數面板編輯介面,點選引數介面的空白處,選中引數介面,在右側的屬性表中將顯示引數窗體的勾去掉,就不會顯示引數介面:

fastreport中文版初級教程之引數查詢報表

· 通過__pi__引數控制

訪問報表時在URL後面加上&__pi__=false就可以強制報表不顯示引數介面(報表定義了引數介面且設定了顯示引數窗體);

例如:localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt&__pi__=false。

注:pi前後都是兩個英文的下劃線。

3. 點選查詢前顯示報表內容

點選查詢前顯示報表內容是指:在定義引數的情況下,報表的結果展示不需要使用者手動點選查詢按鈕,而是自動使用引數的預設值進行首次查詢並輸出結果。

實現思路是首先給引數設定預設值,然後開啟引數設計介面中勾去“點選查詢前不顯示報表內容”。

· 設定方法

進入引數面板的編輯狀態,在屬性面板中勾去“點選查詢前不顯示報表內容”,設定如下圖:

fastreport中文版初級教程之引數查詢報表

注:設定點選查詢前顯示報表內容的同時要給引數設定預設值,否則在首次展示時會根據空值進行過濾。

儲存模板,預覽即可以看到,不需要點選查詢按鈕,首次會根據預設值查詢出資料。

4. 引數面板背景設定

引數的預設背景色為灰色,但是為了使引數介面的風格和報表風格相同或達到其他效果,如您的報表背景為白色,希望引數介面背景也顯示為白色,要如何設定呢?

· 設定方法

選中引數介面,在屬性表中點選背景後面的按鈕,修改背景顏色,如下圖:

其設定效果和紙張背景設定效果相同。

fastreport中文版初級教程之引數查詢報表

5. 引數介面顯示位置

對引數介面除了可以隱藏、設定引數面板背景等操作,還可以設定引數介面的顯示位置。

· 設定方法

引數介面的顯示位置可以設定為靠左、居中以及靠右顯示,具體的設定如下圖:

fastreport中文版初級教程之引數查詢報表

注:引數介面的顯示位置以引數介面的寬度,靠左、靠右或者居中,而不是瀏覽器的頁面寬度。

設定成居左的效果如下圖:

fastreport中文版初級教程之引數查詢報表

對話方塊, 引數, 介面, 中文版, 報表,
相關問題答案