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