4

我在 Visual Studio 2008 的 WinForms 中使用 CrystalDecisions.CrystalReports.Engine.ReportDocument。现在,当用户单击导出按钮时,对话框默认将报表保存为 CrystalReports 格式的文件。可以将选择器更改为 PDF,但我得到的特定要求——我已经搜索了太多小时试图找到——是使“导出报告”对话框默认为 PDF 格式选项。

有谁知道如何做到这一点?

4

1 回答 1

2

从 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

Then in the click handler you'd show a customized SaveFileDialog and eventually call the ReportDocument.ExportToDisk method. This way you can set the dialog's title and filename to something useful and of course set the default export type.

于 2009-07-02T19:44:55.770 回答