Как сделать PDF параметром экспорта по умолчанию для Crystal Report?

Я работаю с CrystalDecisions.CrystalReports.Engine.ReportDocument в WinForms в Visual Studio 2008. Прямо сейчас, когда пользователи нажимают кнопку экспорта, диалоговое окно по умолчанию сохраняет отчет в виде файла в формате CrystalReports. Можно изменить селектор на PDF, но конкретный запрос, который мне дали - и я искал слишком много часов, пытаясь найти, - сделать диалоговое окно «отчет об экспорте» по умолчанию для параметра формата PDF.

Кто-нибудь знает как это сделать?


person Mike C.    schedule 02.07.2009    source источник


Ответы (1)


Что касается CR XI, единственный известный мне способ — заменить диалоговое окно экспорта своим собственным. Вы можете добавить свою собственную кнопку в элемент управления CrystalReportViewer и скрыть их кнопку экспорта.

Вот код vb.net для замены кнопки экспорта вашей собственной кнопкой/обработчиком событий...

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

Затем в обработчике кликов вы должны отобразить настроенный SaveFileDialog и, в конечном итоге, вызвать метод ReportDocument.ExportToDisk. Таким образом, вы можете установить заголовок диалогового окна и имя файла на что-то полезное и, конечно же, установить тип экспорта по умолчанию.

person dotjoe    schedule 02.07.2009