SSRS 報表不只能在入口網站瀏覽,更能無縫嵌入 WinForms / WebForms 應用。本篇示範在 ASP.NET WebForms 專案中使用 ReportViewer 控件載入遠端報表伺服器上的報表。
/Reports/ProductCatalog)。
SSRS_Demo。
ReportViewerPage.aspx。
<%@ 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();
}
}
Browser 角色,或在 web.config 設定模擬帳號。ReportPath 大小寫、參數名稱/型別是否與報表定義一致。rsreportserver.config 設定 CustomAuthentication 或使用 Proxy 頁面轉發。ReportViewer1.ServerReport.Render("PDF") 產生檔案下載。AsyncRendering 並安裝客戶端 ActiveX (僅 IE) 或使用 PDF 列印替代。OutputCache 指令減少重複請求。