當專案不想部署、維護獨立 SSRS 報表伺服器時,「客戶端報表」(RDLC, Report Definition Language Client-side) 是最佳替代方案。它直接在 ASP.NET WebForms / WinForms 中解析渲染,無需 Report Server 實例。
SalesReport.rdlc。
RDLC 新增資料集的方式與 RDL 不同:
web.config 連線字串,可直接引用。SalesDataSet)。<%@ 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="600px"></rsweb:ReportViewer>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/SalesReport.rdlc");
// 若報表有參數,在此設定 ReportParameter 集合
ReportViewer1.LocalReport.Refresh();
}
}
| 特性 | RDL (Server Report) | RDLC (Client Report) |
|---|---|---|
| 需報表伺服器 | 是 | 否 |
| 訂閱/排程 | 內建 | 需自行實作 |
| 資料處理 | 伺服器端 | 用戶端記憶體 |
| 大量資料效能 | 佳 | 受限於客戶端記憶體 |
| 部署複雜度 | 高 | 低 (隨應用程式部署) |
適用場景:中小型報表、開發/測試環境、不想維護額外伺服器的專案。