首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有对象数据源的Visual Studio 2010本地SSRS报告(.rdlc)

具有对象数据源的Visual Studio 2010本地SSRS报告(.rdlc)
EN

Stack Overflow用户
提问于 2011-04-15 12:11:06
回答 5查看 20K关注 0票数 20

我在本地处理模式下使用ReportViewer 2005和2008创建了更多的项目,我的手已经数不过来了。所有Visual Studio2005或2008 ASP.NET web窗体项目。我总是在报告中使用某种风格的对象数据源。

今晚,我试图在一个Visual Studio2010MVC2项目中添加同样的功能,但失败得很惨烈。首先,Add New Item > Reporting >报告现在是2008 RDLC,而不是2005 RDLC报告。其次,在尝试添加DataSet时,我使用静态方法创建数据代理类的常用方法不会在DataSources下拉列表中显示为源

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

我被难住了。就像我提到的那样,使用ReportViewer控件呈现报表实际上没有任何问题。我不能做的是弄清楚如何用Visual Studio2010在这些新奇的2008报表中设置一个数据源,以便我可以将一个域对象列表放入ReportViewer并显示报表。

更新

通过进一步的研究,我发现MVC项目不允许在其中使用对象数据源。针对我的问题的一种解决方案是在解决方案中创建一个单独的项目-- web应用程序、服务,甚至仅仅是一个类库,以便将报表添加到其中并相应地进行设计。

我仍然在这里寻找替代方案。

EN

回答 5

Stack Overflow用户

发布于 2011-05-10 06:20:22

简而言之:是的,你可以在RDLC 2008中使用对象数据源(只是不直观而已)。下面是操作步骤:

打开RDLC页(在“设计”视图中)。稍后,"Data“选项卡将出现在Visual Studio的顶部。选择“添加新数据源”,选择“对象”,然后选择下一步。从那里,您将能够看到可以绑定到的对象列表。从你的项目中选择你的DTO/业务对象/任何东西并点击Finish。在Visual Studio左侧的Report Data侧边栏选项卡中,您将看到对象已添加。复制它生成的数据源名称(类似于"MyProject_MyObject")。

现在,在您的控制器中,您可以提取DTO/BusinessObject的IEnumerable,并将其作为数据参数和您的数据源名称传递,如下所示(对不起,没有VB语法):

代码语言:javascript
复制
ReportDataSource reportDataSource =
            new ReportDataSource("MyProject_MyObject", myIEnumerable);
票数 5
EN

Stack Overflow用户

发布于 2013-09-27 14:23:39

我也遇到了同样的问题,但是后来我将报表和实体类移到了另一个独立于WebAplication的项目中,当我这样做时,向导显示了DataBase连接之外的其他选项,因此我向C#库中添加了一个对象DataSource。然后我用this post检索报表定义并嵌入到.aspx中,希望能对大家有所帮助!!

票数 1
EN

Stack Overflow用户

发布于 2011-09-18 12:56:47

我不确定你是否看到了我所看到的,但在我看来,具有私有构造函数的类(即使是返回同一类的列表的公共静态方法)也不会出现在列表中。

Criteria for object datasources to display in Visual Studio Report New DataSet?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5672304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档