- - PR -
ActiveReportの印刷について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-28 15:08
ActiveReportの印刷で一旦スプールに溜めて、
まとめて印刷をしたいのですが、何かよい方法はありませんでしょうか? 現状は一つずつ印刷される(100件だと100回)ので、 プリンタが止まるという現象が起こっています。 | ||||||||
|
投稿日時: 2005-11-28 16:52
スプールでどうにかしようと思わずに、レポート側で対応した方が良いと思います。 [メインとなるレポート].Document.Pages.AddRange([別のレポート].Document.Pages); を使うことで、ひとつの Job として印刷できます。 マージする直前に、それぞれのレポートを Run しておく必要があります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-11-28 17:48
じゃんぬねっとさんありがとうございました!
おかげさまで印刷できました♪ あと毎件ごと別のデータを格納していますが、 今の状態だと、最後のみデータが格納され、 それ以外はデータがブランクになってしまいます。 この問題も解決したいのですが、 何かよい方法はありませんでしょうか? | ||||||||
|
投稿日時: 2005-11-28 17:56
仰ってる内容がイメージできません、申し訳ありません。(*_ _) もう少し噛み砕いて頂けると嬉しいのですが... (^-^;) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-11-28 18:12
じゃんぬねっとさん返信有難うございます!
わかりにくくてすみません。 ActiveReportにテキストボックスなどを使用しているのですが、 そこに、あるデータをSELECTで抽出し、 1件ごとにテキストボックスなどに格納しています。 その件数をループさせています。 100件ならば100件分(100枚)を印刷します。 そこで現状はデータを格納しているのですが、 先ほどの命令だけだと、一つのJOBで印刷枚数は増えたのですが、 最後の1件のみデータが入っている状態です。 | ||||||||
|
投稿日時: 2005-11-28 18:24
どこかのイベントで動的に TextBox の Text プロパティにセットしているのでしょうか?
最後の 1 件のみデータが入っている状態なのは、どちらのレポートですか? どのようなコードでマージさせていますか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 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