這篇文章將為大家詳細(xì)講解有關(guān)大數(shù)據(jù)報(bào)表工具中動(dòng)態(tài)參數(shù)的使用方法和場(chǎng)景是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);做網(wǎng)站、成都網(wǎng)站制作收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了十年的成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。
報(bào)表開發(fā)過程中,有的時(shí)候我們會(huì)覺得普通參數(shù)很難滿足一些業(yè)務(wù)需求,比如第二個(gè)數(shù)據(jù)集要引用第一個(gè)數(shù)據(jù)集的結(jié)果進(jìn)行計(jì)算,動(dòng)態(tài)控制 SQL 的過濾條件,動(dòng)態(tài)列等,如果您遇到了這種情況,可以嘗試使用動(dòng)態(tài)參數(shù)即 ${參數(shù)名} 的方式來達(dá)到我們想要的效果。
那么,什么是動(dòng)態(tài)參數(shù)呢?
動(dòng)態(tài)參數(shù)一般是依賴于普通參數(shù)的具有計(jì)算能力的參數(shù),在報(bào)表中動(dòng)態(tài)參數(shù)我們可以看做是一個(gè)占位符,在報(bào)表運(yùn)算之前,系統(tǒng)會(huì)全面搜索整張報(bào)表定義,將所有 ${參數(shù)名} 中的參數(shù)名替換成參數(shù)值即 動(dòng)態(tài)參數(shù)表達(dá)式的結(jié)果。
下面我們舉幾個(gè)例子,看一下
首次展現(xiàn)參數(shù)值為空,查詢?nèi)繑?shù)據(jù)
實(shí)現(xiàn)方法:
a. 將數(shù)據(jù)集中原有的 where 子句部分,用動(dòng)態(tài)參數(shù)替換 如下圖
更改前 SQL:
SELECT 訂單. 訂單 ID, 訂單. 客戶 ID, 訂單. 訂購日期, 訂單. 貨主地區(qū), 訂單. 運(yùn)貨商, 訂單. 運(yùn)貨費(fèi)
FROM 訂單
where 訂單. 訂單 ID >=10254
更改后 SQL:
b. 菜單欄中 選擇【報(bào)表】à 【參數(shù)】,新增動(dòng)態(tài)參數(shù),
表達(dá)式為:if(bid==null,"",“where 訂單. 訂單 ID >=”+@bid)
意為:根據(jù)參數(shù)模板 bid 的參數(shù)值是否為空,確定 sql 部分被替換的內(nèi)容,如下圖
注:bid 為參數(shù)模板傳遞的參數(shù)名稱
c. 其他,設(shè)置按照?qǐng)?bào)表常規(guī)操作進(jìn)行開發(fā)設(shè)計(jì)。
2. 第二個(gè)數(shù)據(jù)集要根據(jù)引用第一個(gè)數(shù)據(jù)集的結(jié)果進(jìn)行計(jì)算
實(shí)現(xiàn)方法:
a. 新增動(dòng)態(tài)參數(shù),表達(dá)式為第一個(gè)數(shù)據(jù)集的 sql 語句,如下圖
參數(shù)表達(dá)式:
if(@bid==null || @bid=="" ,
“where 訂單 ID in (”+string(split(query(“select 訂單 ID from 訂單 where 貨主地區(qū) =?”,“華中”;“demo”),“,”))+“)”,
“where 訂單 ID in (”+string(split(@bid,“,”))+“)”)
意為:如果參數(shù) bid 為空,則根據(jù)某個(gè) sql 語句的執(zhí)行結(jié)果進(jìn)行查詢,否則根據(jù) bid 參數(shù)值進(jìn)行數(shù)據(jù)過濾
b. 數(shù)據(jù)集部分設(shè)置如下:
c. 其他,設(shè)置按照?qǐng)?bào)表常規(guī)操作進(jìn)行開發(fā)設(shè)計(jì)。
3. 動(dòng)態(tài)控制 SQL 的過濾條件
數(shù)據(jù)集 SQL 中包含多個(gè)過濾條件,假設(shè)當(dāng)訂單 ID 及貨主地區(qū)參數(shù)值為空時(shí),SQL 語句中去掉這兩個(gè)查詢條件,同時(shí)假如其中一個(gè)有值則對(duì)應(yīng)字段過濾生效,否則兩個(gè)參數(shù)都有值時(shí),則訂單 ID 及貨主地區(qū)過濾均生效。
注:參數(shù) arg1 對(duì)應(yīng)訂單 ID、參數(shù) arg2 對(duì)應(yīng)貨主地區(qū)
實(shí)現(xiàn)方法:
a. 新增動(dòng)態(tài)參數(shù),利用 if() 函數(shù)實(shí)現(xiàn)上述邏輯判斷,如下圖
參數(shù)表達(dá)式為:
if(arg1=="" || arg1==null,
if(arg2=="" || arg2==null,“1=1”,“貨主地區(qū) =’”+arg2+“’”),
if(arg2=="" || arg2==null,“訂單 ID=”+arg1,“訂單 ID=”+arg1 +“and 貨主地區(qū) =’”+arg2+“’”)
)
b. 數(shù)據(jù)集部分設(shè)置如下:
c. 其他,設(shè)置按照?qǐng)?bào)表常規(guī)操作進(jìn)行開發(fā)設(shè)計(jì)。
關(guān)于大數(shù)據(jù)報(bào)表工具中動(dòng)態(tài)參數(shù)的使用方法和場(chǎng)景是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。