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