自訂匯出選項
Crystal 報表引擎可讓您使用許多不同的方法來傳送報表。您可以使用匯出選項,將報表傳送至磁碟檔案、Exchange 資料夾,或 MS Mail (MAPI)。報表可匯出至 Excel、Crystal Reports、Microsoft Word、HTML、可攜式文件格式 (PDF) 或 Rich Text (RTF) 格式。
您可以使用三種方法來設定使用者的匯出選項:
- 保留 CrystalReportViewer 工具列上的預設 [匯出專家] 按鈕。
- 建立自己的按鈕來呼叫 [匯出專家] 對話方塊。如果您不需要標準工具列的其他功能或者您想要自訂介面,這個方法可讓您將工具列隱藏起來。這項功能僅限於 Windows Form Viewer 中使用。
- 撰寫程式碼以指定特定的匯出類型和目的端。
使用匯出按鈕匯出報表
[匯出] 按鈕位於 CrystalReportViewer 工具列的左上角。當使用者按一下 [匯出] 按鈕,就會出現對話方塊提示使用者輸入匯出格式。
除非您關閉檢視器工具列 (在這種情況下,您可以提示使用者使用輸出選項,或使用程式碼匯出特定選項),否則 [匯出] 按鈕將自動出現。
提示使用者使用輸出選項
只有當 CrystalReportViewer 工具列需要 [匯出] 按鈕時,您才可以關閉工具列並且建立自己的 [匯出] 按鈕。這項功能僅限於在 Windows Form Viewer 中使用。
建立自訂的匯出專家按鈕
將 Button 控制項加入至表單。
按兩下 Button 控制項以指定 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 格式將報表匯出至磁碟。
若要設定匯出選項
將 Button 控制項加入至表單。
請在 Button 的 Text 屬性中輸入「匯出至 MS Excel 檔案」。
按兩下 Button 控制項以指定 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 ();