Come faccio a fare l'opzione di esportazione PDF di default per un report Crystal?
-
21-08-2019 - |
Domanda
Sto lavorando con CrystalDecisions.CrystalReports.Engine.ReportDocument in WinForms in Visual Studio 2008. In questo momento, quando gli utenti fanno clic sul pulsante Esporta le impostazioni predefinite di dialogo per salvare il rapporto come CrystalReports di file formattati. E 'possibile cambiare il selettore in PDF, ma la richiesta specifica che mi è stata data - e ho cercato per troppe ore cercando di trovare - è quello di rendere la finestra di default 'rapporto di esportazione' opzione formato PDF a.
Qualcuno sa come fare questo?
Soluzione
A partire dal CR XI, l'unico modo che conosco è quello di sostituire la finestra di dialogo di esportazione con il vostro. È possibile aggiungere il proprio pulsante per il controllo CrystalReportViewer e nascondere il loro pulsante di esportazione.
Ecco il codice vb.net per sostituire il pulsante Esporta con il proprio tasto / EventHandler ...
Public Shared Sub SetCustomExportHandler(ByVal crv As CrystalDecisions.Windows.Forms.CrystalReportViewer, ByVal export_click_handler As EventHandler)
For Each ctrl As Control In crv.Controls
'find the toolstrip
If TypeOf ctrl Is ToolStrip Then
Dim ts As ToolStrip = DirectCast(ctrl, ToolStrip)
For Each tsi As ToolStripItem In ts.Items
'find the export button by it's image index
If TypeOf tsi Is ToolStripButton AndAlso tsi.ImageIndex = 8 Then
'CRV export button
Dim crXb As ToolStripButton = DirectCast(tsi, ToolStripButton)
'clone the looks of the export button
Dim tsb As New ToolStripButton
With tsb
.Size = crXb.Size
.Padding = crXb.Padding
.Margin = crXb.Margin
.TextImageRelation = crXb.TextImageRelation
.Text = crXb.Text
.ToolTipText = crXb.ToolTipText
.ImageScaling = crXb.ImageScaling
.ImageAlign = crXb.ImageAlign
.ImageIndex = crXb.ImageIndex
End With
'insert custom button in it's place
ts.Items.Insert(0, tsb)
AddHandler tsb.Click, export_click_handler
Exit For
End If
Next
Exit For
End If
Next
'hide the default export button
crv.ShowExportButton = False
End Sub
Poi nel gestore di click che ci mostra un SaveFileDialog personalizzato e alla fine chiama il metodo ReportDocument.ExportToDisk. In questo modo è possibile impostare il titolo e il nome della finestra di dialogo per qualcosa di utile e, naturalmente, impostare il tipo di esportazione di default.