經過上一篇的初始,我們已經做好了報表的準備工作,接下來我們進行報表的展示和其他一下操作,并且給出一些使用RS的方法方便大家日后能靈活使用。
步驟:
1.首先拖拽表格等進入到設計模板
點擊左側工具欄,選中Table 然后拖拽到設計模板內。如圖
2.修改表內信息如下圖所示即可
表頭和內容各站一行。
3.接下來我們簡單介紹一下表頭的表格合并和列數據聚合
左下側,點擊詳細,然后選擇加入父群組,然后即可根據所需進行合并項,如下圖所示
你可以在組頭或組尾加入聚合函數或敲入一個標題來描述這一列。下面通過一個表達式來創建一個累加聚合。右鍵表格右下角處于行和列最后的那個單元格,右鍵點擊文本單元格屬性,在值那一欄填入:=SUM(Fields!字段.Value),如圖。
排序篩選關鍵字也可設定
4.調整完畢后可以展示出來,預覽
至此完整的簡要報表生成已經完成,接下來我轉載了幾種應用報表的發布,希望能提供相應的幫助
報表的發布設計完報表之后,就要將其發布到Reporting Services服務中,以供調用。我們可以把這個發布稱作deploy。
經過實際應用,發現可以有下面三種方法來進行報表的發布
在BI中編譯發布我們設計報表是在BI中進行的,可以利用它來一次性將整個報表工程deploy到服務器上。大致步驟如下:
完了之后會顯示http://localhost/ReportServer這個頁面,在這個頁面中顯示的就是該報表服務器上所有的ReportFolder,而報表則會按照deploy時的設置,分別保存在這些folder內。進入Folder之后,點擊報表即可查看,系統已經為我們生成了一個帶有ReportViewer的aspx頁面。
通過Web下的Report Manager下面這兩種方法均是用來管理報表服務器,發布報表只是它們的一部分功能。
使用Report Manager的大致步驟如下:
這樣就OK了,之后也可以在ReportServer頁面下查看內容。
通過SQL Server Management Studio在SQL Server的配置中,這個工具無疑是最強大的。在登錄SSMS的時候,選擇Server Type為Reporting Services,然后指定Server的名稱,以及登錄方式。登錄成功后,在Home目錄下就是我們在Report Manager中看到的內容,后面的操作大同小異,就不浪費文字了。
利用ReportViewer控件引用報表建立、發布報表的最終目的還是為了在程序中引用它們,在此我們選擇的是最簡單的方法——使用ReportViewer控件。
WinForm環境下的ReportViewerWinForm下的ReportViewer控件,位于Microsoft.Reporting.WinForms命名空間下,在VS2005中默認會出現在ToolBar中,直接將其拖放進窗體即可對其操作。
一般來說,所有報表都必須設置的參數有以下幾個:
對于實際應用,采用代碼來控制ReportViewer要比設計時設置屬性更加常用,下面就是一個簡短的例子,概括了這樣一個過程:
this.reportViewer1.ServerReport.ReportPath = "/Test/Report1"; List<ReportParameter> parameters = new List<ReportParameter>(); parameters.Add(new ReportParameter("params",textQueryString.Text)); this.reportViewer1.ServerReport.SetParameters(parameters); this.reportViewer1.ShowParameterPrompts = false; this.reportViewer1.RefreshReport();
在上面的過程中,先是設置ReportPath(ReportServerUrl在本示例中已經指定,實際上應該通過App.config的設置字符串來設置)。然后創建報表參數列表(這個params的名稱是在設計報表的時候設置的報表參數,在SQL語句中通過@params進行引用),進而調用ServerReport的SetParameters方法,將參數傳遞給報表。緊接著,將報表的ShowParameterPrompts屬性設為false,即不在ReportViewer的頭部顯示參數輸入提示。最后執行RefreshReport()方法,刷新報表頁面。
asp.net環境下的ReportViewer微軟的統一性工作無疑是相當出色的,Web下的ReportViewer在使用起來與WinForm下完全相同,唯一不同的就是控件位于Microsoft.Reporting.WebForms下,而諸如ReportParameter等類也改為此命名空間之下。在代碼控制報表方面,不需要進行改動即可移植。
Visual WebGUI下的ReportViewer在項目中,我們是采用VWG來作為程序的框架的。Gizmox開發團隊也為ReportViewer設計了相應版本,控件位于Gizmox.WebGUI.Reporting命名空間下,但要注意,它的屬性諸如ReportParameter、ProcessingMode等仍然是位于Microsoft.Reporting.WebForms下的,這一點不要搞錯。
直接通過ReportServer訪問報表還記得前面提到過的http://ServerUrl/ReportServer嗎?SSRS已經為我們準備了一個用來查看報表的方法,即通過URL訪問,比如要查看在localhost/ReportServer服務器中,位于Test下的Report1報表,可以直接在瀏覽器中輸入 http://localhost/ReportServer?Test/Report1,SSRS會自動調用一個系統內置的頁面來顯示它。在這個帶參數的URL后面,我們可以通過附加URL參數的方法來對報表進行控制。比如上面的那個例子,在ASP.NET中可以使用Response.Write()向頁面寫入下面的代碼來彈出窗口顯示報表:
"<script language=/"javaScript/"> window.open('http://localhost/ReportServer?Test/Report1¶ms=" + textQueryString.Text + "&rc:Parameters=false&rs:Command=Render'; </script>"
其中URL參數的構造方法請參閱MSDN相關文檔。
總結:
本篇簡單的介紹了如何產生報表以及相關的設定,我們將在下一篇中介紹如何用更高級的展示來表現數據,諸如柱狀圖餅狀圖甚至是更漂亮的圖例。
新聞熱點
疑難解答