首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SSRS 入門(四):在應用程式中整合 SSRS 報表——ReportViewer 實作指南

     編輯:關於SqlServer

SSRS 報表不只能在入口網站瀏覽,更能無縫嵌入 WinForms / WebForms 應用。本篇示範在 ASP.NET WebForms 專案中使用 ReportViewer 控件載入遠端報表伺服器上的報表。

環境準備

  • Visual Studio 2012 (或更新版本),目標 .NET Framework 4.5+。
  • 已部署報表至 SSRS 報表伺服器,記下報表路徑 (如 /Reports/ProductCatalog)。
VS 2012 啟動頁

建立 ASP.NET 專案並加入報表頁面

  1. 新建專案:ASP.NET Empty Web Application,命名 SSRS_Demo。
  2. 新建專案對話框
  3. 方案總管右鍵專案 → Add → New Item → Web Form,命名 ReportViewerPage.aspx。
  4. 新增 Web Form

註冊並配置 ReportViewer 控件

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%" Height="800px"
    AsyncRendering="true" SizeToReportContent="true"></rsweb:ReportViewer>

後端程式碼:指定遠端報表與參數

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri("https://ssrs-server/ReportServer");
        ReportViewer1.ServerReport.ReportPath = "/Reports/ProductCatalog";

        // 設定報表參數 (若有)
        var paramsList = new List
        {
            new ReportParameter("CategoryID", Request.QueryString["cat"] ?? "1"),
            new ReportParameter("Year", DateTime.Now.Year.ToString())
        };
        ReportViewer1.ServerReport.SetParameters(paramsList);
        ReportViewer1.ServerReport.Refresh();
    }
}

常見問題排查

  • 401 未授權:確認應用程式池身份具備 SSRS Browser 角色,或在 web.config 設定模擬帳號。
  • 報表不顯示/空白:檢查 ReportPath 大小寫、參數名稱/型別是否與報表定義一致。
  • 跨網域 Cookie 問題:若 SSRS 與應用不同網域,需在 SSRS rsreportserver.config 設定 CustomAuthentication 或使用 Proxy 頁面轉發。

進階技巧

  • 匯出按鈕客製化:隱藏預設工具列,自行呼叫 ReportViewer1.ServerReport.Render("PDF") 產生檔案下載。
  • 列印控制:啟用 AsyncRendering 並安裝客戶端 ActiveX (僅 IE) 或使用 PDF 列印替代。
  • 效能優化:對固定參數報表啟用 SSRS 快取;前端加入 OutputCache 指令減少重複請求。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved