Cᴏʀ*_*ᴏʀʏ 20 vb.net reportviewer rdlc visual-studio-2010 asp.net-mvc-2
我在本地处理模式下使用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中的源下拉列表

第三,我唯一的选择是添加数据库连接.没有"对象数据源"可供选择:

我很难过.就像我提到的那样,使用ReportViewer控件实际呈现报表时,我没有任何问题.我不能做的是弄清楚如何使用Visual Studio 2010在这些新的2008年报告中设置数据源,以便我可以将一个域对象列表泵入ReportViewer并显示报告.
UPDATE
通过更多的研究,我发现MVC项目不允许在其中使用对象数据源.我的问题的一个解决方案是在解决方案中创建一个单独的项目 - 一个Web应用程序,一个服务,甚至只是一个类库,以相应地添加报告和设计它.
我还在这里寻找替代品.
这里有几个解决方案.第二个更好,因为它不需要不必要地复制你的程序集.
如添加到问题本身并在Visual Studio 2010报表查看器 - 对象数据源中添加,只需为项目创建一个单独的库并在其中添加rdlc文件.这似乎是MVC Web应用程序项目类型本身的错误,因此任何其他项目类型(如类库)都应该起作用.数据源配置向导现在应如下所示:

如在ASP.NET MVC中的RDLC报告中看不到或添加网站数据源,您可以在MVC项目的任何位置添加.aspx页面,以欺骗Visual Studio引入正确的设计时库.
只需执行以下操作:
打开RDLC文件并从下拉列表中选择一个DataSource:

简短的回答:是的,你可以在RDLC 2008中使用对象数据源(它只是不直观).这是如何做:
打开RDLC页面(在[Design]视图中).片刻之后,"数据"选项卡将出现在Visual Studio的顶部.选择"添加新数据源",选择"对象",然后选择"下一步".从那里,您将能够看到可以绑定到的对象列表.从项目中选择您的DTO /业务对象/任何内容,然后点击完成.在Visual Studio左侧的"报表数据"侧栏选项卡中,您将看到添加了对象.复制它生成的数据源名称(它将类似于"MyProject_MyObject").
现在在你的控制器中,你可以拉出那个DTO/BusinessObject的IEnumerable并将其作为数据参数和你的数据源名称传递给它(抱歉,没有VB语法):
ReportDataSource reportDataSource =
new ReportDataSource("MyProject_MyObject", myIEnumerable);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19467 次 |
| 最近记录: |