1. 概述
1.1 版本
報表伺服器版本 |
11.0 |
1.2 應用場景
使用者存在多個資料庫,一部分是測試庫,一部分是正式庫。資料庫中每張表的表結構是完全一樣的,只有存放的資料不同。希望可以動態切換資料庫使其展示的結果不同。
Oracle資料庫中,模式名和表名不一樣,但表結構完全相同,資料不同。希望可以動態切換模式名和表名,使其展示的結果不同。
1.3 功能簡介
在資料連結和範本做好的基礎上,可以將資料連結中的配置修改為參數。在預覽範本時,使用url連接參數存取不同資料庫資料。
注:請務必先正常建立資料連結、製作範本。在範本製作完成後,再將資料連結中的配置切換為參數。
因為在切換參數後,無法在設計器中正常預覽資料集資料。
2. 動態切換資料庫
在資料連結和範本做好的基礎上,以 Oracle 資料集為例,直接在「資料庫名稱」框中寫個參數,如下圖所示:
注:帳號和密碼也可以使用參數,參見本文第 4 節。
給 ${database} 參數指派即可實現動態資料源的效果,一般直接在 URL 後面指派,也可建立報表參數指派。
例如存取資料庫 frhelp: http://localhost:8075/webroot/decision/view/report?viewlet=1.cpt&database=frhelp
給 ${database} 參數指派即可實現動態資料源的效果,一般直接在 URL 後面指派,例如存取資料庫 frhelp: http://localhost:8075/webroot/decision/view/report?viewlet=1.cpt&database=frhelp
3. 動態切換模式名和表名
同樣在資料連結和範本做好的基礎上,改變資料集定義把模式名和表名都變成參數,如下圖所示:
給這兩個參數指派即可。
注:如果使用的不是 Oracle 資料庫,那麼只需定義一個表名參數,如 select * from ${tablename},即可實現動態切換表的效果。
4. 動態切換 IP 地址、資料庫名稱
以 SQL Server 為例:動態 IP 和資料庫名,可以讓帳號和密碼也透過參數來傳遞。
原報表地址為:http://localhost:8075/webroot/decision/view/report?viewlet=test_1.cpt
現動態存取地址:http://localhost:8075/webroot/decision/view/report?viewlet=test_1.cpt&ip=localhost&dbname=test&user=sa&password=123456
傳值說明:
給參數 IP 傳值:「localhost」
給參數 dbname 傳值:「test」
給參數 user 傳值:「sa」
給參數 password 傳值:「123456」
其他資料庫的設定類似,這裏就不一一贅述了
注:如整合在某個系統的話,參數傳遞和報表處理參數是一樣的。