報表工具中動態引數的靈活運用
報表開發過程中,有的時候我們會覺得普通引數很難滿足一些業務需求,比如第二個資料集要引用第一個資料集的結果進行計算,動態控制 SQL 的過濾條件,動態列等,如果您遇到了這種情況,可以嘗試使用動態引數即 ${引數名} 的方式來達到我們想要的效果。
那麼,什麼是動態引數呢?
動態引數一般是依賴於普通引數的具有計算能力的引數,在報表中動態引數我們可以看做是一個佔位符,在報表運算之前,系統會全面搜尋整張報表定義,將所有 ${引數名} 中的引數名替換成引數值即 動態參數列達式的結果。
下面我們舉幾個例子,看一下
- 首次展現引數值為空,查詢全部資料
實現方法:
a. 將資料集中原有的 where 子句部分,用動態引數替換 如下圖
更改前 SQL:
SELECT 訂單. 訂單 ID, 訂單. 客戶 ID, 訂單. 訂購日期, 訂單. 貨主地區, 訂單. 運貨商, 訂單. 運貨費
FROM 訂單
where 訂單. 訂單 ID >=10254
更改後 SQL:
b. 選單欄中 選擇【報表】à 【引數】,新增動態引數,
表示式為:if(bid==null,"",“where 訂單. 訂單 ID >=”+@bid)
意為:根據引數模板 bid 的引數值是否為空,確定 sql 部分被替換的內容,如下圖
注:bid 為引數模板傳遞的引數名稱
c. 其他,設定按照報表常規操作進行開發設計。
2. 第二個資料集要根據引用第一個資料集的結果進行計算
實現方法:
a. 新增動態引數,表示式為第一個資料集的 sql 語句,如下圖
參數列達式:
if(@bid==null || @bid=="" ,
“where 訂單 ID in (”+string(split(query(“select 訂單 ID from 訂單 where 貨主地區 =?”,“華中”;“demo”),“,”))+“)”,
“where 訂單 ID in (”+string(split(@bid,“,”))+“)”)
意為:如果引數 bid 為空,則根據某個 sql 語句的執行結果進行查詢,否則根據 bid 引數值進行資料過濾
b. 資料集部分設定如下:
c. 其他,設定按照報表常規操作進行開發設計。
3. 動態控制 SQL 的過濾條件
資料集 SQL 中包含多個過濾條件,假設當訂單 ID 及貨主地區引數值為空時,SQL 語句中去掉這兩個查詢條件,同時假如其中一個有值則對應欄位過濾生效,否則兩個引數都有值時,則訂單 ID 及貨主地區過濾均生效。
注:引數 arg1 對應訂單 ID、引數 arg2 對應貨主地區
實現方法:
a. 新增動態引數,利用 if() 函式實現上述邏輯判斷,如下圖
參數列達式為:
if(arg1=="" || arg1==null,
if(arg2=="" || arg2==null,“1=1”,“貨主地區 =’”+arg2+“’”),
if(arg2=="" || arg2==null,“訂單 ID=”+arg1,“訂單 ID=”+arg1 +“and 貨主地區 =’”+arg2+“’”)
)
b. 資料集部分設定如下:
c. 其他,設定按照報表常規操作進行開發設計。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2666945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 報表工具中動態引數的使用方法和場景
- 靈活運用JavaScript開發技巧JavaScript
- 網站設計中網頁色彩靈活運用的重要性網站網頁
- Vue3,用組合編寫更好的程式碼:靈活的引數(2/5)Vue
- 如何快速開發靈活自定義報表
- Hibernate中的自動建表及引數作用
- 靈活運用JS開發技巧(66個實用技巧)JS
- 動態路由(URL引數)路由
- iOS 靈活的控制狀態列StatusBariOS
- 創業者需要的品質:靈活!靈活!靈活創業
- 在實際業務中如何靈活運用受控元件與非受控元件元件
- 怎樣實現動態列報表,也就是列數不固定的報表?
- BIRT 中如何根據引數動態拼接 SQLSQL
- 高效能網路 SIG 月度動態:推動 virtio 支援動態中斷調節及更靈活的分流機制
- 動態IP代理是如何在電商運營中運用的?
- 報表中怎麼新增動態文字水印
- Python函式/動態引數/關鍵字引數Python函式
- 下拉表關聯非同步載入- 引數動態過濾非同步
- 如何透過動態引數實現週報製作
- 在你的專案管理中,運用報表分析了嗎?專案管理
- python3列印不同方向的九九乘法表(for迴圈的靈活運用)Python
- 《孫子兵法》與大資料概念,靈活運用才是高手!大資料
- iOS動態庫和靜態庫的運用iOS
- php中的動態變數的一個應用PHP變數
- Java 動態設定 JVM 引數的方法JavaJVM
- 虛擬串列埠工具MCGS開發除錯的靈活應用教程串列埠除錯
- 複雜報表設計之動態報表
- jenkins 動態引數實現可供選擇的用例執行列表Jenkins
- BIRT 中根據引數實現動態日期分組
- ABAP 報表中如何給報表的輸入引數增添 F4 Value Help試讀版
- 有什麼工具能生成帶有動態報表圖形的 word 報告嗎?
- 動態切換 web 報表中的統計圖型別Web型別
- vue自定義表單生成器,可根據json引數動態生成表單VueJSON
- 如何在 Laravel 中靈活的使用 TraitLaravelAI
- 靈活使用 SQLAlchemy 中的 ORM 查詢SQLORM
- livewire 中wire:click=test('中文引數')引數報錯
- 靈活就業群體調查暨2024年三季度靈活就業景氣指數報告就業
- ROS 動態引數伺服器教程ROS伺服器