我在本地处理模式下使用ReportViewer 2005和2008创建了更多项目,而不是我可以依赖的项目。所有Visual Studio 2005或2008 ASP.NET Web表单项目。我总是在报告中使用一些Object数据源。
今晚,我尝试将相同的功能添加到Visual Studio 2010 MVC 2项目中,并且失败了。首先,添加新项>报告>报告现在是2008年RDLC,而不是2005年RDLC报告。其次,在尝试添加DataSet时,我通常使用返回IEnumerables(Of Stuff)
的静态方法创建数据代理类的方法将不会显示为DataSources下拉列表中的源
第三,我的 only 选项是添加数据库连接。没有“对象数据源”可供选择:
我很难过。就像我提到的那样,使用ReportViewer控件实际呈现报表时,我没有任何问题。我不能做的是弄清楚如何使用Visual Studio 2010在这些新的2008年报告中设置数据源,以便我可以将一个域对象列表泵入ReportViewer并显示报告。
更新
通过更多研究,我发现MVC项目不允许在其中使用对象数据源。我的问题的一个解决方案是在解决方案中创建一个单独的项目 - 一个Web应用程序,一个服务,甚至只是一个类库,以便相应地添加报告并进行设计。
我仍然在寻找替代方案。
答案 0 :(得分:7)
以下是一些解决方案。第二个更好,因为它不需要不必要地复制你的组件。
添加到问题本身并在帖子Visual Studio 2010 Report Viewer - Object Datasource中描述,只需为项目创建一个单独的库并在其中添加rdlc文件。这似乎是MVC Web应用程序项目类型本身的错误,因此任何其他项目类型(如类库)都应该起作用。现在,数据源配置向导应如下所示:
如Can't see or add Website Data Sources in RDLC report in ASP.NET MVC所示,你可以在MVC项目的任何地方添加一个 .aspx 页面,以诱骗Visual Studio拉入正确的设计时库。
请执行以下操作:
打开RDLC文件并从下拉列表中选择一个DataSource:
答案 1 :(得分:5)
简短回答:是的,您可以在RDLC 2008中使用对象数据源(这不是直观的)。方法如下:
打开您的RDLC页面(在[设计]视图中)。片刻之后,“数据”选项卡将出现在Visual Studio的顶部。选择“添加新数据源”,选择“对象”,然后选择“下一步”。从那里,您将能够看到可以绑定到的对象列表。从项目中选择您的DTO /业务对象/任何内容,然后点击完成。在Visual Studio左侧的“报表数据”侧栏选项卡中,您将看到添加了对象。复制它生成的数据源名称(它将类似于“MyProject_MyObject”)。
现在在你的控制器中,你可以拉出那个DTO / BusinessObject的IEnumerable并将其作为数据参数和你的数据源名称传递给它(抱歉,没有VB语法):
ReportDataSource reportDataSource =
new ReportDataSource("MyProject_MyObject", myIEnumerable);
答案 2 :(得分:0)
我不确定你是否看到了我所看到的内容,但是在我看来,具有私有构造函数的类(即使使用公共静态方法返回同一类的列表)也不会显示在清单。
Criteria for object datasources to display in Visual Studio Report New DataSet?
答案 3 :(得分:0)
我遇到了同样的问题,但是然后将报表和实体类移到另一个与WebAplication分开的项目中,当我这样做时,向导显示除DataBase Connection之外的其他选项,所以我将一个Object DataSource添加到C#图书馆。然后我使用this post检索报告定义并嵌入到.aspx中,希望这有帮助!!
答案 4 :(得分:-1)
不会显示为DataSources下拉列表中的来源
前几天我遇到了同样的问题。我通过为VS10安装SP1解决了这个问题。 http://www.microsoft.com/download/en/details.aspx?id=23691
答案 5 :(得分:-1)
我遇到了同样的问题,并按照this说明(Zilong Lu回答),一旦我的报告处理程序和全局数据源的选项没有显示,只有连接向导。我右键单击了我的项目并单击了构建。在此之后,我尝试再次添加全局数据源,并且连接向导没有显示,但是全局数据源选项确实显示了。