亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

利用SQL Server Reporting Services 從應(yīng)用程序

系統(tǒng) 2759 0

利用 SQL Server Reporting Services

從應(yīng)用程序生成用戶友好的報表

發(fā)布日期: 09/03/2004 | 更新日期: 09/03/2004

John C. Hancock? ?
http://www.microsoft.com/china/msdn/library/data/sqlserver/SQLServerReportServ.mspx

本文討論:
?

Reporting

?

設(shè)計和部署報表

?

使用 Reporting Services 的 Web 服務(wù)

?

保證報表的安全

本文使用下列技術(shù):
SQL Server、ASP.NET、Visual Basic .NET

代碼下載:
SQLServerReportingServices.exe (222KB)

*

本頁內(nèi)容
Reporting Services 概述 Reporting Services 概述
設(shè)計第一個報表 設(shè)計第一個報表
部署和測試 部署和測試
將報表添加到 Web 應(yīng)用程序 將報表添加到 Web 應(yīng)用程序
將報表嵌入到 Web 應(yīng)用程序中 將報表嵌入到 Web 應(yīng)用程序中
保證報表的安全 保證報表的安全
使用 Reporting Services Web 服務(wù) 使用 Reporting Services Web 服務(wù)
訂閱報表 訂閱報表
接下來該怎么做? 接下來該怎么做?

靈活的報表功能是大多數(shù)業(yè)務(wù)應(yīng)用程序的一個要求,這些報表功能在集成到 Web 應(yīng)用程序中之后用途更加廣泛。利用 SQL Server ? 2000 Reporting Services 的最新版本,您可以輕松地具有來自各種數(shù)據(jù)源的報表生成功能。在本文中,我將介紹使用 Visual Studio ? 和 Reporting Services 來編寫報表,并演示如何將報表集成到 Web 應(yīng)用程序中。


Reporting Services 是基于服務(wù)器的報表生成平臺,該平臺構(gòu)建在 .NET Framework 上并與 SQL Server 2000 集成在一起,因此您可以使用一個擴(kuò)展的基于 Web 服務(wù)的 API 將豐富的報表生成功能集成到應(yīng)用程序中。盡管報表服務(wù)器使用 SQL Server 作為報表的儲存庫,但利用 OLE DB、ODBC 或 ADO.NET 提供程序的任何數(shù)據(jù)源都可以用來為報表提供數(shù)據(jù),這就使得 Reporting Services 成為在各種企業(yè)環(huán)境中生成報表的極佳工具。


Reporting Services 是作為 SQL Server 2000 的一部分而授權(quán)的,因此如果您有已授權(quán)的 SQL Server 的副本,則可以在同一服務(wù)器上運行 Reporting Services 而無需支付額外的許可證費用。如果您決定在獨立的、尚未經(jīng) SQL Server 授權(quán)的計算機(jī)(例如,Web 服務(wù)器)上運行 Reporting Services,您將需要購買額外的 SQL Server 許可證。


要開始使用 Reporting Services,您可以下載位于 SQL Server 2000 Reporting Services 的 120 天試用版軟件,它還包括有關(guān)如何獲得該產(chǎn)品的安裝媒體的說明。在安裝該產(chǎn)品時,請確保選中包括示例報表的選項,因為我要將這些報表集成到本文的 Web 應(yīng)用程序中。



Reporting Services 概述


Reporting Services 報表設(shè)計使用新的 Visual Studio .NET 2003 報表設(shè)計器,在安裝有 Visual Studio 的同一計算機(jī)上安裝了 Reporting Services 后,該設(shè)計器就可以使用。設(shè)計器以新的基于 XML 報表定義語言 (RDL) 輸出報表布局和數(shù)據(jù)訪問的說明,而 RDL 文件會發(fā)布到報表服務(wù)器。如果您希望為用戶提供創(chuàng)作功能,也可以使用第三方的報表設(shè)計器。


管理員可以使用基于 Web 的報表管理器來管理已發(fā)布的報表,并且可以執(zhí)行一些任務(wù),例如,保證某些用戶組報表的安全或更改已部署報表的數(shù)據(jù)源連接字符串。用戶也可以使用報表管理器來瀏覽和查看報表;但是很多公司傾向于使用 URL 請求或 Reporting Services Web 服務(wù),將報表查看直接集成到它們現(xiàn)有的內(nèi)部 Web 站點或應(yīng)用程序中。



