Crystal Reports ファイルを PDF 形式にレポートする際に問題が発生しています。この問題に関する他のすべての質問をここで見ましたが、どれも私のものを解決していないようです。
これが私のコードです:
Public Sub ExportReportToPDF(ReportObject As CRAXDRT.Report, ByVal filename As String, ByVal ReportTitle As String)
Dim objExportOptions As CRAXDRT.ExportOptions
ReportObject.ReportTitle = ReportTitle
With ReportObject
.EnableParameterPrompting = False
.MorePrintEngineErrorMessages = True
End With
Set objExportOptions = ReportObject.ExportOptions
With objExportOptions
.DestinationType = crEDTDiskFile
.DiskFileName = filename
'.FormatType = crEFTExcel80Tabular
'.FormatType = crEFTCommaSeparatedValues
'.FormatType = crEFTExcel80
'.FormatType = crEFTHTML32Standard
'.FormatType = crEFTHTML40
.FormatType = crEFTPortableDocFormat
'.FormatType = crEFTRichText
'.FormatType = crEFTText
'.FormatType = crEFTWordForWindows
End With
ReportObject.Export False
End Sub
ここで、PDF 以外の他のオプションを表示するためだけに残しました。それらはすべて明らかにコメントアウトされていますが、他の形式を試してみると、問題なくエクスポートされます。エクスポートできない唯一の形式は PDF です。エラーが表示されます:
実行時エラー '-2147190908 (80047784)': レポートのエクスポートに失敗しました。
[デバッグ] をクリックすると、ReportObject.Export False 行が強調表示されます。
別の注意として、ユーザーがオプションを選択できるようにすると、PDFを選択できますが、それでも同じエラーが発生します。助けてくれてありがとう。
( Crystal Report で PDF ファイルにエクスポートする方法は?のコードを提供してくれた AVD に感謝します)。
編集: Phillipe の応答を確認した後、コードをステップ実行していて、crEFTPortableDocFormat を FormatType に割り当てた後、「UXFPDF.DLL」を FormatDllName に自動的に割り当てることに気付きました。多分これは私の問題です、誰もこれを修正する方法を知っていますか? crxf_pdf.dll と u2fpdf.dll (元々持っていた 8.0 用のもの) の名前を変更しようとしましたが、うまくいきませんでした。
編集: もう 1 つの発見は、CRViewer91 (レポートを正しく表示する) でエクスポート オプションを有効にし、この方法でこれを pdf にエクスポートしようとすると、エラーにならないことです。ただし、かなり破損して開くことができないファイルを保存します。
編集:より多くの研究。CRViewer91 は、どのフォーマットも正常にエクスポートできないようです。RTF と TXT は空白のドキュメントを返し、開こうとすると RPT エラーが発生します。
編集:私の問題の一部は、実際に必要なのは9.0のCRAXRT.DLLであるのに、8.0のCRAXRT.DLLを使用していることだと思います。9.0 用のものを見つけました。古いものの代わりにこれを使用するにはどうすればよいですか?