- PR -

ActiveReportsの2種類のデザインを1つのPDFへ

投稿者投稿内容
たくろー
会議室デビュー日: 2005/08/25
投稿数: 9
投稿日時: 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
投稿数: 9
投稿日時: 2005-08-25 01:47
イメージ図がずれたので、再度、投稿します。


2種類のデザイン        1PDF
--------   --------   --------
|     |   |    |    |     |
| A   | + | B  | = | A   |
|     |   |    |    |     |
--------   --------   --------←改ページ
                  |     |
                  | B   |
                  |     |
                  --------
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-08-25 09:25
私も以前同様の問題にぶつかりましたが、下のページを見て解決しました(英語ですが)。
http://www.datadynamics.com/Help/ARNET2/ar2wlkMergingReports.html

で、後はPdfExport.Exportで出力すればOKなはずです。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 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
投稿数: 9
投稿日時: 2005-08-25 23:07
まゆりんさん、なおこ(・∀・)さん、返信ありがとうございます。

2人に紹介してもらったPGを参考にやってみます。
また、なにかありましたら、よろしくお願いいたします。
たくろー
会議室デビュー日: 2005/08/25
投稿数: 9
投稿日時: 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は、サポートしていないのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-08-26 20:32
引用:

これを実行するとエラーになってしまいます。
なにが原因なので、しょうか?
VB6は、サポートしていないのでしょうか?


VB6 ですか、走るとこまで走っちゃいますからね。
こういう場合はどこまで、存在しているメンバなのかを確認しないと。

 ・Document プロパティなんて本当にあるのか?
 ・Document プロパティの中に Pages コレクションはあるのか?
 ・Pages コレクションがあるのはいいが、AddRange なんてメソッドはあるのか?



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たくろー
会議室デビュー日: 2005/08/25
投稿数: 9
投稿日時: 2005-08-26 21:36
>Document プロパティなんて本当にあるのか?
>Document プロパティの中に Pages コレクションはあるのか?
>Pages コレクションがあるのはいいが、AddRange なんてメソッドはあるのか?

Document プロパティがないので、「rpt.Pages.Add」をしたら、
次のページに空のページが追加されてしまいます。

次のページにもう一つのデザインを追加するには、どのように
したらいいのでしょうか?
ヘルプやネットを見たのですが、解決できなかったので投稿しました。

スキルアップ/キャリアアップ(JOB@IT)