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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top