USissues0408SQLServerReportingServicesfig01

1 Reporting Services 體系結(jié)構(gòu)



可以將報表參數(shù)化,這樣用戶可以在查看報表時從選擇列表中進(jìn)行挑選;它們還可以導(dǎo)出為多種格式,例如,Microsoft ? Excel、PDF 和 XML。盡管實時報表提供最新的數(shù)據(jù),也可以將報表緩存一段時間以提高性能并減少數(shù)據(jù)源上的負(fù)載。對于商務(wù)智能應(yīng)用程序,報表可以訪問 Analysis Services OLAP 多維數(shù)據(jù)集,而且 Reporting Services 甚至可以導(dǎo)入現(xiàn)有的 Microsoft Access 報表,盡管由于這兩種技術(shù)間存在差異,它并不能支持所有的 Access 功能。有關(guān) Reporting Services 體系結(jié)構(gòu)的詳細(xì)情況,請參見 1



設(shè)計第一個報表


盡管我介紹的重點在于將報表集成到應(yīng)用程序中而不是創(chuàng)作報表,但熟悉 Reporting Services 的最好辦法就是立即著手創(chuàng)建一個新的報表項目。為此,請打開 Visual Studio 并使用 Report Project Wizard 創(chuàng)建一個新的項目,該向?qū)挥?Business Intelligence Projects 部分。為您的項目指定一個名稱,單擊“OK”,然后將顯示報表向?qū)υ捒颉T谀x擇數(shù)據(jù)源的這一步驟中,單擊“Edit”按鈕,以便指定連接到您數(shù)據(jù)庫服務(wù)器上的 AdventureWorks2000,單擊“OK”,然后選中使其成為共享數(shù)據(jù)源的選項。


單擊“Next”進(jìn)入到“Design the Query”步驟,指定簡單的 SQL 語句(例如,“SELECT * FROM Product”),然后單擊“Next”。Reporting Services 支持顯示一組固定列的標(biāo)準(zhǔn)表格式 (Tabular) 報表,也支持使用帶有動態(tài)列的交叉表樣式視圖的矩陣式 (Matrix) 報表,因此為該報表選擇 Tabular,然后單擊“Next”。


將某些列(例如,ProductID 和 Name)拖到 Details 部分并單擊“Next”。選擇默認(rèn)的 Bold 樣式,單擊“Next”,然后指定您的報表服務(wù)器的虛擬目錄的 URL,例如,http:// MyServer /ReportServer。現(xiàn)在,單擊“Next”。最后一步,您可以為您的第一個報表指定名稱,例如,Products Report;然后單擊“Finish”。


該向?qū)?chuàng)建該項目,同時還創(chuàng)建一個可以由多個報表共享 AdventureWorks2000 數(shù)據(jù)源,以及一個在設(shè)計器中打開的有關(guān) Products 數(shù)據(jù)的報表(請參見 2 )。默認(rèn)情況下,顯示使您可以修改報表設(shè)計的 Layout 選項卡。



USissues0408SQLServerReportingServicesfig02

2 Visual Studio 報表設(shè)計器




Data 選項卡用于指定報表的查詢,包括設(shè)置參數(shù)以便在執(zhí)行報表時提示用戶提供值。單擊“Preview”選項卡來測試報表顯示給用戶的方式。


現(xiàn)在,您可以將附加的報表添加到該項目,或者通過添加附加列、將數(shù)據(jù)分組、添加匯總、甚至是添加能夠顯示來自其他查詢的數(shù)據(jù)的附加表來修改 Products 報表。與很多報表設(shè)計器不同,Reporting Services 使用帶外設(shè)計,這使得它可以輕松地創(chuàng)建將各種源的數(shù)據(jù)集中在同一個位置的報表。


您剛剛創(chuàng)建的報表項目由當(dāng)前駐留在您的開發(fā)計算機(jī)上的一組文件組成。為了將這些報表發(fā)布給用戶,您需要將該項目部署到報表服務(wù)器。



部署和測試


在部署報表項目之前,需要指定將項目部署到哪一個服務(wù)器。如果您最初使用該向?qū)?chuàng)建了報表項目,那么您可能已經(jīng)指定了目標(biāo)服務(wù)器。


要檢查該設(shè)置或指定一個新服務(wù)器,請選擇“Project | Properties”來顯示 Project Properties 對話框。進(jìn)行該設(shè)置使您可以指定項目的文件夾名和 Reporting Services Web 服務(wù)的 URL。在菜單上選擇“Build | Deploy Solution”將構(gòu)建報表項目,然后將其部署到服務(wù)器。


在部署報表項目后,您就可以進(jìn)行測試了。已部署到服務(wù)器的每個報表都具有唯一的路徑,該路徑可以用于在瀏覽器中顯示報表。例如,要顯示您創(chuàng)建的第一個報表,請打開瀏覽器并導(dǎo)航到 http:// MyServer /ReportServer?/Report+Project1/Products+Report。這會以 HTML 格式呈現(xiàn)報表并在頁面的頂端顯示一個工具欄,以便使您可以對報表進(jìn)行翻頁、更改縮放比例,甚至以各種其他格式(例如,PDF)查看報表。


您還可以通過導(dǎo)航到服務(wù)器上的以下 URL,來瀏覽已部署到服務(wù)器的所有報表項目的列表:http:// MyServer /ReportServer。報表服務(wù)器提供使您可以查看已部署的報表類型和查看報表的最小的用戶界面。


報表管理器是一個更加友好、功能更豐富的工具,可以通過簡單地導(dǎo)航到本地服務(wù)器上的以下 URL 來訪問該工具: http:// MyServer /Reports

將報表添加到 Web 應(yīng)用程序


既然您知道如何設(shè)計、部署和測試報表,就讓我們將這些報表集成到應(yīng)用程序中吧!很多 Web 應(yīng)用程序都包括針對每個用戶的自定義主頁,通常稱為“儀表板”。這個頁面通常提供針對用戶量身定做的摘要式信息并作為跳轉(zhuǎn)點來訪問應(yīng)用程序的其他功能。


我將使用 Reporting Services 附帶的示例報表構(gòu)建一個儀表板來演示報表集成, 如圖 3 所示。如果您在安裝過程中安裝了示例報表,您可以打開該報表項目(安裝到 \Reporting Services\Samples\Reports)并將其部署到測試服務(wù)器。您可以使用報表管理器工具通過瀏覽到 SampleReports 文件夾來測試示例報表。



USissues0408SQLServerReportingServicesfig03

3 儀表板 Web 應(yīng)用程序




為用戶提供從應(yīng)用程序訪問報表的權(quán)限的最簡單方法就是使用超級鏈接。如您已經(jīng)看到的那樣,每個報表都具有唯一的、用于在瀏覽器中顯示報表的路徑。對于儀表板應(yīng)用程序,報表應(yīng)該在單獨的窗口中打開,因此我將為該超級鏈接指定一個目標(biāo)。到目前為止,這是非常簡單的,但是對于具有參數(shù)報表的報表(例如,Employee Sales Summary 報表)來說,情況又如何呢?要真正地將報表集成到應(yīng)用程序中,您通常需要為參數(shù)指定某些值,以便用戶不會被經(jīng)常提示。


Reporting Services 使這項任務(wù)非常簡單:報表參數(shù)的值可以指定為 URL 的一部分。例如,Employee Sales Summary 報表具有 ReportYear、ReportMonth 和 EmpID 參數(shù),因此顯示編號為 24 的員工在 11 月份的銷售額的超級鏈接可以是:

      <a href="http://MyServer/ReportServer?/SampleReports/Employee Sales      Summary&ReportMonth=11&EmpID=24" target="_blank">November Sales Summary</a>
    

不具有在 URL 中指定的值的參數(shù)將使用在報表設(shè)計器中設(shè)置的默認(rèn)值,因此剛才展示的示例銷售匯總報表使用的 ReportYear 值是 2003。Reporting Services 還有一組用于控制報表顯示方式的內(nèi)置參數(shù)。這些參數(shù)通過加上前綴“rs:”來區(qū)別您自己的報表參數(shù)。


其中最有用的一個參數(shù)就是 rs:Format 參數(shù),它用于指定呈現(xiàn)報表的格式。這使您可以包括不需要顯示在 HTML 中的報表,還可以使用諸如 PDF 甚至是 XML 的格式。其他常用參數(shù)是 rs:Command,指示出要應(yīng)用到您所指定的路徑的操作。例如,rs:Command=Render 將呈現(xiàn)一個報表,而 rs:Command=ListChildren 將列出文件夾中所有項。


如果您沒有指定命令,Reporting Services 將查看您指定的路徑并計算出要采取的適當(dāng)操作,例如,呈現(xiàn)報表。 圖 4 顯示了 rs:parameters 的列表。
另一組內(nèi)置參數(shù)控制各種輸出格式的行為并使用 rc:prefix。每個報表格式都具有其自己特定的一組參數(shù)。例如,要以沒有標(biāo)題行的逗號分隔值 (CSV) 格式呈現(xiàn)報表,您應(yīng)該使用 rc:NoHeader 參數(shù):

      <a href="http://MyServer/ReportServer?/SampleReports/Company Sales   &rs:Command=Render&rs:Format=CSV&rc:NoHeader=true">Company Sales</a>
    

HTML 格式具有非常多的 rc:parameters,在將報表集成到 Web 應(yīng)用程序中時為您提供很多的靈活性。如果應(yīng)用程序?qū)蟊韰?shù)選擇傳遞到報表,那么您可能要通過將 rc:Parameters 設(shè)置為 false 來避免提示用戶,甚至可以通過將 rc:Toolbar 設(shè)置為 false 來關(guān)閉整個工具欄。有關(guān)常用 HTML rc:parameters 的列表的詳細(xì)信息,請參見 圖 5


如果您的 Web 應(yīng)用程序使用框架來顯示報表(比如說,在左側(cè)窗格中顯示報表列表,在右側(cè)窗格中顯示報表內(nèi)容),您將需要使用 rc:LinkTarget 參數(shù)來指定內(nèi)容框架的名稱。否則,當(dāng)用戶點擊報表中的任意嵌入鏈接時,瀏覽器就會使用整個窗口來重新顯示報表,而不是保留導(dǎo)航窗格和內(nèi)容窗格的框架。


您可以使用我介紹過的 URL 參數(shù)來添加“快速啟動”區(qū)域,該區(qū)域包含使用戶可以打開常用報表的超級鏈接的列表(請參見圖 3)。每個超級鏈接將其目標(biāo)設(shè)置為 _blank 以在獨立的瀏覽器窗口中打開報表,并使用諸如 rs:Format=EXCEL 這樣的參數(shù)來控制報表在瀏覽器中的顯示方式。


將報表嵌入到 Web 應(yīng)用程序中


如果在用戶查看報表時,不再使用彈出新的瀏覽器窗口,您可能希望實際地將報表嵌入到自己的 Web 頁中。最簡單的方法就是在 Web 頁上使用 IFRAME,并使用我介紹過的基于 URL 的相同技術(shù)來設(shè)置 SRC 屬性。如果您使用這種技術(shù),切記要將 rc:LinkTarget 參數(shù)設(shè)置為 IFRAME 的名稱,以避免當(dāng)用戶單擊報表的鏈接時在框架外彈出任意一個框架。


如果您以前設(shè)計過 ASP.NET 的服務(wù)器控件,您可能會認(rèn)為 IFRAME 技術(shù)并不十分完美,因為它要求 Web 開發(fā)人員理解 Reporting Services 的 URL 參數(shù)語法才能構(gòu)建適當(dāng)?shù)?SRC 字符串。構(gòu)建一個封裝有所有參數(shù)并使開發(fā)人員可以簡單地設(shè)置諸如 ReportPath 和 Zoom 之類的參數(shù)的服務(wù)器控件難道不是一個更好的想法嗎?


Reporting Services 非常方便地附帶了名為 ReportViewer 的示例(安裝到 \Reporting Services\Samples\Applications\ReportViewer 目錄),它可以實現(xiàn)這個想法。該控件封裝了 IFRAME 和 URL 訪問參數(shù)邏輯,并提供了一個更簡單的用于將報表嵌入到應(yīng)用程序中的方法。要使用該控件,請打開并構(gòu)建 ReportViewer 解決方案,然后通過瀏覽到 ReportViewer 解決方案的 bin 目錄中的 ReportViewer.dll,切換到您的 Web 應(yīng)用程序并將該控件添加到工具箱中。
您可以使用該控件將嵌入報表添加到儀表板應(yīng)用程序中。將控件添加到 Web 頁,設(shè)置高度和寬度屬性并添加以下代碼以便在頁面中顯示一個報表:

      Private Sub Page_Load(ByVal sender As System.Object, ByVal _                      e As System.EventArgs) Handles MyBase.Load    If Not IsPostBack Then        ReportViewer1.ServerUrl = "http://MyServer/ReportServer"        ReportViewer1.ReportPath = "/SampleReports/Sales Order" & _            "Detail&SalesOrderNumber=so8153"         ReportViewer1.Toolbar = ReportViewer.multiState.False        ReportViewer1.Zoom = "75"    End IfEnd Sub
    

保證報表的安全


Reporting Services 安全性使用熟悉的基于角色的模型。用戶和組可以分配給諸如 System Administrator 或 Browser 之類的角色,特定角色的所有成員都將允許執(zhí)行為該角色定義的操作。


報表管理器用于執(zhí)行與安全性相關(guān)的任務(wù),例如,分配用戶角色或修改項(例如,報表)的權(quán)限等。默認(rèn)情況下,Administrators Windows 組同時是所有文件夾的 System Administrator 和 Content Manager 的成員。為了擴(kuò)展報表訪問到其他用戶,用戶帳戶或組必須添加到諸如 Browser 的角色中。這通常是在文件夾級設(shè)置的,同時也可以針對單獨的報表進(jìn)行重寫。


除了保護(hù)對報表的訪問外,管理員還必須決定如何將報表連接到源數(shù)據(jù)庫。可以配置數(shù)據(jù)源使用集成的安全性,以便可以使用當(dāng)前的用戶帳戶進(jìn)行數(shù)據(jù)庫連接。此外,還可以定義 Windows ? 或 SQL Server 用戶名和密碼,并將其安全地存儲在報表服務(wù)器數(shù)據(jù)庫中。這種方法要求報表運行在無用戶交互(例如,訂閱所涉及的交互)的情況下。


使用 Reporting Services Web 服務(wù)


到目前為止,我一直使用的 URL 訪問方法提供了一種快速便捷的方式來查看報表并指定參數(shù),但是它不能提供對所有可用的報表管理功能的訪問。Reporting Services 還附帶了一個具有豐富功能的 API,為您提供通過 Web 服務(wù)對高級功能的訪問。例如,該 Web 服務(wù)包括用于管理報表的數(shù)據(jù)源信息的方法或者枚舉某個文件夾中所有項的方法。


我將使用 Web 服務(wù)將報表的動態(tài)列表添加到儀表板應(yīng)用程序中。為此,您將需要使用 Add Web Reference 將一個 Web 服務(wù)引用添加到應(yīng)用程序中。指定到 Web 服務(wù)的路徑,如下所示:

      http://MyServer/ReportServer/ReportService.asmx
    

在添加引用后,您可以創(chuàng)建 ReportingService 代理類的一個實例,并調(diào)用該服務(wù)上的一個方法,就像我在此處完成的一樣:

      Private Sub LoadSampleReports()    Dim rs As New ReportingService    rs.Credentials = System.Net.CredentialCache.DefaultCredentials    Dim item As CatalogItem    For Each item In rs.ListChildren("/SampleReports", False)        If item.Type = ItemTypeEnum.Report Then            DropDownList1.Items.Add(New ListItem(item.Name, item.Path))        End If    NextEnd Sub
    

如果您正在一個 Intranet 環(huán)境中部署應(yīng)用程序,您要通過將 添加到應(yīng)用程序的 web.config 文件中來啟用模擬。您還要將客戶端登錄憑據(jù)傳遞到該服務(wù),如前面的示例所示。


ListChildren 方法返回 CatalogItem 對象的數(shù)組,該數(shù)組表示用戶有權(quán)查看的項,包括報表、文件夾和數(shù)據(jù)源。Path 屬性提供了到項的唯一路徑,例如,/SampleReports/Sales Order Detail,Type 屬性使您可以區(qū)別報表和其他類型的項。


既然我已經(jīng)將報表名稱加載到了下拉列表中,我必須決定如何在儀表板應(yīng)用程序內(nèi)顯示報表。我決定擴(kuò)展我早期編寫的 ReportViewer 代碼并且只要用戶選擇某個報表并點擊“Go”按鈕就更改 ReportPath 屬性。您還可以使用 IFRAME 并將 SRC 設(shè)置為適當(dāng)?shù)?URL(并為報表的名稱加上前綴“http:// MyServer /ReportServer?”)。


除了報表管理功能外,Web 服務(wù)提供的其他主要功能就是報表呈現(xiàn)。大多數(shù)應(yīng)用程序(包括報表管理器應(yīng)用程序)都使用 Web 服務(wù)功能來列出報表或更改設(shè)置,并使用我介紹過的 URL 方法來顯示報表。但是,如果您想要完全控制報表內(nèi)容在應(yīng)用程序中處理的方式,可以使用 ReportingService 類的 Render 方法。該方法返回一個可以在以后保存到輸出文件的字節(jié)數(shù)組;取決于請求的格式,輸出文件可以是圖形文件或 Excel 電子表格。如果您要以 HTML 格式呈現(xiàn)報表,可能會更加復(fù)雜一些,因為您將需要使用 RenderStream 方法來分別呈現(xiàn)圖像或其他資源。


盡管本文的討論重點在于 Web 應(yīng)用程序,您也可以使用相同的技術(shù)將報表生成功能添加到基于 Windows 的應(yīng)用程序中。最簡單的方法仍是使用 URL 訪問,或者從應(yīng)用程序啟動用戶的瀏覽器,或者包括 Microsoft WebBrowser ActiveX ? 控件并使用 Navigate 方法來加載適當(dāng)?shù)?URL。當(dāng)您想要更好地控制某些操作(例如,在圖片框中顯示結(jié)果或?qū)⑽募苯颖4娴酱疟P的操作)時,Web 服務(wù)的 Render 方法是一個很好的備選方法。


信息工作者通常必須處理兩種類型的報表:當(dāng)他們需要收集信息時他們想要獲得的類型以及每周都出現(xiàn)在他們桌面上或他們電子郵件中的類型。至此,我已重點闡述了用戶獲取他們自己的報表的過程,但 Reporting Services 還包括一種非常強(qiáng)大的稱為訂閱的功能,它使您可以將報表“推”給客戶。


訂閱報表


Reporting Services 訂閱功能讓用戶按照計劃接收報表。報表通常會通過電子郵件發(fā)送到用戶,但 Reporting Services 同時還讓您將報表生成到一個文件共享甚至可以編寫自己的提交擴(kuò)展。這使您可以輕松地完成分發(fā)任務(wù),例如,向每個銷售代表以電子郵件方式發(fā)送每周銷售統(tǒng)計報表,或者設(shè)置每月財政報表在每個月的最后一天運行,并將其作為一個 PDF 寫出到公司文件共享。


在設(shè)置訂閱前,您需要考慮報表將如何連接到數(shù)據(jù)庫以檢索其數(shù)據(jù)。因此,訂閱的報表將不會由用戶直接執(zhí)行,您無法為數(shù)據(jù)源使用集成的安全性,但在報表運行時必須指定要使用的用戶名和密碼。如果您試圖為使用集成安全性的報表設(shè)置訂閱,Reporting Services 將會返回一個錯誤。


要更改示例報表的數(shù)據(jù)源,請打開“Report Manager | Sample Reports”,然后單擊 AdventureWorks 數(shù)據(jù)源。該數(shù)據(jù)源由所有示例報表共享,因此對它所做的任何更改將會影響所有報表。選中“Credentials stored securely in the report server”選項,指定一個具有訪問 AdventureWorks 數(shù)據(jù)庫權(quán)限的帳戶的有效域用戶名和密碼,選中“Use as Windows credentials when connecting to the data source option”,然后單擊“Apply”按鈕。請注意,這種更改意味著指定的帳戶將始終用于連接該數(shù)據(jù)庫,不管實際上是哪個用戶運行該報表。


因此,您已經(jīng)準(zhǔn)備好深入研究并查看提供對訂閱訪問的 Web 服務(wù) API。使用 Web 服務(wù)的這一部分比使用 List 或 Render 方法要多一些挑戰(zhàn),主要原因在于可用選項的數(shù)量。我將要使用的方法是 CreateSubscription,它也屬于 ReportingService 類。有關(guān)該方法的參數(shù)的詳細(xì)說明,請參閱 ReportingService 類 ,但最基本的是您需要指定要訂閱的報表、生成計劃(例如,每周一早晨或每月的最后一個周五)、電子郵件選項(包括電子郵件地址)以及所有報表參數(shù)值。


