在本地模式下使用Microsoft的ReportViewer控件的子报表

时间:2009-06-23 21:39:31

标签: reportviewer

当在本地模式下使用时,是否有人建议对Microsoft的ReportViewer(VS 2008风格)提供出色的参考?我目前正在使用它,但它的一部分是一个黑盒子,所以我想阅读整个主题。

特别想要开始使用子报告来显示更复杂的父子报告。我假设他们以与Crystal Reports相似的模式工作,我很熟悉。

谢谢,Rob。

3 个答案:

答案 0 :(得分:12)

http://www.gotreportviewer.com的链接是一次很好的,但它确实看起来像本地子报告的材料,而ReportViewer 2008有点稀疏并且在网络上展开。这将是一个值得写博客的主题,所以我会: - )

以下是几个头条新闻:

  1. 子报表是完全独立的报表,但使用标准报表参数机制链接到主报表。主报告配置为将其中一个或多个字段(例如主键)传递到子报告。然后子报表通常使用此参数作为其自身查询的参数来加载数据集
  2. 即使您在设计子目录时可能已经定义了数据源,但在主报表中使用时也不会使用此数据源。相反,您必须为SubreportProcessing事件实现处理程序。为添加到主报表的每个子报表调用相同的处理程序,以便查询传递给处理程序的参数以确定要加载的数据集。
  3. 对主报告中的每条记录调用一次事件处理程序。例如,如果主报表显示200条记录,则事件处理程序将被调用200次,但每次都会使用不同的参数。
  4. 因此,你必须警惕性能。我运行的第一份报告有2000条记录(对于平面报告完全没问题)但是这2000条记录中的每条记录都为子报告获取了20条儿童记录。它确实运行但在报告发布前花了几分钟
  5. 如果您可以构建数据以便可以使用包含主数据和子报表数据的单个数据集,则嵌套数据区域具有更好的性能 - 只有一个查询返回2,000个记录而不是2,000个单独查询。请参阅http://www.gotreportviewer.com/masterdetail/index.html
  6. 干杯,罗布。

答案 1 :(得分:4)

我曾一度使用ReportViewer控件,并且能够在http://www.gotreportviewer.com找到一些好的信息

答案 2 :(得分:1)