【VB.NETでCrystal Reports】レポートをPDF出力するサンプルコード

cryrepo-pdf-export-summne
スポンサーリンク

どうも、あおです。

 

 

VB.NETでクリレポの帳票をPDF出力したいときのメモ。

 

クリレポのビューワー画面上部のツールバーにエクスポートボタンがあり、

こちらからPDF出力はできるのですが、デフォルトのファイル名指定ができません。

 

 

デフォルトのファイル名を指定したいということで、別につくります。

 

呼び出し元フォームにPDF出力用のボタンを追加して、

そのボタン押下処理の中にPDF出力処理を追加します。(以下、ボタン押下処理内)

Dim rpt As New rpt1
Dim fileForm As New System.Windows.Forms.SaveFileDialog
Dim diskOpts As New CrystalDecisions.Shared.DiskFileDestinationOptions

rpt.SetDataSource(dt)

With fileForm
    .FileName = Me.Text & Now.ToString("yyyyMMddHHmmss") & ".pdf"
    .Filter = "PDFファイル(*.pdf)|*.pdf"
End With

If Not fileForm.ShowDialog() = System.Windows.Forms.DialogResult.OK Then Return

'エクスポート先の設定
diskOpts.DiskFileName = fileForm.FileName
rpt.ExportOptions.DestinationOptions = diskOpts

'レポートをPDF形式でエクスポート
rpt.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
rpt.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat

rpt.Export()

System.Threading.Thread.Sleep(3000)
MsgBox("出力されました。")

 

 

「rpt1」は自身で作成したレポートファイル

SetDataSourceにDataTable(ここではdt)をセットしています。

(DataTableの作成等は省略します。)

 

5行目のWithのところで、

画面タイトル名+現在日時+拡張子をデフォルトファイル名として

セットしています。

 

最後の方のSleepは、出力されるまで少し時間がかかるので、

少し待つようにしています。

これを入れないと、出力メッセージの後にファイルが作成されるので、

違和感がないようにする為です。