Personalizzazione delle opzioni di esportazione

Crystal Report Engine consente di distribuire report in vari modi. Utilizzando l'opzione di esportazione, è possibile inviare il report a un file del disco, a una cartella di Exchange o a MS Mail (MAPI). Il report può essere esportato in Excel, Crystal Reports, Microsoft Word, in formato HTML, PDF (Portable Document Format) o RTF (Rich Text Format).

Esistono tre modi in cui un è possibile impostare le opzioni di esportazione per l'utente:

  • Lasciare il pulsante Export Expert (Esperto esportazioni) predefinito sulla barra degli strumenti di CrystalReportViewer.
  • Creare un pulsante personalizzato che richiami la finestra di dialogo Export Expert (Esperto esportazioni). Questo metodo consente di nascondere la barra degli strumenti standard quando non si desidera utilizzare nessun'altra funzione di tale barra o quando si desidera personalizzare l'interfaccia. Ciò è possibile solo se si utilizza Windows Forms Viewer.
  • Scrivere il codice per specificare un tipo di esportazione e di destinazione particolari.

Esportazione di report con il pulsante Esporta

Il pulsante Esporta è posizionato nell'angolo superiore sinistro della barra degli strumenti di CrystalReportViewer. Quando si fa clic sul pulsante Esporta, viene visualizzata una finestra di dialogo in cui l'utente viene invitato a indicare il formato di esportazione.

Il pulsante Esporta viene visualizzato in modo automatico a meno che la barra degli strumenti del visualizzatore non venga disattivata. In tal caso è possibile fare in modo che all'utente venga richiesto di indicare le opzioni di esportazione, o di utilizzare il codice di l'esportazione con opzioni specifiche.

Richiesta delle opzioni di esportazione agli utenti

Quando della barra degli strumenti di CrystalReportViewer, si ha la necessità di utilizzare solo il pulsante Esporta, è possibile disattivare tale barra e creare un pulsante Esporta personalizzato. Questa funzionalità è disponibile esclusivamente in Windows Forms Viewer.

Creazione di un pulsante Export Expert (Esperto esportazioni) personalizzato

  1. Aggiungere al modulo un controllo Button.
  2. Fare doppio clic sul controllo Button per specificare il codice dell'evento Click. A seconda del linguaggio utilizzato, immettere il codice appropriato nel file di origine corrispondente, seguendo gli esempi riportati di seguito.

[Visual Basic]

crystalReportViewer1.ExportReport ()

[C#]

crystalReportViewer1.ExportReport ();

[C++]

crystalReportViewer1->ExportReport ();

[VJ#]

crystalReportViewer1.ExportReport ();

Quando l'utente farà clic sul pulsante verrà visualizzata la finestra di dialogo Esporta in cui verrà richiesto di scegliere una delle varie opzioni di esportazione disponibili in Crystal Reports per Visual Studio .NET.

Impostazione delle opzioni di esportazione tramite il codice

È possibile impostare le opzioni di esportazione, impostando la destinazione, il formato e il nome del file di esportazione all'interno del codice.

Nota   Non esistono valori predefiniti per DestinationType, FormatType o DiskFileName; quindi, occorre specificare i valori per tutti questi campi. Questo può essere effettuato tramite il modulo report.

Nel seguente esempio viene illustrata l'esportazione di un report sul disco nel formato Microsoft Excel 8.0.

Per impostare le opzioni di esportazione

  1. Aggiungere al modulo un controllo Button.
  2. Per la proprietà Text di Button, immettere Esporta a file di Microsoft Excel.
  3. Fare doppio clic sul controllo Button per specificare il codice dell'evento Click. A seconda del linguaggio utilizzato, immettere il codice appropriato nel file di origine corrispondente, seguendo gli esempi riportati di seguito.

[Visual Basic]

' Dichiara le variabili e restituisce le opzioni di esportazione.
Dim exportOpts As New ExportOptions()
Dim diskOpts As New DiskFileDestinationOptions()
Dim excelFormatOpts As New ExcelFormatOptions()
exportOpts = Report.ExportOptions

' Imposta le opzioni relative al formato Excel.
excelFormatOpts.ExcelTabHasColumnHeadings = true

exportOpts.ExportFormatType = ExportFormatType.Excel
exportOpts.FormatOptions = excelFormatOpts

' Imposta il formato di esportazione.
exportOpts.ExportFormatType = ExportFormatType.Excel

exportOpts.ExportDestinationType = ExportDestinationType.DiskFile

' Imposta le opzioni relative al file del disco.
diskOpts.DiskFileName = fileName
exportOpts.DestinationOptions = diskOpts

Report.Export()

[C#]

// Dichiara le variabili e restituisce le opzioni di esportazione.
ExportOptions exportOpts = new ExportOptions();
ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions ();
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
exportOpts = Report.ExportOptions;

// Imposta le opzioni relative al formato Excel.
excelFormatOpts.ExcelUseConstantColumnWidth = true;
exportOpts.ExportFormatType = ExportFormatType.Excel;
exportOpts.FormatOptions = excelFormatOpts;

// Imposta le opzioni e l'esportazione del file del disco.
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
diskOpts.DiskFileName = fileName;
exportOpts.DestinationOptions = diskOpts;

Report.Export ();

[C++]

// Dichiara le variabili e restituisce le opzioni di esportazione.
ExportOptions* exportOpts = new ExportOptions();
ExcelFormatOptions* excelFormatOpts = new ExcelFormatOptions ();
DiskFileDestinationOptions* diskOpts = new DiskFileDestinationOptions();
exportOpts = Report->ExportOptions;

// Imposta le opzioni relative al formato Excel.
excelFormatOpts->ExcelUseConstantColumnWidth = true;
exportOpts->ExportFormatType = ExportFormatType::Excel;
exportOpts->FormatOptions = excelFormatOpts;

// Imposta le opzioni e l'esportazione del file del disco.
exportOpts->ExportDestinationType = ExportDestinationType::DiskFile;
diskOpts->DiskFileName = "fileName";
exportOpts->DestinationOptions = diskOpts;

Report->Export ();

[VJ#]

// Dichiara le variabili e restituisce le opzioni di esportazione.
ExportOptions exportOpts = new ExportOptions();
ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions ();
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
exportOpts = Report.get_ExportOptions();

// Imposta le opzioni relative al formato Excel.
excelFormatOpts.set_ExcelUseConstantColumnWidth(true);
exportOpts.set_ExportFormatType(ExportFormatType.Excel);
exportOpts.set_FormatOptions(excelFormatOpts);

// Imposta le opzioni e l'esportazione del file del disco.
exportOpts.set_ExportDestinationType(ExportDestinationType.DiskFile);
diskOpts.get_DiskFileName(fileName);
exportOpts.set_DestinationOptions(diskOpts);

Report.Export ();