定義數(shù)據(jù)集SQL語句如SELECT * FROM [TableName] WHERE [ColName] = ${para},其中${}中的內(nèi)容為變量,FineReport會(huì)將${}中的內(nèi)容計(jì)算后形成字符串拼接至SQL中形成最終的可執(zhí)行查詢語句,發(fā)送到數(shù)據(jù)庫端進(jìn)行執(zhí)行。
${}中可以使用報(bào)表中的函數(shù)對(duì)參數(shù)進(jìn)行處理,此即為參數(shù)的強(qiáng)化。
參數(shù)與字符串拼接
${}即為一個(gè)公式變量,在數(shù)據(jù)集sql查詢中,輸入的參數(shù)可能只是一部分,需要與其他固定的信息共同構(gòu)成最終的參數(shù)值,這時(shí),可以在查詢語句中進(jìn)行參數(shù)與字符串拼接來達(dá)到目的。
1. 新建報(bào)表
2. 定義數(shù)據(jù)集
定義數(shù)據(jù)庫查詢ds1,SQL語句為:SELECT * FROM STSCORE WHERE ClassNo = '${"Class"+classno}'
表示將輸入的classno參數(shù)與字符串"Class"拼接后組成最終的參數(shù)值賦給ClassNo
設(shè)計(jì)報(bào)表如下
單元格 | 數(shù)據(jù)集 | 數(shù)據(jù)列 | 屬性 |
A4 | ds1 | ClassNo | 默認(rèn) |
B4 | ds1 | Sex | 默認(rèn) |
C4 | ds1 | Name | 默認(rèn) |
D3 | ds1 | Course | 從左向右擴(kuò)展,其余默認(rèn) |
D4 | ds1 | Grade | 匯總求和,其余默認(rèn) |
4. 設(shè)計(jì)器預(yù)覽
設(shè)計(jì)器預(yù)覽,輸入?yún)?shù)值1,便可查詢出Class1的數(shù)據(jù),效果如下
日期參數(shù)的格式化處理
日期的表示形式有很多種,有時(shí)我們習(xí)慣填寫的形式與數(shù)據(jù)庫存儲(chǔ)的形式可能不同,此時(shí),就需要進(jìn)行日期的格式化處理。比如,將“2010-02-24”形式的日期轉(zhuǎn)化為“20100224”的形式。
1. 新建報(bào)表
2. 定義數(shù)據(jù)集
定義數(shù)據(jù)庫查詢,SQL語句為:SELECT * FROM SALES_BASIC WHERE 日期 = '${format(date,"yyyyMMdd")}'
參數(shù)date為日期如2010-02-24,對(duì)該日期按照yyyyMMdd進(jìn)行格式化后作為最終的值賦給日期。
如下設(shè)計(jì)報(bào)表
點(diǎn)擊參數(shù)設(shè)計(jì),使用默認(rèn)的參數(shù)界面,定義日期控件,返回值設(shè)置為日期,如下圖
保存模板,點(diǎn)擊設(shè)計(jì)器分頁預(yù)覽,選擇日期,查詢數(shù)據(jù)如下
聯(lián)系客服