轉帖|使用教程|編輯:龔雪|2016-04-20 16:00:43.000|閱讀 731 次
概述:中國式復雜報表,以數據交叉及合并功能為主,呈現大量的數據信息。在ActiveReports10 中又很好的支持了中國式復雜報表的開發,讓復雜報表不再復雜,只需要拖拖拽拽即可輕松實現。ActiveReports10 中的矩表控件很好的滿足了中國式復雜報表的需求。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
能夠滿足中國特色需求和本地化習慣的報表稱為中國式報表,談到中國式報表,人們總習慣加上復雜二字,由此來看中國式報表不僅具有獨特的中國風,它的設計與實現是非常復雜的。
西方的報表結構,以呈現數據為主,報表結構非常有規律且清晰易懂。而中國式報表呈現的信息量大、數據關系龐雜且受傳統的報表習慣與文化造成了獨特的復雜需求。中國式復雜報表可概括為“復雜的報表結構+大量數據呈現”,會在單個報表中顯示多層級的數據信息。
中國式復雜報表,以數據交叉及合并功能為主,呈現大量的數據信息。在ActiveReports10 中又很好的支持了中國式復雜報表的開發,讓復雜報表不再復雜,只需要拖拖拽拽即可輕松實現。ActiveReports10 中的矩表控件很好的滿足了中國式復雜報表的需求。
本章就為大家講解中國式復雜報表入門第一課—如何使用矩表(Tablix )控件實現類Excel 單維度交叉表,即行列決定數據顯示。
在創建報表之前,我們不著急實現,先要冷靜分析報表的結構,選擇最適合的報表模板和數據控件,以及具體的實現框架,這樣才能保證報表模板的順利創建,提高開發效率。
由上圖可獲取信息:
1. 交叉報表,由行和列共同決定顯示的數據,左上角使用斜線劃分。
2. 行以月份分組,行數不固定,是根據月份動態生成的;
3. 列是以“類別”分組,列數是不固定的,根據類別的個數動態生成的。
< style="text-align:initial">4. 具體數據顯示“銷售額”;
5. 在最后一行,合計全年的商品的銷售額,最后一列合計每月的總銷售額。
綜上分析,采用矩表控件快速實現交叉報表。
輸入SQL 語句:
SELECT t.*, 類別.類別名稱 FROM ( SELECT DATEPART("yyyy",訂單.訂購日期) AS 訂購年, DATEPART("m",訂單.訂購日期) AS 訂購月,類別.類別ID,產品.產品名稱, 訂單明細.數量, 訂單明細.單價, 訂單明細.折扣 FROM (( 訂單 INNER JOIN 訂單明細 ON 訂單.訂單ID = 訂單明細.訂單ID) INNER JOIN 產品 ON 訂單明細.產品ID = 產品.產品ID) INNER JOIN 類別 ON 產品.類別ID = 類別.類別ID ) as t INNER JOIN 類別 ON t.類別ID = 類別.類別ID ORDER BY 訂購年,訂購月
在頁眉區域,添加TextBox,輸入報表標題“產品銷售數據分析表”
添加Tablix后,會發現有類似[ 符號,表示分組,即可根據具體數據動態生成行。會發現設計器下面的矩表分組管理器;
注:分組管理器,需要在VS中手動調用顯示,調用完成之后,需要重啟VS,才能讓矩表分組管理器顯示分組詳情喲:
選擇“視圖”——> 其他窗口——> 矩表分組管理器V10
將“訂購月”直接拖拽到行分組單元格(一定要記得拖拽,拖拽,拖拽)
將“類別名稱”直接拖拽到列分組單元格(一定要記得拖拽,拖拽,拖拽)
在選中TextBox4 中可以,將Value屬性設為“=Sum(Fields!數量.Value *Fields!單價.Value * (1-Fields!折扣.Value))”;設置Format屬性為Decimal,小數位數 2;
右鍵點擊“行分組”單元格,選擇“添加合計”—>”分組后面”,會自動生成合計行,注意合計行,會自動根據TextBox4 的值添加Sum 表達式,因此為了避免錯誤,需要手動刪除合計行里面的第一個Sum表達式;將=Sum(Sum(Fields!數量.Value *Fields!單價.Value * (1-Fields!折扣.Value))) 修改為:=Sum(Fields!數量.Value *Fields!單價.Value * (1-Fields!折扣.Value))
當然,合計不僅限于Sum表達式,任何表達式都支持,如First,AVG等。
右鍵點擊“列分組”單元格,選擇“添加合計”—>”分組后面”,會自動生成合計列
拖拽Container控件到TexBox1,在Container中添加Line控件,添加兩個Textbox,并輸入文本“月份”,“類別”
效果圖:
到這里,交叉報表就基本的已經實現了,接下來需要做的就是調整樣式。
可以看到報表模板中,銷售額低于3000的呈紅色標識,大于20000背景色呈綠色,分兩步實現:
1. “腳本”標簽中添加以下代碼:
Function SetColor(ByVal v As Double) As String If(v < 3000) Return "#3eb370" ElseIf( 10000 > v > 5000)Then Return "#000000" ElseIf(v > 20000) Then Return "#ee7800" Else Return "FFFFFF" End If End Function
2. 選中銷售數據單元格,設置 BackgroundColor 屬性: =Code.SetColor (Sum(Fields!數量.Value *Fields!單價.Value * (1-Fields!折扣.Value)))
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn