熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

用 SQL Server從應用程序生成用戶友好的報表

2013-11-15 14:32:37  來源: SQL Server 

  靈活的報表功能是大多數業務應用程序的一個要求這些報表功能在集成到 Web 應用程序中之後用途更加廣泛利用 SQL Server® Reporting Services 的最新版本您可以輕松地具有來自各種數據源的報表生成功能在本文中我將介紹使用 Visual Studio® 和 Reporting Services 來編寫報表並演示如何將報表集成到 Web 應用程序中
  
  Reporting Services 是基於服務器的報表生成平台該平台構建在 NET Framework 上並與 SQL Server 集成在一起因此您可以使用一個擴展的基於 Web 服務的 API 將豐富的報表生成功能集成到應用程序中盡管報表服務器使用 SQL Server 作為報表的儲存庫但利用 OLE DBODBC 或 ADONET 提供程序的任何數據源都可以用來為報表提供數據這就使得 Reporting Services 成為在各種企業環境中生成報表的極佳工具
  
  Reporting Services 是作為 SQL Server 的一部分而授權的因此如果您有已授權的 SQL Server 的副本則可以在同一服務器上運行 Reporting Services 而無需支付額外的許可證費用如果您決定在獨立的尚未經 SQL Server 授權的計算機(例如Web 服務器)上運行 Reporting Services您將需要購買額外的 SQL Server 許可證
  
  要開始使用 Reporting Services您可以下載位於 SQL Server Reporting Services 的 天試用版軟件它還包括有關如何獲得該產品的安裝媒體的說明在安裝該產品時請確保選中包括示例報表的選項因為我要將這些報表集成到本文的 Web 應用程序中
  Reporting Services 概述
  
  Reporting Services 報表設計使用新的 Visual Studio NET 報表設計器在安裝有 Visual Studio 的同一計算機上安裝了 Reporting Services 後該設計器就可以使用設計器以新的基於 XML 報表定義語言 (RDL) 輸出報表布局和數據訪問的說明而 RDL 文件會發布到報表服務器如果您希望為用戶提供創作功能也可以使用第三方的報表設計器
  
  管理員可以使用基於 Web 的報表管理器來管理已發布的報表並且可以執行一些任務例如保證某些用戶組報表的安全或更改已部署報表的數據源連接字符串用戶也可以使用報表管理器來浏覽和查看報表但是很多公司傾向於使用 URL 請求或 Reporting Services Web 服務將報表查看直接集成到它們現有的內部 Web 站點或應用程序中
  
 

  可以將報表參數化這樣用戶可以在查看報表時從選擇列表中進行挑選它們還可以導出為多種格式例如Microsoft®ExcelPDF 和 XML盡管實時報表提供最新的數據也可以將報表緩存一段時間以提高性能並減少數據源上的負載對於商務智能應用程序報表可以訪問 Analysis Services OLAP 多維數據集而且 Reporting Services 甚至可以導入現有的 Microsoft Access 報表盡管由於這兩種技術間存在差異它並不能支持所有的 Access 功能有關 Reporting Services 體系結構的詳細情況請參見圖
  
  設計第一個報表
  盡管我介紹的重點在於將報表集成到應用程序中而不是創作報表但熟悉 Reporting Services 的最好辦法就是立即著手創建一個新的報表項目為此請打開 Visual Studio 並使用 Report Project Wizard 創建一個新的項目該向導位於 Business Intelligence Projects 部分為您的項目指定一個名稱單擊OK然後將顯示報表向導對話框在您選擇數據源的這一步驟中單擊Edit按鈕以便指定連接到您數據庫服務器上的 AdventureWorks單擊OK然後選中使其成為共享數據源的選項
  
  單擊Next進入到Design the Query步驟指定簡單的 SQL 語句(例如SELECT * FROM Product然後單擊NextReporting Services 支持顯示一組固定列的標准表格式 (Tabular) 報表也支持使用帶有動態列的交叉表樣式視圖的矩陣式 (Matrix) 報表因此為該報表選擇 Tabular然後單擊Next
  
  將某些列(例如ProductID 和 Name)拖到 Details 部分並單擊Next選擇默認的 Bold 樣式單擊Next然後指定您的報表服務器的虛擬目錄的 URL例如//MyServer/ReportServer現在單擊Next最後一步您可以為您的第一個報表指定名稱例如Products Report然後單擊Finish
  
  該向導將會創建該項目同時還創建一個可以由多個報表共享 AdventureWorks 數據源以及一個在設計器中打開的有關 Products 數據的報表(請參見圖 默認情況下顯示使您可以修改報表設計的 Layout 選項卡
  
  
 

  Data 選項卡用於指定報表的查詢包括設置參數以便在執行報表時提示用戶提供值單擊Preview選項卡來測試報表顯示給用戶的方式
  
  現在您可以將附加的報表添加到該項目或者通過添加附加列將數據分組添加匯總甚至是添加能夠顯示來自其他查詢的數據的附加表來修改 Products 報表與很多報表設計器不同Reporting Services 使用帶外設計這使得它可以輕松地創建將各種源的數據集中在同一個位置的報表
  
  您剛剛創建的報表項目由當前駐留在您的開發計算機上的一組文件組成為了將這些報表發布給用戶您需要將該項目部署到報表服務器
  
  部署和測試
  在部署報表項目之前需要指定將項目部署到哪一個服務器如果您最初使用該向導創建了報表項目那麼您可能已經指定了目標服務器
  
  要檢查該設置或指定一個新服務器請選擇Project | Properties來顯示 Project Properties 對話框進行該設置使您可以指定項目的文件夾名和 Reporting Services Web 服務的 URL在菜單上選擇Build | Deploy Solution將構建報表項目然後將其部署到服務器
  
  在部署報表項目後您就可以進行測試了已部署到服務器的每個報表都具有唯一的路徑該路徑可以用於在浏覽器中顯示報表例如要顯示您創建的第一個報表請打開浏覽器並導航到//MyServer/ReportServer?/Report+Project/Products+Report這會以 HTML 格式呈現報表並在頁面的頂端顯示一個工具欄以便使您可以對報表進行翻頁更改縮放比例甚至以各種其他格式(例如PDF)查看報表
  
  您還可以通過導航到服務器上的以下 URL來浏覽已部署到服務器的所有報表項目的列表//MyServer/ReportServer報表服務器提供使您可以查看已部署的報表類型和查看報表的最小的用戶界面
  
  報表管理器是一個更加友好功能更豐富的工具可以通過簡單地導航到本地服務器上的以下 URL 來訪問該工具//MyServer/Reports
  
  將報表添加到 Web 應用程序
  既然您知道如何設計部署和測試報表就讓我們將這些報表集成到應用程序中吧!很多 Web 應用程序都包括針對每個用戶的自定義主頁通常稱為儀表板這個頁面通常提供針對用戶量身定做的摘要式信息並作為跳轉點來訪問應用程序的其他功能
  
  我將使用 Reporting Services 附帶的示例報表構建一個儀表板來演示報表集成如圖 所示如果您在安裝過程中安裝了示例報表您可以打開該報表項目(安裝到 \Reporting Services\Samples\Reports)並將其部署到測試服務器您可以使用報表管理器工具通過浏覽到 SampleReports 文件夾來測試示例報表
  
  

  為用戶提供從應用程序訪問報表的權限的最簡單方法就是使用超級鏈接如您已經看到的那樣每個報表都具有唯一的用於在浏覽器中顯示報表的路徑對於儀表板應用程序報表應該在單獨的窗口中打開因此我將為該超級鏈接指定一個目標到目前為止這是非常簡單的但是對於具有參數報表的報表(例如Employee Sales Summary 報表)來說情況又如何呢?要真正地將報表集成到應用程序中您通常需要為參數指定某些值以便用戶不會被經常提示
  
  Reporting Services 使這項任務非常簡單報表參數的值可以指定為 URL 的一部分例如Employee Sales Summary 報表具有 ReportYearReportMonth 和 EmpID 參數因此顯示編號為 的員工在 月份的銷售額的超級鏈接可以是
  
    Summary&ReportMonth=&EmpID= target=_blank>November Sales Summary
  
  
  不具有在 URL 中指定的值的參數將使用在報表設計器中設置的默認值因此剛才展示的示例銷售匯總報表使用的 ReportYear 值是 Reporting Services 還有一組用於控制報表顯示方式的內置參數這些參數通過加上前綴rs:來區別您自己的報表參數
  
  其中最有用的一個參數就是 rs:Format 參數它用於指定呈現報表的格式這使您可以包括不需要顯示在 HTML 中的報表還可以使用諸如 PDF 甚至是 XML 的格式其他常用參數是 rs:Command指示出要應用到您所指定的路徑的操作例如rs:Command=Render 將呈現一個報表而 rs:Command=ListChildren 將列出文件夾中所有項
  
  如果您沒有指定命令Reporting Services 將查看您指定的路徑並計算出要采取的適當操作例如呈現報表 顯示了 rs:parameters 的列表
  另一組內置參數控制各種輸出格式的行為並使用 rc:prefix每個報表格式都具有其自己特定的一組參數例如要以沒有標題行的逗號分隔值 (CSV) 格式呈現報表您應該使
From:http://tw.wingwit.com/Article/program/SQLServer/201311/21969.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.