自定义导出选项
Crystal Report 引擎使您能够通过多种方式传递报表。使用导出选项,可将报表发送到磁盘文件、“交换”文件夹或 MS Mail (MAPI)。该报表可导出为以下格式:Excel、Crystal Reports、Microsoft Word、HTML、Portable Document Format (PDF) 或 Rich Text (RTF)。
用户的导出选项有三种设置方法:
- 保留 CrystalReportViewer 工具栏上的默认“导出专家”按钮。
- 创建自己的按钮,该按钮调用“导出专家”对话框。此方法使您能够在不需要标准工具栏的其他功能或需要自定义该界面时隐藏标准工具栏。这只适用于 Windows 窗体 Viewer。
- 编写代码以指定特定的导出类型和目的地。
用“导出”按钮导出报表
“导出”按钮位于 CrystalReportViewer 工具栏的左上角。用户单击“导出”按钮时,出现一对话框,提示用户选择导出格式。
“导出”按钮会自动出现,除非您禁用查看器工具栏(在这种情况下,可提示用户选择导出选项,也可使用代码通过特定选项进行导出)。
提示用户选择导出选项
如果仅需要 CrystalReportViewer 工具栏中的“导出”按钮,则可禁用该工具栏,创建自己的“导出”按钮。该功能只适用于 Windows 窗体 Viewer。
创建自定义“导出专家”按钮
向窗体添加“按钮”控件。
双击“按钮”控件以指定 Click 事件的代码。根据所用语言在相应源文件中插入适当的代码(选自下列示例)。
[Visual Basic]
crystalReportViewer1.ExportReport ()
[C#]
crystalReportViewer1.ExportReport ();
[C++]
crystalReportViewer1->ExportReport ();
[VJ#]
crystalReportViewer1.ExportReport ();
当用户单击该按钮时,“导出”对话框将提示用户从 Crystal Reports for Visual Studio .NET 提供的各种导出格式选项中选择其中之一。
通过代码设置导出选项
可通过在代码中设置导出目的地、格式和文件名来设置报表导出选项。
注意 DestinationType、FormatType 或 DiskFileName 没有默认值;因此,必须为这三个字段指定值。这可通过报表引擎实现。
以下是将报表按 Microsoft Excel 8.0 格式导出到磁盘的示例。
要设置导出选项,请执行下列操作:
向窗体添加“按钮”控件。
为“按钮”的“文本”属性键入“导出到 MS Excel 文件”。
双击“按钮”控件以指定 Click 事件的代码。根据所用语言在相应源文件中插入适当的代码(选自下列示例)。 [Visual Basic] ' 声明变量并获取导出选项。 Dim exportOpts As New ExportOptions() Dim diskOpts As New DiskFileDestinationOptions() Dim excelFormatOpts As New ExcelFormatOptions() exportOpts = Report.ExportOptions
' 设置 Excel 格式选项。 excelFormatOpts.ExcelTabHasColumnHeadings = true exportOpts.ExportFormatType = ExportFormatType.Excel exportOpts.FormatOptions = excelFormatOpts ' 设置导出格式。 exportOpts.ExportFormatType = ExportFormatType.Excel exportOpts.ExportDestinationType = ExportDestinationType.DiskFile ' 设置磁盘文件选项。 diskOpts.DiskFileName = fileName exportOpts.DestinationOptions = diskOpts Report.Export()
[C#] // 声明变量并获取导出选项。 ExportOptions exportOpts = new ExportOptions(); ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions (); DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions(); exportOpts = Report.ExportOptions;
// 设置 Excel 格式选项。 excelFormatOpts.ExcelUseConstantColumnWidth = true; exportOpts.ExportFormatType = ExportFormatType.Excel; exportOpts.FormatOptions = excelFormatOpts; // 设置磁盘文件选项并导出。 exportOpts.ExportDestinationType = ExportDestinationType.DiskFile; diskOpts.DiskFileName = fileName; exportOpts.DestinationOptions = diskOpts; Report.Export ();
[C++] // 声明变量并获取导出选项。 ExportOptions* exportOpts = new ExportOptions(); ExcelFormatOptions* excelFormatOpts = new ExcelFormatOptions (); DiskFileDestinationOptions* diskOpts = new DiskFileDestinationOptions(); exportOpts = Report->ExportOptions;
// 设置 Excel 格式选项。 excelFormatOpts->ExcelUseConstantColumnWidth = true; exportOpts->ExportFormatType = ExportFormatType::Excel; exportOpts->FormatOptions = excelFormatOpts; // 设置磁盘文件选项并导出。 exportOpts->ExportDestinationType = ExportDestinationType::DiskFile; diskOpts->DiskFileName = "fileName"; exportOpts->DestinationOptions = diskOpts; Report->Export ();
[VJ#] // 声明变量并获取导出选项。 ExportOptions exportOpts = new ExportOptions(); ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions (); DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions(); exportOpts = Report.get_ExportOptions();
// 设置 Excel 格式选项。 excelFormatOpts.set_ExcelUseConstantColumnWidth(true); exportOpts.set_ExportFormatType(ExportFormatType.Excel); exportOpts.set_FormatOptions(excelFormatOpts); // 设置磁盘文件选项并导出。 exportOpts.set_ExportDestinationType(ExportDestinationType.DiskFile); diskOpts.get_DiskFileName(fileName); exportOpts.set_DestinationOptions(diskOpts); Report.Export ();