4

情况:我们使用 .NET ReportViewer(ASP.NET、RDLC)和来自我们对象模型的自定义对象设计了一个外观不错的报告页面。我的基本(并且可能是不正确的)假设是,如果我们将自定义对象的集合绑定到 ReportViewer/RDLC,控件将为集合中的每个对象构建一个填充的报表布局。

我过去的报表经验是使用 MS-Access 报表引擎,将数据源绑定到报表将导致报表布局应用于数据源中的每条记录。例如,如果报表布局跨越整个页面,则将为每个绑定记录构建一个填充的报表页面。

问题:我的同事告诉我,.NET ReportViewer 无法按照我描述的方式运行。真的吗?请告诉我他弄错了吗?有关解决方案或解决方法的任何指导?

在此先感谢,-JR

注意:原始问题标题已根据澄清答案进行了更改。

4

2 回答 2

4

简短的回答:的。ReportViewer 可以按照您描述的方式运行。(你的同事不正确。)

有几种方法可以显示数据源中的所有行,而不仅仅是第一种。我最熟悉这里描述的列表控制方法,但也有一种使用子报表或嵌套数据区域 的主从方法。

严格来说,这个问题是关于显示多个数据行,而不是自定义对象集合。您可能希望从“.NET ReportViewer 功能:绑定到自定义对象集合?”中编辑问题标题。说“.NET ReportViewer 功能:显示多行”?

在设计报表时,如果将数据源中的字段放置到报表设计器上并显示报表,您会注意到只显示一行而不是整个数据集。仔细检查后,ReportDesigner 将聚合函数 First() 包裹在您的数据字段周围。这是 ReportViewer 的默认行为。

您要做的是使用 List 控件并将您的数据字段控件放置在其中。现在,将显示所有字段行。就这么容易。

List 是成功使用 ReportViewer 的关键组件。阅读它。List 可以使用其 Group Expression 功能以及通过在其中嵌套 List/Table 控件来适应更大的复杂性。

资源

As mentioned in another post, one of the best web resources for the ReportViewer is the GotReportViewer site. There you'll find more info on using List, Master-Detail and more.

Good luck.

于 2009-12-13T18:11:57.060 回答
1

您应该可以在这里找到您的解决方案: http ://www.gotreportviewer.com/

更多关于绑定自定义类/集合 http://www.gotreportviewer.com/objectdatasources/index.html

我认为 rdlc 不会为您创建布局。

于 2009-12-11T22:12:04.570 回答