即时生成水晶报表
Posted
技术标签:
【中文标题】即时生成水晶报表【英文标题】:Generate Crystal Report 'on the fly' 【发布时间】:2010-01-08 20:17:05 【问题描述】:我正在做一个 Asp.Net 应用程序,它最终会使用用户输入的参数生成“动态”报告。我正在尝试了解如何动态生成 Crystal Report 报表。
实际上,我已经调用了一个存储过程并用结果填充了一个 DataTable。但是我的问题缺少一部分。如何使用 DataTable 填充 CrystalReportViewer。
我想我必须创建一个 .rpt 文件并填充它,但这不是无用的代码重复吗?
谢谢
【问题讨论】:
您确实需要一个 .rpt,这是您的报告定义。水晶报表查看器可让您查看实际报表。使用水晶时,有两种方法可以将数据导入其中,您可以使用报表从数据源中提取数据,也可以将数据推送到报表中,例如为报表创建 xsd、构建数据集并将此数据集推送到报表中。 好的,谢谢。你能告诉我在哪里可以获得有关这些 rpt 文件的资源吗?我不太明白它们是如何工作的以及如何正确构建它们。 【参考方案1】:这并不是您要找的……但这是我们用来即时生成 Crystal Reports 的 PDF 副本的代码 sn-p。
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Using rpt As New ReportDocument()
With rpt
.Load("/Path/To/RTPFile.rpt", OpenReportMethod.OpenReportByTempCopy)
.SetDataSource(dataSource)
.ExportToDisk(ExportFormatType.PortableDocFormat, "/Path/To/Report.pdf")
End With
rpt.Close()
End Using
在这种情况下,“数据源”是一个 XSD 数据集,已加载准备就绪的报表数据。
【讨论】:
【参考方案2】:水晶报表不需要数据表,但需要 rpt 文件。您可以使用存储过程作为水晶报表的数据源,而不是填充数据表。将数据源设置为存储过程的最简单方法是在 .rpt 文件中。在 Visual Studio 中的 Crystal Reports ->Database->Database Expert 下,然后选择您的数据库和您希望用作数据源的存储过程。
【讨论】:
如何将数据源设置为存储过程?以上是关于即时生成水晶报表的主要内容,如果未能解决你的问题,请参考以下文章