どうも、あおです。
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は、出力されるまで少し時間がかかるので、
少し待つようにしています。
これを入れないと、出力メッセージの後にファイルが作成されるので、
違和感がないようにする為です。