目錄:
多源就是一張報表的資料**來自多個資料表,甚至是多個物理資料庫。這裡的「多個」常常不是兩個三個,而是七八個乃至十幾個,無法轉成單源;
分片是指一張報表的縱向或橫向或雙向同時被分成了多個區域,往往每個區域來自不同的資料來源;
這樣的報表即多源分片報表,如下圖:
多源分片報表通常有比較複雜的橫表頭與縱表頭,在設計多源分片報表時,可以先將表頭設計好,最後設計中間部分的資料,此時只需要設定好對應的關聯過濾即可,最後進行模板資料字典等顯示設定;
另外一種快速製作多源分片報表的方法是每片單獨設計,如上圖報表,可以先設計分片1,確認無誤後再設計分片2,如此類推,同樣最後進行模板資料字典等顯示設定。
3.1 準備資料
連線資料庫frdemo,新建四個資料集,資料集名分別為雇員、產品、訂單資訊和訂單對應的sql語句如下:
雇員的sql語句:
select 雇員id,職務 from 雇員
產品的sql語句:
select 產品id,類別id from 產品 where 類別id =1 or 類別id =2
訂單資訊的sql語句:
select 訂單.訂單id,雇員id,產品id,數量,(數量*單價) as 總額 from 訂單,訂單明細 where 訂單.訂單id=訂單明細.訂單id
訂單的sql語句:
select * from 訂單
3.2 錶樣設計
最終錶樣如下:
1)分片1製作
分片1按國家與雇員進行分組統計,中間資料受左表頭與上表頭雙重控制:
單元格
資料集
資料列
屬性
b4訂單
貨主國家
預設c4
訂單雇員id
預設e2
產品類別id
從左到右擴充套件,其餘預設
e3產品
產品id
從左到右擴充套件,其餘預設
e4訂單資訊
總額彙總求和,新增過濾條件 雇員id(列序號:2) 等於 'c4' and 產品id(列序號:3) 等於 'e3'
e5訂單資訊
數量彙總求和,新增過濾條件 雇員id(列序號:2) 等於 'c4' and 產品id(列序號:3) 等於 'e3'
2)分片2製作
分片2直接統計總額與數量,中間資料只受上表頭控制:
單元格
資料集
資料列
屬性
e6
訂單資訊
總額
彙總求和,新增過濾條件 產品id(列序號:3)等於'e3'
e7
訂單資訊
數量
彙總求和,新增過濾條件 產品id(列序號:3)等於'e3'
3)分片3製作
分片3按照雇員職務與雇員進行分組統計,中間資料受左表頭與上表頭雙重控制:
單元格
資料集
資料列
屬性
b8
雇員
職務
預設
c8
雇員
雇員id
預設
e8
訂單資訊
總額
彙總求和,新增過濾條件 雇員id(列序號:2)等於'c8' and 產品id(列序號:3)等於'e3'
e9
訂單資訊
數量
彙總求和,新增過濾條件 雇員id(列序號:2)等於'c8' and 產品id(列序號:3)等於'e3'
3.3 形態設定
最後我們根據需要,設定資料的顯示樣式、形態、顏色等。
對c4,c8,e2和e3單元格作形態資料字典設定,都採用資料庫表的方式,具體設定如下表:
單元格
資料庫
資料表
列名(實際值)
列名(顯示值)
c4 fedemo
雇員
雇員id
姓名
c8frdemo
雇員
雇員id
姓名
e2
frdemo
產品型別
型別id
類別名稱
e3
frdemo
產品
產品id
產品名稱
3.4 儲存與預覽
多源分片報表.cpt
已完成的模板,可參見
%fr_home%\webreport\web-inf\reportlets\doc\advanced\multidatasource\多源分片報表.cpt。
多資料來源報表解析之簡單多源報表
多資料來源報表即一張報表中可以定義多個資料集,分別取出需要的資料庫表,所取的資料庫表甚至可以來自於不同的資料庫。本文通過幾個例子說明多個資料集資料如何相互關聯來實現多源報表。1.描述 多資料來源,就是在同一張報表當中,顯示的資料來自於多個不同的表或不同的庫。如下圖一張簡單的多資料來源報表,左側藍色部...
多資料來源報表解析之簡單多源報表
多資料來源報表即一張報表中可以定義多個資料集,分別取出需要的資料庫表,所取的資料庫表甚至可以來自於不同的資料庫。本文通過幾個例子說明多個資料集資料如何相互關聯來實現多源報表。1.描述 多資料來源,就是在同一張報表當中,顯示的資料來自於多個不同的表或不同的庫。如下圖一張簡單的多資料來源報表,左側藍色部...
多介面報表
報表2 reportviewer1.processingmode processingmode.local 設定本地處理模式 reportviewer1.dock dockstyle.fill 設定報表控制項填滿窗體 this.panel2.controls.add reportviewer1 填加...