使用.NET Class作为SSRS RDLC的数据源

Kyl*_*Mit 6 .net rdlc visual-studio-2010 reporting-services asp.net-mvc-4

我在Visual Studio 2010中有一个包含大量类的MVC4应用程序.我正在尝试使用它们作为报表定义语言客户端(RDLC)文件的DataSource传入.但我无法从数据源设计器中的任何位置访问我的程序集中的类

根据在本地处理模式下使用ReportViewer Web服务器控件使用业务对象数据源的MSDN演练,我应该可以在"数据集属性"页面中执行此操作

在" 数据集属性"页面的" 数据源"框中,选择" 全局".

根据这个Stackoverflow关于如何在报表(.rdlc)中使用对象数据源的问题,在数据集属性页面中,我应该能够创建一个新的数据源,如下所示:

创建新数据源:

  • 选择Object,然后单击Next.
  • 浏览解决方案树并选择要绑定到的类.
  • 单击完成.

但这些都不是选项......

当我创建新数据集时,数据源下没有任何内容显示:

数据集属性

当我单击New来创建一个New DataSource时,我只是得到一个强制我连接到数据库的连接向导:

数据源配置向导

我在哪里可以从程序集中添加类?

作为一个简单的例子,这里是我在程序集中内置的一个对象的例子,我期望它出现:

Public Class Employee
    Public Property Name As String
    Public Property ID As Integer
End Class
Run Code Online (Sandbox Code Playgroud)

我最终希望以编程方式填充此信息,如下所示:

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

Kyl*_*Mit 13

这里有几个解决方案,但我更喜欢第二个解决方案.

解决方案1 (好的)

由于这似乎是MVC Web应用程序项目类型本身的错误,您可以将报告添加到不同的项目类型(如类库).如后期Visual Studio 2010报表查看器 - 对象数据源中所述,只需为项目创建一个单独的库并在其中添加rdlc文件.数据源配置向导现在应如下所示:

数据源配置向导

解决方案2 (更好)

在ASP.NET MVC中的RDLC报告中看不到或添加网站数据源,您只需在MVC项目的任何位置添加一个aspx页面,以诱使Visual Studio引入正确的设计时库.

只需执行以下操作:

  • 关闭所有窗户
  • 清洁和重建解决方案
  • 将WebForm1.aspx添加到项目中
  • 打开RDLC文件并从下拉列表中选择一个DataSource:

    DataSource下拉列表