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

Rob*_*son 8 reportviewer

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

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

谢谢,罗布.

Rob*_*son 13

链接到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

干杯,罗布.


Ada*_*ler 4

我曾经使用过 ReportViewer 控件,并能够在http://www.gotreportviewer.com上找到一些有用的信息