在資料資訊系統中,常常會看到這樣一類報表需求,它們的樣式為交叉報表的變形(既縱向分組擴充套件又橫向分組擴充套件,在交叉區域對統計項進行彙總),同時在縱向分組時,要求每個組跟隨乙個與分組相對應的橫向表頭。對比效果如下圖所示:
從上圖可看到,報表縱向按照年進行分組擴充套件,同時每年又能生成乙個橫向分組表頭,該表頭按照地區橫向擴充套件,並且根據年份的不同而不同。如上圖所示:2014 年有 6 個地區,而 2015 年由於資料不同只擴充套件出 4 個地區。
那怎麼實現這種需求呢?有沒有一步登天的實現方法???當然必須有,下面看我放大招。
工欲善其事必先利其器,我們選擇的利器就是:潤幹報表,具體實現操作如下:
1、製作常規交叉報表
其中,
a1:右擊單元格,選擇「邊框設定」,在彈出的對話方塊中選擇「帶斜線邊框按鈕」
單元格內容為:統計維度, 產品資訊, 銷售額
注意:這裡是英文逗號隔開
a2:=ds1.group(year( 訂購日期):1)+」年」 按照年進行資料分組
c2:=ds1.group(month( 訂購日期):1)+」月」 按照月進行資料分組
d1:= ds1.group(地區; 地區:1) 按照地區進行資料分組,並設定為橫向擴充套件
d2:=ds1.sum(數量 * 單價, 地區 ==d3) 計算某地區對應年月的訂單總價
2、實現動態交叉表頭效果
這時,我們實現的是常規交叉表表頭的效果,然後,我們來實現動態交叉表頭效果,修改報報表設計如下:
按照需求效果要求,地區要跟隨年動態跟隨擴充套件顯示,但是年是縱向擴充套件,地區是橫向擴充套件,而我們知道,橫、縱向擴充套件是衝突的,不能在一起使用,那怎麼辦呢?
蹬蹬蹬 ~ 輔助行來幫忙。
如圖所示,我們插入兩行,具體設定如下:
d1:=to(1,count(ds1.group( 地區,false)))。該表示式含義為,因為報表將來要求橫向擴充套件,但是如果把這個橫向擴充套件單元格的左主格設成縱向擴充套件時又出現衝突,所以在上方增加乙個輔助單元格做橫向擴充套件,並且擴充套件出來的個數就是按照地區分組後地區的個數。
d2:= ds1.group(地區,false)。因為要求每個年度下的地區擴充套件出來的資料不同,所以這裡按照地區進行分組,注意:要將 a2 單元格的左主格設定 a4 單元格,也就是 d2 出來的地區是經過 a4 單元格分組後的值。出於樣式上的考慮,將 d2 單元格設定成不可擴充套件單元格,並且第一行和第二行要隱藏掉,在 d2 單元格中算出了當前年度所對應的地區,並且設定不可擴充套件,返回的結果為地區的乙個組合,並且地區之間用逗號隔開
d3:=split(str(d2),」,」)[d1]。首先將 d2 單元格按照逗號分隔開,返回乙個陣列,並且通過潤幹的層次座標根據 d1 的值取這個陣列內的第幾個值,就是得到當前年度下的地區,並且第三行的左主格設成了 a4,就能實現地區跟隨年度擴充套件的效果。
好了,乙個完美的動態交叉表頭報表就完成了。
回顧一下相關問題和解決的技巧
橫縱向擴充套件聯合使用
【技巧】使用輔助行,將主格設定關聯
動態交叉表頭報表的製作
在資料資訊系統中,常常會看到這樣一類報表需求,它們的樣式為交叉報表的變形 既縱向分組擴充套件又橫向分組擴充套件,在交叉區域對統計項進行彙總 同時在縱向分組時,要求每個組跟隨乙個與分組相對應的橫向表頭。對比效果如下圖所示 從上圖可看到,報表縱向按照年進行分組擴充套件,同時每年又能生成乙個橫向分組表頭,...
交叉填報表的製作
在常見的分組填報基礎上,還常常會遇到這樣一種填報需求 將多層分組填報進行行轉列操作,從而實現交叉填報效果。下面我們通過乙個具體的例項來看一下如何製作簡單的交叉填報表。把以科室和指標為分組欄位的多層分組填報表進行行轉列操作,實現如下圖所示的交叉填報表 其中,科室和指標為擴充套件行列,從庫表中取數 黃色...
用Birt 製作交叉報表
1 我們先建立乙個簡單的資料庫模型,雖然說簡單,但是為了後期擴充套件,盡量將表設計更加細些.但是,在本例中,我們只用到我們所關心的表.截圖如下 圖一目了然我就不多說了 2 我們將資料庫模型匯出指令碼,這裡我們就匯出為mysql 4.0吧.這裡根據你的需要匯出成你自己的資料庫型別 3 開啟eclips...