多資料來源報表即一張報表中可以定義多個資料集,分別取出需要的資料庫表,所取的資料庫表甚至可以來自於不同的資料庫。本文通過幾個例子說明多個資料集資料如何相互關聯來實現多源報表。
1.描述
多資料來源,就是在同一張報表當中,顯示的資料來自於多個不同的表或不同的庫。
如下圖一張簡單的多資料來源報表,左側藍色部分來自於銷量表,右側黃色部分來自銷售總額表,即資料來自於兩張不同的資料庫表:
2.示例
2.1開啟單個資料來源報表
開啟報表%fr_home%\webreport\web-inf\reportlets\doc\primary\crossreport\cross.cpt。
2.2新增資料來源
再新增乙個資料集ds2,其sql語句為select * from [銷售總額]
。ds2資料集與ds1資料集都有乙個銷售員字段。
2.3繫結資料列
如下圖,將ds2中銷售總額資料列拖拽到單元格中,並設定父格為銷售員所在單元格,使銷售總額跟隨銷售員而擴充套件:
2.4設定過濾
此時設計器預覽,效果如下:
可以看到,擴充套件出來的每乙個銷售員下,都重複顯示銷售總額欄位的所有資料。
雖然銷售總額的父格為銷售員資料列,由於他們來自於不同的資料集,因此銷售總額不會將父格銷售員作為條件進行篩選,即不存在附屬關係。
我們需要銷售總額與銷售員一一對應,就需要設定過濾條件,將這兩個資料集的資料通過銷售員關聯起來。
選中銷售總額所在單元格,設定過濾,新增過濾條件:銷售員 等於'c4'
,取出與c4單元格中銷售員匹配的資料,如下圖:
2.5儲存並預覽
儲存模板,預覽報表,即可看到如上的效果。
3.多資料來源報表優勢
多資料來源報表傳統的做法,是通過拼sql將多源集成為單源。如上例中將銷量表與銷售總額表整合起來:select * from銷量,銷售總額where 銷量.銷售員= 銷售總額.銷售員
。若資料庫表比較複雜,且使用的表個數不止2張而是更多時,可以想象,最終的sql查詢語句將會非常複雜。
finereport
天然支援多資料來源的報表,一張報表中可以新增任意多個資料集,每個資料集使用最簡單的sql語句查詢出需要的表資料,在報表中只需要使用過濾就可以將來自不同表的資料相互關聯起來。使得多資料來源報表製作更加簡單。
多資料來源報表解析之簡單多源報表
多資料來源報表即一張報表中可以定義多個資料集,分別取出需要的資料庫表,所取的資料庫表甚至可以來自於不同的資料庫。本文通過幾個例子說明多個資料集資料如何相互關聯來實現多源報表。1.描述 多資料來源,就是在同一張報表當中,顯示的資料來自於多個不同的表或不同的庫。如下圖一張簡單的多資料來源報表,左側藍色部...
Springboot簡單配置多資料來源
1.先排除掉springboot的資料來源自動配置項 datasourcetransactionmanagerautoconfiguration.class,jdbctemplateautoconfiguration.class main datasource config main.datasou...
多資料來源動態關聯報表的製作(birt為例)
使用jasper或birt等報表工具時,常會碰到一些非常規的統計,用報表工具本身或sql都難以處理,比如與主表相關的子表分布在多個資料庫中,報表要展現這些資料來源動態關聯的結果。集算器具有結構化強計算引擎,整合簡單,可以協助報表工具方便地實現此類需求。下面通過乙個例子來說明多資料來源動態關聯的實現過...