7

我如何集成ReportViewer到 asp.net MVC 项目中?

我想添加MVCProject.Model命名空间的业务对象。ReportViewer允许 DataSet 的业务对象。

是否可以选择其他数据源,例如LinqDataSource或 Direct object to LINQ-to-SQL class objects?

在 MVC 项目中添加报告的最佳解决方案是什么?

4

4 回答 4

2

我有一个未经测试但可能有效的想法。1- 将报表查看器控件放置在标准 ASP.Net Web 表单页面中(例如 ReportViewer.aspx) 2- 在 MVC 下,添加一个引用此 ReportViewer.aspx 页面的 iframe 3- 使用会话或查询字符串将参数传递给页面

让我知道这个是否奏效

于 2009-11-21T10:55:43.757 回答
2

另一种方法是在报告服务器上生成报告,然后将其作为 PDF 流式传输到 mvc 应用程序。

于 2009-09-17T21:03:03.673 回答
1

会很艰难 首先,您需要 ViewState,因此您需要在常规 WebForms 页面中托管报表。不过这还不错——WebForms 和 MVC 可以很好地并行工作。

困难的部分是绑定到真正的 IEnumerable 对象,而不是那些虚假的对象数据源。

第一步是建立报表数据模型。您可以在代码中使用查询来执行此操作,无论您想要什么。像这样(但显然更大)的结构是典型的:

public class ReportSource
{   
   public Floogle[] Floogles { get; set; }
}

public class Floogle
{
    public Doodad[] Doodads { get; set; } 
    public string Text { get; set; }
}

public class Doodad
{
    public int Number { get; set; }
}

诀窍是在报表中使用 BindingSource 控件并将 DataSource 属性设置为typeof(ReportSource)- 是的,数据源是报表模型的类型。

在设计报表时,您不会获得很多丰富性,但您可以做到。

就第三方报告解决方案而言,我们发现 Telerik 是最佳选择。

于 2009-05-19T12:38:00.827 回答
0

我有一个小项目,我在 codeplex 上抛出了一个带有报告的 mvc 项目。

http://mvctaskmanagement.codeplex.com/

基本上,因为我在 XP 机器上进行开发,所以我的 Web 表单必须被推送到一个单独的项目中。因为我有一个服务层项目,所以我把它卡在那里。

从那里我通过 ajax 帖子调用我的报告,将参数拍摄到报告页面,然后将其传递到用于生成预览的同一服务层。

祝你好运!

于 2009-09-25T03:21:33.993 回答