C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: クリスタルレポートをPDFに変換したい。


(過去ログ 97 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■58263 / inTopicNo.1)  クリスタルレポートをPDFに変換したい。
  
□投稿者/ hs (218回)-(2011/03/30(Wed) 11:02:30)

分類:[VB.NET/VB2005 以降] 

VS2008 VB

いつもお世話になっております。
タイトル通りなのですが、クリレポをPDFに変換したいのですが、色々サイトを調べましたが、判りません。

フォームにCrystalReportViewerを配置、そのSetDataSourceにクリスタルレポートをセットしております。
レポートのSetDataSourceは、あるものもないものもあります。

調べた結果以下のコードまでたどり着いたのですが、以下のエラーが出て原因が判らないでおります。
「レポートのロードに失敗しました。」
文字通り読み込み出来ないのですが、コードは下記の通りです。

 Dim obj As New Report
obj = CType(Me.CrystalReportViewer.ReportSource, Report)
 
 'とりあえずデスクトップに保存してみる
 obj.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
 obj.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
 obj.FileName = System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "\test.pdf")
 obj.Export()

以上です。

また、PDFを作成するに当たって、Adobe Acrobat は対象PCにインストールされている必要はあるのでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■58268 / inTopicNo.2)  Re[1]: クリスタルレポートをPDFに変換したい。
□投稿者/ しるふぃん (7回)-(2011/03/30(Wed) 12:30:22)
No58263 (hs さん) に返信
以前VBReportを使いつつPDFを作成したときは、印刷する際に保存先やファイル名を設定し、出力先プリンタをAcrobatPDFにし、
PDFを作ったことはありますが、クリスタルレポートでも同じようにいけるのではないですかね。
(的外れな回答ならごめんなさいorz)

もちろん、この方法だとAcrobatのインストールは必須になってしまいます。
引用返信 編集キー/
■58272 / inTopicNo.3)  Re[1]: クリスタルレポートをPDFに変換したい。
□投稿者/ じゃんぬねっと (59回)-(2011/03/30(Wed) 13:06:00)
No58263 (hs さん) に返信
> 調べた結果以下のコードまでたどり着いたのですが、以下のエラーが出て原因が判らないでおります。
> 「レポートのロードに失敗しました。」

上記のエラーなら PDF への Export よりもっと前の段階、
つまり Report Engine が正しく終了しなかった場合のハズですが...?

>  Dim obj As New Report
> obj = CType(Me.CrystalReportViewer.ReportSource, Report)

最初の obj でインスタンスを生成していますが無意味なことにお気づきですか?

それと ReportSource って Document 自体のインスタンスですよね?
ChangeType する型は Report という (私たち回答者にとって) 抽象的な型になっていますけど、実際にはユーザー定義の Document の型になっているのですよね?

> また、PDFを作成するに当たって、Adobe Acrobat は対象PCにインストールされている必要はあるのでしょうか?

Export メソッドを使うのであれば必要ありません。
引用返信 編集キー/
■58273 / inTopicNo.4)  Re[2]: クリスタルレポートをPDFに変換したい。
□投稿者/ hs (219回)-(2011/03/30(Wed) 13:26:24)
■58268 (しるふぃん さん) に返信

さっそくの回答ありがとうございます。
> もちろん、この方法だとAcrobatのインストールは必須になってしまいます。

■58272の回答で、そんなことはないという回答を頂きました。
そちらのを参考にAdobe Acrobatは必要なさそうです。

引用返信 編集キー/
■58274 / inTopicNo.5)  Re[3]: クリスタルレポートをPDFに変換したい。
□投稿者/ hs (220回)-(2011/03/30(Wed) 13:32:08)
■58272 (じゃんぬねっと さん) に返信

> Dim obj As New Report
> obj = CType(Me.CrystalReportViewer.ReportSource, Report)

> 最初の obj でインスタンスを生成していますが無意味なことにお気づきですか?
クリスタルレポートを指定したかったので、この様に記述致しました。
つまり obj の部分を単純に
Me.CrystalReportViewer.ReportSource...としてもよいという事ですね。

> それと ReportSource って Document 自体のインスタンスですよね?
そうことになります。
> ChangeType する型は Report という (私たち回答者にとって) 抽象的な型になっていますけど、
> 実際にはユーザー定義の Document の型になっているのですよね?
そういうことになります。

> Export メソッドを使うのであれば必要ありません。
では、クリレポの昨日にPDFを作成してくれる機能があると理解してもよろしいでしょうか?

また、PDFの変換は、クリレポのプレビューの有無にかかわらず行いたいと考えております。

よろしくお願いします。


引用返信 編集キー/
■58276 / inTopicNo.6)  Re[4]: クリスタルレポートをPDFに変換したい。
□投稿者/ しるふぃん (8回)-(2011/03/30(Wed) 13:57:47)
No58274 (hs さん) に返信
少し調べてみると、Word、Excel、PDF、HTML、および Crystal Reports の形式でデータをエクスポートすることができるとありました。
エクスポートオプションを指定する際に、PDF形式を指定してあげればいいみたいです。

調べながらのコーディングなので動くかどうか^^;

Dim cryRpt As New ReportDocument
Dim CrExportOptions As ExportOptions
Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
CrDiskFileDestinationOptions.DiskFileName = "c:\crystalExport.pdf"
CrExportOptions = cryRpt.ExportOptions
With CrExportOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
.DestinationOptions = CrDiskFileDestinationOptions
.FormatOptions = CrFormatTypeOptions
End With
cryRpt.Export()

こんな感じですかね?orz
引用返信 編集キー/
■58277 / inTopicNo.7)  Re[5]: クリスタルレポートをPDFに変換したい。
□投稿者/ hs (221回)-(2011/03/30(Wed) 14:23:53)
No58276 (しるふぃん さん) に返信

たびたびありがとうございます。

> Dim cryRpt As New ReportDocument
> Dim CrExportOptions As ExportOptions
> Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
> Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
> CrDiskFileDestinationOptions.DiskFileName = "c:\crystalExport.pdf"
> CrExportOptions = cryRpt.ExportOptions
> With CrExportOptions
> .ExportDestinationType = ExportDestinationType.DiskFile
> .ExportFormatType = ExportFormatType.PortableDocFormat
> .DestinationOptions = CrDiskFileDestinationOptions
> .FormatOptions = CrFormatTypeOptions
> End With
> cryRpt.Export()

> こんな感じですかね?orz
ズバリでしたw

教えていただいたコードでできました。
明日の納品だったので、本当に助かりましたm(__)m
また何かあったときはよろしくお願いします。
解決済み
引用返信 編集キー/
■58281 / inTopicNo.8)  Re[3]: クリスタルレポートをPDFに変換したい。
□投稿者/ じゃんぬねっと (60回)-(2011/03/30(Wed) 15:52:13)
じゃんぬねっと さんの Web サイト
No58273 (hs さん) に返信
> ■58268 (しるふぃん さん) に返信
> さっそくの回答ありがとうございます。
> > もちろん、この方法だとAcrobatのインストールは必須になってしまいます。
>
> ■58272の回答で、そんなことはないという回答を頂きました。
> そちらのを参考にAdobe Acrobatは必要なさそうです。

私は "Export メソッドを使うのであれば必要ない" と書かせて頂いただけです。
しるふぃんさんに反論するつもりで書いたわけではありません。

No58268 のしるふぃんさんが書かれた方法は、(仮想) プリンタへの出力であり、エクスポートではありません。
そこは誤解なさらないでください。

何はともあれ、解決はできたようで何よりです。
解決済み
引用返信 編集キー/
■58294 / inTopicNo.9)  Re[4]: クリスタルレポートをPDFに変換したい。
□投稿者/ hs (223回)-(2011/03/30(Wed) 17:41:14)
No58281 (じゃんぬねっと さん) に返信

いつも助けて頂いているのに、誤解を与えるコメしてしまいすいませんでしたm(__)m

また何かあった時はよろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -