2009-07-02 51 views
2

Visual Studio 2008のWinFormsでCrystalDecisions.CrystalReports.Engine.ReportDocumentを使用しています。ユーザーがエクスポートボタンをクリックすると、デフォルトでCrystalReports形式のファイルとしてレポートが保存されます。セレクタをPDFに変更することは可能ですが、特定のリクエスト(検索に長時間を要しています)は、「レポートのエクスポート」ダイアログをデフォルトのPDF形式にすることです。Crystal ReportのデフォルトエクスポートオプションをPDFにするにはどうすればよいですか?

誰でもこれを行う方法を知っていますか?

答えて

1

CR XIでは、私が知っている唯一の方法は、エクスポートダイアログを自分で置き換えることです。独自のボタンをCrystalReportViewerコントロールに追加し、エクスポートボタンを非表示にすることができます。

はここ

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メソッドを呼び出すと思います...あなた自身のボタン/ EventHandlerのでエクスポートボタンを置き換えるためにvb.netコードです。このようにして、ダイアログのタイトルとファイル名を便利なものに設定し、もちろんデフォルトのエクスポートタイプを設定することができます。

関連する問題