6.1.6  水晶报表导出数据技术

对象模型最常见的应用方法之一是运行报表并导出到另一种文件格式。 ReportDocument 对象是 CrystalDecisions.CrystalReports.Engine 命名空间下的成员类,它表示一个报表,并且包含定义、格式化、加载、导出和打印该报表的属性和方法。 ReportDocument 对象提供以下几种导出报表数据的方法。

l          ExportToDisk 方法

将报表以指定格式导出到文件中。这是导出报表最简单的方法;通过接受变量来指定导出格式类型和导出的文件名。在只需要导出一个文件到磁盘上的时候,这种方法很有用。

语法:

public virtual void ExportToDisk(CrystalDecisions.Shared.ExportFormatTypeformatType ,string fileName )

参数说明:

formatType :用来导出报表的格式类型。 FormatType 值是一个 ExportFormatTypeformatType 枚举类型值, ExportFormatTypeformatType 枚举类型值及说明如表 6.4 所示。

FileName :用来导出报表的文件名。

6.4                ExportFormatTypeformatType 枚举值及说明

成员

说明

CrystalReport

报表的导出格式是Crystal Report文件

Excel

报表的导出格式是Microsoft Excel文件

ExcelRecord

报表的导出格式是Excel记录文件

HTML32

报表的导出格式是HTML 3.2文件

HTML40

报表的导出格式是HTML 4.0文件

NoFormat

未指定导出格式

PortableDocFormat

报表的导出格式是PDF文件

RichText

报表的导出格式是Rich Text文件

WordForWindows

报表的导出格式是Microsoft Word文件

l          ExportToStream 方法

此方法只能接受一个单独的变量,导出格式类型。方法返回值是 System.IO.Stream 对象。

语法:

public virtual System.IO.Stream ExportToStream(CrystalDecisions.Shared.ExportFormatType formatType)

参数说明:

formatType :用来导出报表的格式类型。 FormatType 值是一个 ExportFormatTypeformatType 枚举类型值, ExportFormatTypeformatType 枚举类型值及说明如表 6.4 所示。

返回值:包含字节序列形式的导出报表的流。

l          ExportToHttpResponse 方法

此方法将报表以指定格式导出到响应对象中。其有两种重载形式。

语法:

public virtual void ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType formatType,System.Web.HttpResponseresponse,bool asAttachment,string p_w_uploadName);

参数说明:

formatType :用来导出报表的格式类型。 FormatType 值是一个 ExportFormatTypeformatType 枚举类型值, ExportFormatTypeformatType 枚举类型值及说明如表 6.4 所示。

Response :页面的响应对象。

AsAttachment :指示是否将报表导出为响应的附件。

AttachmentName :用来导出报表的文件名。

Public virtual void ExportToHttpResponse(CrystalDecisions.Shared.ExportOptions options,
System.Web.HttpResponse response ,bool asAttachment ,string p_w_uploadName);

参数说明:

options :报表的导出选项。

response :页面的响应对象。

asAttachment :指示是否将报表导出为响应的附件。

p_w_uploadName :用来导出报表的文件名。

ExportToHttpResponse() 方法不支持导出为 HTML32 HTML40 格式的 HTTP 响应。因此,当尝试导出为 HTML32 HTML40 时,会出现错误消息。

如果 asAttachment 布尔值变量设置为 True ,则会出现 文件下载 对话框。如果 asAttachment 布尔值变量设置为 False ,导出的报表会在浏览器窗口中打开。

当选择保存文件时,文件名设置为 p_w_uploadName 字符串变量。如果不指定 p_w_uploadName 变量,则默认文件名为 无标题 ,并带有指定的文件扩展名。可在 另存为 对话框中更改文件名。

l          Export 方法

将报表导出到在 ExportOptions 对象内指定的格式和目标。

语法:

public virtual void Export(CrystalDecisions.Shared.ExportOptions options);

参数说明:

options :导出报表的格式和目标。

此方法可以接受名为 ExportOptions 的对象作为变量,描述导出格式类型和目的类型。

ExportOptions 对象是 CrystalDecisions.Shared 命名空间下的一个类,它提供属性,以便检索和设置用于导出报表的选项。

ExportOptions 对象常用的属性及说明如表 6.5 所示。

6.5                    ExportOptions 对象常用的属性及说明

属性

说明

DestinationOptions

获取或设置 DestinationOptions

ExportDestinationOptions

获取或设置报表的导出目标选项

ExportDestinationType

获取或设置导出目标类型

ExportFormatOptions

获取或设置 FormatOptions

ExportFormatType

获取或设置导出格式类型

FormatOptions

获取或设置 FormatOptions

下面对比较重要的属性进行详细介绍。

1 DestinationOptions 属性

获取或设置 DestinationOptions

语法:

public object DestinationOptions{get; set;}

DestinationOptions 对象包括 DiskFileDestinationOptions ExchangeFolderDestinationOptions MicrosoftMailDestinationOptions 对象。

l          DiskFileDestinationOptions 对象

检索和设置导出到磁盘时的文件名。如果将报表导出至一个磁盘文件,使用 DiskFileDestinationOptions 对象的 DiskFileName 属性来设置目的文件的完整路径与文件名称。

l          ExchangeFolderDestinationOptions 对象

检索和设置导出到 Microsoft Exchange 文件夹时的选项。如果将报表导出至 Microsoft Exchange 文件夹,应使用 ExchangeFolderDestinationOptions 对象的下列属性进行相关设置,如表 6.6 所示。

6.6            ExchangeFolderDestinationOptions 对象常用的属性及说明

属性

说明

DestinationType

获取或设置导出目标类型

FolderPath

获取或设置Exchange文件夹的路径,该文件夹用于导出到Exchange的报表

Password

获取或设置Exchange密码

Profile

获取或设置访问Exchange文件夹的用户配置文件,该文件夹用于导出到Exchange的报表

l          MicrosoftMailDestinationOptions 对象

提供属性,以便检索和设置导出到 Microsoft mail 时的选项。如果将报表导出至 Microsoft mail ,应使用 MicrosoftMailDestinationOptionss 对象的下列属性进行相关设置如表 6.7 所示。

6.7           MicrosoftMailDestinationOptions 对象常用属性及说明

属性

说明

MailCCList

获取或设置通过电子邮件发送的报表的副本(抄送)列表

MailMessage

获取或设置包含在通过电子邮件发送的报表中的电子邮件

MailSubject

获取或设置要通过电子邮件发送的报表的电子邮件主题

MailToList

获取或设置要通过电子邮件发送的报表的收件人列表

Password

获取或设置登录电子邮件账户时所需的密码

UserName

获取或设置登录电子邮件账户时所需的用户名