【步步為營 Entity Framework+Reporting service開發】-(4) 使用vs2008 開發一個最基本的Trend chart


有些朋友要問,為什么要用vs2008 而不用vs2010.

因為我們使用的是sql2008R2,默認在vs2008里可以創建report 項目。如果使用sql 2012的話,在vs2010中或許也會帶吧。(vs 2010中我們可以使用report reviewer,道理是一樣的)

不過使用vs創建的report 只是把db里的數據組織好格式展示一下。真正對report 的管理還是要在安裝reporting service 的那台服務器上。

要展現一張報表給用戶看,需要如下過程:

1.使用vs創建相關報表。

2.部署到指定的report 服務器上。

3.配置報表服務器。

【創建報表】

這里我們先來講如何使用vs創建報表吧。

打開vs2008

文件-》新建-》商業智能項目-》報表服務器項目

把默認名字改成reporting。

我們需要生成trend ,bar和detail 報表。我們一個一個來。先創建trend chart。

解決方案管理器中在reporting 項目上右鍵-》添加-》新建項-》報表-》改名為trend.rdl。

首先我們要添加數據源,也就是告訴vs,我們的數據來源是哪,根據什么數據生成報表?

按下圖操作:報表數據-》數據源-》添加數據源

命名數據源TrendDatasource

點擊編輯,連接字符串:服務器名是. ,因為我是創建在本地,如果是遠程機器直接寫那台機器的名稱。

***注意,驗證方式要用sql server 身份驗證。因為數據庫里沒必要給每個用戶都加訪問的權限。那樣不安全,也很麻煩。至於身份驗證的工作交給reporting service 管理。后邊的章節會介紹。

建議為reporting service 創建一個單獨的賬戶。例如reportuser。我們來一起創建下。已經創建好或者希望用已有賬戶的請略過此塊:

連接數據庫-》安全性-》登錄名-》右鍵-》新建登錄名=》

常規:sqlserver 身份驗證=》鍵入密碼=》不勾選“強制實施密碼策略”

服務器角色:都勾上吧。

用戶映射:選擇我們上一章code first 創建的db :DemoReportDB。下邊的數據庫角色成員身份,都勾上。

狀態:一定確認: 授權和啟用都被勾選上。

 

 

好了,我們現在切換到vs中,使用剛才創建的sql用戶連接字符串。注意要點選記住密碼哦。

數據庫選擇我們剛才的DemoReportDB數據庫。

點擊一下測試連接。有的用戶提示reportuser登陸失敗。為什么呢?是因為你在安裝sql時候沒指定開啟sql身份驗證登陸模式。

 

好了,現在連接好字符串了。我們的數據源也有了(名字是自己設定的,我設定為TrendDataSource),接着創建數據集。

名稱:TrendDateset。選擇使用在我報表中嵌入的數據集。數據源從下拉列表中選擇我們剛才創建的TrendDataSource。

點擊查詢分析器:添加表,如下圖,

選擇 trends表。

勾選表上的字段或鍵入語句:SELECT   TaskID, TaskName, Time, B1Better, Equal, B2Better, UnCertain, GrandTotal
FROM      Trends

有朋友要問了,不是還要按時間過濾,drill down。就這一句sql?別急,我們一步一步來。

點擊確定。這時候我們有了數據集和數據源了。

【綁定字段】

在trend.rdl 設計選項卡中右鍵-》插入-》圖表-》折線圖-》有標記的折線圖。根據需要調整圖的大小。

點擊一下圖表。右邊會彈出來一個“圖表數據框”

 點右上角的+,按下圖加入3個字段。

點選“類別組”右邊的+,添加time 到類別組。因為我們要根據time來分組。每個日期對應着trend的一個時間點。

這時候我們先切換到預覽選項卡上。看看我們的報表是什么樣啦?點選“預覽”

報表是有了,但是好奇怪啊,不是折線圖,而是3個點。為什么呢?因為我們開始只導入了一條數據呀。

由於使用EF導入數據在前邊已經介紹過了。我們這次手動改數據庫吧。找到trends table ,右鍵-》編輯前200行-》

taskid :6 time:2012-07-11 B1Better:250 Equal: 350  B2Better:230 Uncertain:220 GrandTotal:1000 type:trend IsActive:true

這時候再預覽看看我們的報表?哇塞,有了,可惜還是2個點。那再加條數據:

2 5   2012-06-27 00:00:00.000 200 300 280 220 1000 trend True
4 6   2012-07-11 00:00:00.000 250 330 280 220 1000 trend True
5 7   2012-07-18 00:00:00.000 200 200 500 100 1000 trend True
7 8   2012-07-25 00:00:00.000 260 340 200 200 1000 trend True

看起來還是很粗糙的一個報表。連個名字都沒有。線能不能粗點?能不能做成3D的?我能不能只看最近1個月的報表(filter)

每個點的值都是多少,能不能顯示百分比。開始提到的酷酷的drill down呢?

下一章會介紹 針對這個trend 報表的進階內容。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM