(6)birt筆記 - 通過傳遞變量來動態修改數據集SQL

其實想想這一篇應該寫在前面一點的,主要懶癌發作… _ (:3」∠*)_。
給birt報表數據集傳參數構建動態數據集的方式挺多的,這裏介紹2種比較常用的:
1.通過?佔位符傳遞參數實現
2.JavaScript腳本拼接SQL語句實現
事先準備:創建一個birt report模板
這裏寫圖片描述

新建數據集,Data Source右鍵新建
這裏寫圖片描述

新建數據源,點擊next-》finish,這裏因爲還沒有添加SQL,所以finish會報錯,直接點OK,不用管,一共大概4個錯誤提示,一路OK
這裏寫圖片描述

新建變量參數,按照自己需求建。
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

下面是重點,開始創建動態數據源。介紹2種方法

1.在SQL語句中使用?符傳遞

這種方法有一個缺點,就是寫SQL的時候,不能夠寫sum,count啊這些函數,所以建議第二種方法,不過姑且還是講下。
選擇數據源,雙擊,寫下如下SQL,?算是一個佔位符,和C中print語句中的佔位符類似,示例中因爲只傳了一個userId,所示就只有一個?,如果傳多個並且該SQL中也用到了很多個,就加相應數量的?
這裏寫圖片描述

這裏將?與實際的變量參數綁定,在SQL中?的出現順序就是這裏從上至下的順序
這裏寫圖片描述

2.JavaScript腳本創建動態SQL

這裏寫圖片描述

按照JavaScript語法拼接SQL語句,實現動態SQL查詢,這裏語法完全遵循JS語法,完全遵循JS語法,完全遵循JS語法,重要的是要講3遍,函數也都可以用,所以,盡情處理傳過來的參數吧。這裏拼接完的SQL語句也可以包含函數,所以儘量少用方法1吧,或者2者混合使用也可以。
這裏寫圖片描述


以上通過2種不同的方式將數據源創建完畢
預覽一下數據查詢結果
這裏寫圖片描述

插入個圖表看看具體效果,選第一個柱狀圖就行,選擇剛纔新建完的數據源,將想要查詢展示的列名拖入X/Y軸。
這裏寫圖片描述

預覽下
這裏寫圖片描述

這裏出現了提示我們輸入userId的提示框,輸入Atelier graphique,查看查詢結果
這裏寫圖片描述

完成,這裏其實還可以通過url傳遞數據來跳過上一圖,大致如下,查看下圖中的url,可以看到__format=pdf,將該段後面的都刪掉,加上 &userId=’Atelier graphique’ ,然後回車,與上面通過彈窗輸入數據的結果是一樣的,看到這裏,你是不是眼前一亮?將birt工程單獨部署,讓有使用birt報表需求的項目模塊通過url遠程訪問即可生成報表,分離了業務功能,降低了耦合。當然,把birt整合到自己項目中也可以,就是以後要換報表軟件的時候拆分就麻煩點了。
_ (:3」∠*)_
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章