构建基于模型的RDLC报告

时间:2016-03-04 15:07:12

标签: c# asp.net report

目的

构建一个PDF文件,该文件表示在运行时创建的具有多个字段和属性的单个C#类对象。它保留了纯文本,变量,表格,图像。

我必须使用什么?

作为一项要求,我必须使用Microsoft.Reporting.WebForms.LocalReport呈现PDF报告,它可能包含子报告。

我做了什么?

到目前为止处理报告时,遵循简单模式就足够了:

ReportParameter param = new ReportParameter();
param.Name = "Param name";

但在这种情况下,我必须制作超过80个参数,我认为这不是一个好方法,所以我很好奇是否有更好的方法来做到这一点。基于SO和Google的研究人员,我可以使用System.Data.DataSet来实现我想要的目标,但是:

  • 硬编码所有参数
  • 的效果要好得多
  • 它几乎是一样的,但是我生成了额外的文件,IMO更容易使用,并且更容易理解未来代码用户的ReportParameter方式而不是被大量的额外文件所掩盖,(可能)可以避免
  • DataSet是表格数据;我有一个大模型

问题

实际上,我认为问题在于RDLC报告本身的DataSource。为数据库连接或任何与数据库相关的对象创建VS提供的方式。这就是为什么使用DataSources和DataSets的原因。我可以提供任何类型IEnumerable或IReportData(或来自数据库连接)的数据,但我的数据都不是。我已经建立了我的模型,如果可能的话我想要使用它。 我发现的大多数示例都是直接从数据库或自定义数据集创建报表。没有更多的想法如何让它工作。这就是我在这里的原因。

1 个答案:

答案 0 :(得分:0)

使用外部组件时,您可以选择:我一直在使用.NET报告组件" combit List&标签&#34 ;.它包含PDF导出和包含对象数据提供程序,它接受任何.NET对象甚至对象结构,并在表,图表等的交互式报表设计器中将对象的属性作为变量/参数提供。