导出基于 Web 的报表

客户端报表打印的最常用方法是用户将报表导出为可以从他们的客户机打印的格式。

要为用户设置导出选项,请在 Web 窗体中添加一个导出按钮。当用户单击此按钮时,报表导出到 Web 服务器并且将导出文件传送给客户端机器。用户使用他或她的计算机上可以读取导出的文件格式的应用程序打印该文件。

Crystal Reports 提供了导出为几种不同格式的能力,包括 Adobe PDF 和 Microsoft Word。有关支持的导出格式的列表,请参见报表分发

导出为 PDF

下面的示例演示如何将报表导出为 PDF 格式并将其发送到客户端机器。

注意   ASPNET 帐户必须具有写入将报表导出到的文件夹的权限。如果该文件夹没有至少设置更改权限,您将会收到一条错误消息,告诉您临时报表文件出错。出现这条错误消息是因为 ASPNET 帐户在导出时创建了一个临时报表文件,但是在试图将该报表文件写入到导出文件夹时由于权限不足而失败。手动创建的文件夹可能不会自动将完全控制赋予 ASPNET 帐户。

[Visual Basic]

' 定义 Crystal Reports 变量
Dim crReportDocument As ReportDocument
Dim crExportOptions As ExportOptions
Dim crDiskFileDestinationOptions As DiskFileDestinationOptions
Dim Fname as String

' 以下代码可以直接放在窗体的构造函数中对 
'  InitializeComponent() 的调用之后,或者放在 ,
'  Button_Click 事件内部,在该事件中,客户端使用该按钮
'  来获取报表的可打印副本。

crReportDocument = New ReportDocument()
' 以下代码行加载 
'  示例报表“Chart.rpt”
crReportDocument.Load ("C:\Program Files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples\Chart.rpt")

Fname = "c:\exports\" & Session.SessionID.ToString & ".pdf"
crDiskFileDestinationOptions = New DiskFileDestinationOptions()
CrDiskFileDestinationOptions.DiskFileName = Fname
crExportOptions = crReportDocument.ExportOptions
With crExportOptions
   .DestinationOptions = crDiskFileDestinationOptions
   .ExportDestinationType = ExportDestinationType.DiskFile
   .ExportFormatType = ExportFormatType.PortableDocFormat
End With
crReportDocument.Export()
' 以下代码将 pdf 文件写入 
'  客户端浏览器。
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(Fname)
Response.Flush()
Response.Close()

' 从磁盘删除导出的文件
System.IO.File.Delete(Fname)

请参见

打印 Web 窗体 Viewer 中的报表| 自定义导出选项