Dot-Net

使用 .NET 類作為 SSRS RDLC 的數據源

  • July 25, 2019

我在 Visual Studio 2010 中有一個 MVC4 應用程序,其中包含大量類。我正在嘗試使用它們作為報表定義語言客戶端 ( RDLC ) 文件的數據源傳入。但是我無法在數據源設計器的任何地方從我的程序集中訪問這些類

根據 MSDN Walkthrough on Using a Business Object Data Source with the ReportViewer Web Server Control in Local Processing Mode,我應該可以在 Dataset Properties 頁面中這樣做

在“數據集屬性”頁面的“數據源”框中,選擇global

根據這個關於如何在報告 (.rdlc) 中使用對像數據源的 Stackoverflow問題,當在數據集屬性頁面中時,我應該能夠像這樣創建一個新的數據源:

創建新數據源

  • 選擇對象並點擊下一步。
  • 瀏覽解決方案樹並選擇要綁定的類。
  • 點擊完成。

但這些都不是作為選項存在的……

當我創建一個新數據集時,數據源下沒有顯示任何內容:

數據集屬性

當我點擊新建創建一個新數據源時,我只是得到一個連接嚮導,它強制我連接到數據庫:

數據源配置嚮導

我在哪裡可以從我的程序集中添加類?

作為一個簡單的例子,下面是一個我希望顯示在程序集中的對象範例:

Public Class Employee
   Public Property Name As String
   Public Property ID As Integer
End Class

我最終希望以程式方式填充此資訊,如下所示:

Dim lr As New LocalReport
lr.ReportPath = Server.MapPath("~\Reports\Report1.rdlc")
lr.DataSources.Add(New ReportDataSource("Data", New Employee("Kyle",27)))

這裡有幾個解決方案,但我更喜歡第二個。

解決方案1 (好的)

由於這似乎是 MVC Web 應用程序項目類型本身的錯誤,您可以將報告添加到不同的項目類型(如類庫)。如文章Visual Studio 2010 Report Viewer - Object Datasource中所述,只需為項目創建一個單獨的庫並在其中添加 rdlc 文件。數據源配置嚮導現在應該如下所示:

數據源配置嚮導

解決方案2 (更好)

Can’t see or add Website Data Sources in RDLC report in ASP.NET MVC中所示,您可以在 MVC 項目的任何位置添加一個aspx頁面,以誘使 Visual Studio 拉入正確的設計時庫。

只需執行以下操作:

  • 關閉所有視窗
  • 清潔和重建解決方案
  • 將 WebForm1.aspx 添加到項目中
  • 打開 RDLC 文件並從下拉列表中選擇一個數據源:

數據源下拉菜單

引用自:https://stackoverflow.com/questions/27695864