- PR -

ActiveReportの印刷について

1
投稿者投稿内容
ガミえもん
会議室デビュー日: 2005/11/28
投稿数: 4
投稿日時: 2005-11-28 15:08
ActiveReportの印刷で一旦スプールに溜めて、
まとめて印刷をしたいのですが、何かよい方法はありませんでしょうか?
現状は一つずつ印刷される(100件だと100回)ので、
プリンタが止まるという現象が起こっています。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-28 16:52
引用:

ガミえもんさんの書き込み (2005-11-28 15:08) より:

ActiveReportの印刷で一旦スプールに溜めて、
まとめて印刷をしたいのですが、何かよい方法はありませんでしょうか?


スプールでどうにかしようと思わずに、レポート側で対応した方が良いと思います。

  [メインとなるレポート].Document.Pages.AddRange([別のレポート].Document.Pages);

を使うことで、ひとつの Job として印刷できます。
マージする直前に、それぞれのレポートを Run しておく必要があります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガミえもん
会議室デビュー日: 2005/11/28
投稿数: 4
投稿日時: 2005-11-28 17:48
じゃんぬねっとさんありがとうございました!
おかげさまで印刷できました♪
あと毎件ごと別のデータを格納していますが、
今の状態だと、最後のみデータが格納され、
それ以外はデータがブランクになってしまいます。
この問題も解決したいのですが、
何かよい方法はありませんでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-28 17:56
引用:

ガミえもんさんの書き込み (2005-11-28 17:48) より:

あと毎件ごと別のデータを格納していますが、
今の状態だと、最後のみデータが格納され、
それ以外はデータがブランクになってしまいます。
この問題も解決したいのですが、
何かよい方法はありませんでしょうか?


仰ってる内容がイメージできません、申し訳ありません。(*_ _)
もう少し噛み砕いて頂けると嬉しいのですが... (^-^;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガミえもん
会議室デビュー日: 2005/11/28
投稿数: 4
投稿日時: 2005-11-28 18:12
じゃんぬねっとさん返信有難うございます!
わかりにくくてすみません。

ActiveReportにテキストボックスなどを使用しているのですが、
そこに、あるデータをSELECTで抽出し、
1件ごとにテキストボックスなどに格納しています。
その件数をループさせています。
100件ならば100件分(100枚)を印刷します。
そこで現状はデータを格納しているのですが、
先ほどの命令だけだと、一つのJOBで印刷枚数は増えたのですが、
最後の1件のみデータが入っている状態です。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-28 18:24
引用:

ガミえもんさんの書き込み (2005-11-28 18:12) より:

そこに、あるデータをSELECTで抽出し、
1件ごとにテキストボックスなどに格納しています。


どこかのイベントで動的に TextBox の Text プロパティにセットしているのでしょうか?

引用:

そこで現状はデータを格納しているのですが、
先ほどの命令だけだと、一つのJOBで印刷枚数は増えたのですが、
最後の1件のみデータが入っている状態です。


最後の 1 件のみデータが入っている状態なのは、どちらのレポートですか?
どのようなコードでマージさせていますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガミえもん
会議室デビュー日: 2005/11/28
投稿数: 4
投稿日時: 2005-11-28 19:03
じゃんぬねっとさんのおかげで解決できました!
有難うございました。

印刷のデータ格納についてですが、
メインレポートと別のレポートを同じにしていました。
この場合、別のレポートの方はRunさせないでおくと上手くいきました。

下記が例文です。

  Dim rpt As New レポート名 '印刷用オブジェクト
Dim rpt2 As New レポート名

  For i = 印刷件数

    ・
    ・
    'データ格納
CType(rpt.Sections("Detail").Controls("txtData34"),                DataDynamics.ActiveReports.TextBox).Text =
    Trim(w_clsSqlRes.Fields("備考"))
    ・
    ・
   '印刷設定
  rpt.Run(False)
  rpt2.Document.Pages.AddRange(rpt.Document.Pages)
  Viewer1.Document = rpt.Document

Next i

  '印刷処理
  rpt2.Document.Print(False, False, False)

じゃんぬねっとさん本本当に有難うございました!!



1

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