我已經(jīng)將名為 EmailSubscriber 的實用工具類包括在本文的示例代碼中,該示例代碼摘要了某些復(fù)雜的內(nèi)容。儀表板應(yīng)用程序使用該類允許用戶指定他們的電子郵件地址并使 Employee Sales Summary 報表通過電子郵件每周一發(fā)送給他們。在產(chǎn)品應(yīng)用程序中,您可以調(diào)整每個用戶的報表,例如,當(dāng)您創(chuàng)建訂閱時,可以根據(jù)員工的 Windows 用戶帳戶檢索他們的員工 ID,然后適當(dāng)?shù)卦O(shè)置報表參數(shù)。


如果您不希望等到下周一才測試您的訂閱,它有助于您了解有關(guān) Reporting Services 如何處理訂閱計劃的更多信息。當(dāng)您創(chuàng)建一個訂閱時,Reporting Services 會創(chuàng)建一個根據(jù)要求的計劃執(zhí)行的 SQL Server 代理作業(yè)。您可以通過打開 Enterprise Manager,展開 Management、SQL Server Agent 和 Jobs 文件夾來查看這個作業(yè)。該訂閱作業(yè)將具有“Report Server”類別,并以由 Reporting Services 用來跟蹤該作業(yè)的 GUID 命名。右鍵單擊該作業(yè)并選擇 Start Job,如果您已正確地設(shè)置了您報表的方方面面,您的報表將會發(fā)送電子郵件給您。


接下來該怎么做?


您可以用來向應(yīng)用程序中添加重要報表生成功能的兩個其他 Reporting Services 功能包括 Data Driven Subscriptions 和 Snapshots,前者使您可以設(shè)置用戶的郵件列表并以電子郵件形式將特定參數(shù)化的報表發(fā)送給他們,后者是在計劃點的報表視圖,同時還可以提供報表的歷史視圖。Reporting Services 是使用模塊化的體系結(jié)構(gòu)構(gòu)建的,如果您需要更強(qiáng)大的功能,它可以使您使用自己喜好的、以 .NET 為目標(biāo)的語言來添加功能強(qiáng)大的新擴(kuò)展。

John C. Hancock 是 Microsoft 的高級顧問,致力于商務(wù)智能和 .NET 開發(fā)。他現(xiàn)在定居在多倫多,要聯(lián)系他,請訪問 http://www.johnchancock.net

摘自 2004 年 8 月 刊的 MSDN Magazine
您可以在本地報刊亭購買或者最好 訂閱

轉(zhuǎn)到原英文頁面



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=157825


利用SQL Server Reporting Services 從應(yīng)用程序生成用戶友好的報表


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人久久18免费网 | 精品免费视频 | 视频一区日韩 | 午夜色网站 | 91精品国产乱码久久久久久 | 日日碰夜夜爽 | 热热九九 | 综合色图 | 99尹人香蕉国产免费天天在线 | 91亚洲国产三上悠亚在线播放 | 色婷亚洲 | 日韩国产成人精品视频 | 日日夜夜人人 | 人人操天天射 | 久久久久久天天夜夜天天 | 日本一级毛片视频网站 | 日本亚洲精品成人 | 羞羞网站在线免费观看 | 一级欧美一级日韩毛片99 | 久久伊人精品综合观看99 | 欧美成人视 | 久久91这里精品国产2020 | 天天拍夜夜添久久精品中文 | 2021国产精品自产拍在线 | a级免费网站 | 国产精品高清在线观看地址 | 久久骚| 亚洲国产成人久久精品动漫 | 国产一级毛片国语普通话对白 | 一级毛片a女人刺激视频免费 | 爱爱爱久久久久久久 | 国产亚洲福利精品一区 | 91在线网址 | 天天干天天做 | 久久久久久久男人的天堂 | 国产人做人爱视频精品 | 国产在线毛片 | 欧美xxxx喷潮 | 一级毛片直接看 | 亚洲日本久久一区二区va | 久久精品国产亚洲网址 |