【步步為營 Entity Framework+Reporting service開發】-(5) Trend chart 進階
接上一章,我們要對我們的trend chart 進行修改。讓它看起來更專業。要實現 filter,自定義,3d,drill down等功能。
【讓報表看起來更正規】
接上一章,我們的trend chart 還沒標題呢。點擊圖標標題。直接在上邊修改就行。如果想高級設定,需要進到標題屬性里。vs這個地方做的不太好。經常點不到。我們先點下下邊的trend chart 的線。再點標題,再右鍵。

在這里可以大家可以自己試探著來修改一下配置。
請注意下邊圖中右邊的fx。這是一個函數表達式。他的功能很強大:

點開fx,可以看到現在的標題是 Trend Chart Demo。下邊有常量、內置字段、參數、字段、數據集、變量、運算符和常見函數。下邊的東西我們以后都可能會用到。現在先簡單舉例,當每個報表中有一個字段專門存儲它的標題時候。我們就可以像下邊一樣綁定標題:
=Fields!TaskName.Value
使用同樣的方法 修改x軸標題為date。x軸標題為win times。
這時候點擊預覽,看一下我們的報表現在的樣子:

挺正規了。但是date 還是有時分秒的。用戶不需要知道精確時間,何況我們datebase里也只有日期。
切換回設計選項卡,按下圖設置水平軸屬性:

【自定義屬性】
我們應該在每個標記點上顯示出當前的數值。右擊折現,顯示數據標簽。
折現太細了?右擊折線-》邊框-》線條寬度-》3pt
修改線條顏色:右擊折線-》邊框-》線條顏色
現在看起來就很好了:

3D效果:如果想讓報表變得酷一點,可以右鍵圖表。三維選項-》啟用三維

【添加時間過濾器/參數運用】
由于我們的報表的數據源dataset。那么我們要修改數據源里的sql語句,接收一個參數 @TimeInterval。
點擊我們的數據集(如果是灰色的,是因為你在預覽模式,請切換回設計模式)
修改查詢語句:
SELECT TaskID, TaskName, Time, B1Better, Equal, B2Better, UnCertain, GrandTotal
FROM Trends
WHERE (Time > CAST(@TimeInterval AS datetime))
注意在左邊工具欄參數一項中,自動生成了我們的TimeInterval

右擊TimeInterval-》參數屬性-》可用值-》添加》標簽:Last 7 Day ,值:點擊fx,輸入以下表達式:
=DateTime.Now.AddDays(-7).ToShortDateString()
剩下的根據需要自己添加吧。比如,last 7days,last 2 weeks,last month,last Quarter ,last year,all(all 我設置是的過去3000天)
右擊TimeInterval-》參數屬性-》默認值-》表達式設置成跟all一樣吧。或者根據需要。這樣別人查看報表時候默認就能看到全部了。
現在我們再預覽看看,時間過濾器已經有啦。

【添加bar chart】
柱形圖的作用是每次比較結果的詳細信息。當用戶點擊trend chart的 標記點時,應該跳轉bar chart里。我們現在創建barchart。
由于第二章已經講解了如何使用我們的工具導入數據,現在為了方便,我們手動修改DB吧。由于我們trend chart 里數據taskid為5,6,7,8。我們在bars table依次填入如下數據,由于為了展示效果,不必糾結數據的準確性:
1 5 聯眾 2 0 3 B1 bar True
2 5 瘋狂倒計時 0 0 3 B1 bar True
3 5 張娜拉 0 1 2 B2 bar True
4 5 截圖軟件 1 0 1 B1 bar True
5 6 哈哈 5 5 3 B1 bar True
6 6 哈哈 5 6 5 B1 bar True
7 6 哈哈 7 6 4 B1 bar True
8 6 哈哈 3 7 3 B1 bar True
9 7 嘿嘿 5 6 4 B2 bar True
10 7 嘿嘿 5 5 6 B2 bar True
11 7 嘿嘿 3 7 5 B1 bar True
12 7 嘿嘿 2 7 4 B1 bar True
13 8 弟弟 3 4 3 B2 bar True
14 8 弟弟 3 8 4 B2 bar True
15 8 弟弟 3 3 5 B1 bar True
16 8 弟弟 2 2 4 B2 bar True
添加barchart:
像trendchart 一樣。點擊報表,右鍵-》添加-》新建項
調整背景大小。右鍵-》插入-》圖表-》柱形圖
設置數據源,和trend chart的一樣。只是查詢設計器里選的表是Bars。
添加一個額外的參數,用于 trend 跳轉到 bar chart使用。查詢語句如下:
SELECT SUM(CASE (Winner) WHEN 'B1' THEN 1 ELSE 0 END) AS B1, SUM(CASE (Winner) WHEN 'B2' THEN 1 ELSE 0 END)
AS B2, SUM(CASE (Winner) WHEN 'Equal' THEN 1 ELSE 0 END) AS Equal
FROM Bars
WHERE (TaskID = @taskid)
GROUP BY TaskID
這樣,在參數里也會生成一個額外的參數taskid。
根據下圖添
加三個字段到報表中:

點擊預覽。在文本框輸入 8。(taskid)
就會展現出真實數據的bar chart了。

【Drill Down】
通過時間filter的實現,我們了解了可以給報表傳一個參數。我們可以使用同樣的辦法實現drill down(鉆進去),可以點擊trend chart的節點鉆入到bar chart上。
點擊折線上的標記,右鍵-》操作(如果標記不明顯,可以根據屬性來調節它的大小)。
轉到報表-》指定報表:Bar。添加參數-》taskid如下圖所示:

現在我們切換到預覽模式。點擊trend chart 上的方框標記。直接跳過去了。酷斃了。
下一章我會開始講解如何配置reporting service 。

浙公網安備 33010602011771號