【发布时间】:2016-03-04 15:07:12
【问题描述】:
目标
构建一个 PDF 文件,该文件表示在运行时创建的具有多个字段和属性的单个 C# 类对象。它包含纯文本、变量、表格、图像。
我必须使用什么?
作为一项要求,我必须使用Microsoft.Reporting.WebForms.LocalReport 呈现 PDF 报告,并且它可能包含子报告。
我做了什么?
到目前为止,在处理报表时,遵循简单的模式就足够了:
ReportParameter param = new ReportParameter();
param.Name = "Param name";
但在这种情况下,我必须制作超过 80 个参数,我认为这不是一个好方法,所以我很好奇是否有更好的方法来做到这一点。根据我在 SO 和 google 上的研究人员,我可以使用 System.Data.DataSet 来实现我想要的,但是:
- 硬编码所有参数只会稍微好一点
- 几乎是一样的,但是我生成了额外的文件,IMO 对于未来的代码用户来说,使用和理解 ReportParameter 方式比埋在大量额外文件中更容易,这(也许)是可以避免的
- DataSets 用于表格数据;我有一个大模型
问题
实际上,我认为问题出在 RDLC 报告本身的 DataSource 上。 VS 提供的方式是为数据库连接或任何与数据库相关的对象创建的。这就是使用 DataSources 和 DataSets 的原因。我可以提供任何类型为 IEnumerable 或 IReportData(或来自数据库连接)的数据,但我的都不是。我已经建立了我的模型,如果可能的话,我想使用它。 我发现的大多数示例都是直接从数据库或自定义数据集创建报告。没有更多的想法如何使它工作。这就是我在这里的原因。
【问题讨论】: