- - PR -
ActiveReportsの2種類のデザインを1つのPDFへ
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-25 01:40
【環境】
Microsoft VB SP5 ActiveReports 2.0J Professional 現在、2種類のデザインを1種類ずつ2PDFとして分けて出力しています。 それを1つのPDFに統合して出力することになりました。 デザイン同士を統合するには、サブレポートを使う方法がありますが、 ほかに何かいい方法がございましたら、ご教授ください。 2種類のデザイン 1PDF ------ ------ ------ | | | | | | | A | + | B | = | A | | | | | | | ------ ------ ------←改ページ | | | B | | | ------ | ||||
|
投稿日時: 2005-08-25 01:47
イメージ図がずれたので、再度、投稿します。
2種類のデザイン 1PDF -------- -------- -------- | | | | | | | A | + | B | = | A | | | | | | | -------- -------- --------←改ページ | | | B | | | -------- | ||||
|
投稿日時: 2005-08-25 09:25
私も以前同様の問題にぶつかりましたが、下のページを見て解決しました(英語ですが)。
http://www.datadynamics.com/Help/ARNET2/ar2wlkMergingReports.html で、後はPdfExport.Exportで出力すればOKなはずです。 | ||||
|
投稿日時: 2005-08-25 11:04
お世話になります。
まゆりんさんとかぶっているかも知れませんが, ちょっと前につかったメソッド発掘しました。 あまり参考にならないかもしれませんが… # ↓ちなみに,これはDataTableList.countとReportList.Countが # 同じでないと動かないですw Public Sub PDFOutput(ByVal DataTableList As ArrayList, ByVal ReportList As ArrayList) Dim DT As DataTable Dim RP As New DataDynamics.ActiveReports.Document.Page Dim pdfEx As New DataDynamics.ActiveReports.Export.Pdf.PdfExport Dim memStream As New System.IO.MemoryStream Dim ReportOutPut As New ActiveReport Try For i As Integer = 0 To DataTableList.Count - 1 Dim rpt As ActiveReport = CType(ReportList(i), ActiveReport) rpt.DataSource = Ctype(DataTableList(i), DataTable).DefaultView rpt.Run() ReportOutPut.Document.Pages.AddRange(rpt.Document.Pages) Next pdfEx.Export(ReportOutPut.Document, memStream) memStream.Position = 0 HttpContext.Current.Response.ClearHeaders() HttpContext.Current.Response.Buffer = True HttpContext.Current.Response.ContentType = "application/pdf" HttpContext.Current.Response.BinaryWrite(memStream.ToArray()) HttpContext.Current.Response.Flush() Catch ex As Exception Throw End Try End Sub | ||||
|
投稿日時: 2005-08-25 23:07
まゆりんさん、なおこ(・∀・)さん、返信ありがとうございます。
2人に紹介してもらったPGを参考にやってみます。 また、なにかありましたら、よろしくお願いいたします。 | ||||
|
投稿日時: 2005-08-26 20:18
OS:WindowsXP Pro
言語:VB6 sp6 レポート:ActiveReports Ver.2.0J Pro Private Sub Command1_Click() Dim rpt As ActiveReport Dim rpt2 As ActiveReport Dim objPDF As ARExportPDF Set rpt = New ActiveReport1 Set rpt2 = New ActiveReport2 rpt.Run False rpt2.Run False Call rpt.Document.Pages.AddRange(rpt2.Document.Pages) ↑ 実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 'PDF形式で保存 Set objPDF = New ARExportPDF objPDF.FileName = App.Path & "\\test.pdf" rpt.Export objPDF End Sub これを実行するとエラーになってしまいます。 なにが原因なので、しょうか? VB6は、サポートしていないのでしょうか? | ||||
|
投稿日時: 2005-08-26 20:32
VB6 ですか、走るとこまで走っちゃいますからね。 こういう場合はどこまで、存在しているメンバなのかを確認しないと。 ・Document プロパティなんて本当にあるのか? ・Document プロパティの中に Pages コレクションはあるのか? ・Pages コレクションがあるのはいいが、AddRange なんてメソッドはあるのか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-08-26 21:36
>Document プロパティなんて本当にあるのか?
>Document プロパティの中に Pages コレクションはあるのか? >Pages コレクションがあるのはいいが、AddRange なんてメソッドはあるのか? Document プロパティがないので、「rpt.Pages.Add」をしたら、 次のページに空のページが追加されてしまいます。 次のページにもう一つのデザインを追加するには、どのように したらいいのでしょうか? ヘルプやネットを見たのですが、解決できなかったので投稿しました。 |