生成されたページから順次プレビューすると、レポートの読み込み中に赤い線が表示される場合がある
対象製品
ActiveReports for .NET 7.0J
状況
修正済み
詳細
※この現象はセクションレポートのみで発生します。
プレビュー時に赤い線が表示されないように正しく設定を行っている(※1)にも関わらず、レポートの読み込み中の間のみ、赤い線が表示される場合があります。この赤い線は、レポートの全てのページの読み込みが完了すると表示されなくなります。
※1 セクションレポートのプレビュー時、ページの右側に赤い線が表示される
本事象は以下の条件を全て満たす場合に発生いたします。
例えば、レポート全体の幅を、余白やとじしろなども含めて、A3用紙の幅に丁度収まるようレイアウトしていると仮定します。そのうえで、以下のコードは用紙サイズをA3に明示的に指定しています。本来、この状態では赤い線が表示される事はありません。しかしながら、Run(True)メソッドでレポートを実行し、かつ実行時に参照しているプリンタのデフォルトの用紙幅がA3の幅よりも小さい場合に限り、レポート読み込みの間、赤い線が表示されます。赤い線が表示される位置は、プリンタのデフォルト用紙サイズの位置です。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
プレビュー時に赤い線が表示されないように正しく設定を行っている(※1)にも関わらず、レポートの読み込み中の間のみ、赤い線が表示される場合があります。この赤い線は、レポートの全てのページの読み込みが完了すると表示されなくなります。
※1 セクションレポートのプレビュー時、ページの右側に赤い線が表示される
本事象は以下の条件を全て満たす場合に発生いたします。
- Run(True)メソッドを使用してレポートを実行している場合
レポートを生成しながら、生成されたページから順次プレビューする方法は? - レポート全体の幅が、レポート実行時に参照しているプリンタ(通常は「通常使うプリンタ」に設定されたプリンタ)のデフォルトの用紙幅を超えている場合
例えば、レポート全体の幅を、余白やとじしろなども含めて、A3用紙の幅に丁度収まるようレイアウトしていると仮定します。そのうえで、以下のコードは用紙サイズをA3に明示的に指定しています。本来、この状態では赤い線が表示される事はありません。しかしながら、Run(True)メソッドでレポートを実行し、かつ実行時に参照しているプリンタのデフォルトの用紙幅がA3の幅よりも小さい場合に限り、レポート読み込みの間、赤い線が表示されます。赤い線が表示される位置は、プリンタのデフォルト用紙サイズの位置です。
◆サンプルコード(VB.NET)
Me.Viewer1.Document = rpt.Document
rpt.PageSettings.PaperKind = Printing.PaperKind.A3
rpt.Run(True)
rpt.PageSettings.PaperKind = Printing.PaperKind.A3
rpt.Run(True)
◆サンプルコード(C#)
this.Viewer1.Document = rpt.Document;
rpt.PageSettings.PaperKind = Printing.PaperKind.A3;
rpt.Run(true);
rpt.PageSettings.PaperKind = Printing.PaperKind.A3;
rpt.Run(true);
回避方法
この問題はService Pack 5(v7.5.8161.1)で修正されました。
不具合を修正した最新のサービスパックをご使用ください。
SP5を使用しない場合の回避方法は以下のとおりです。
本事象は、Runメソッドを実行する前に、Document.Printerクラスのプロパティを明示的に設定することで回避することが可能です。以下のようなコードになります。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
不具合を修正した最新のサービスパックをご使用ください。
SP5を使用しない場合の回避方法は以下のとおりです。
本事象は、Runメソッドを実行する前に、Document.Printerクラスのプロパティを明示的に設定することで回避することが可能です。以下のようなコードになります。
◆サンプルコード(VB.NET)
Me.Viewer1.Document = rpt.Document
rpt.PageSettings.PaperKind = Printing.PaperKind.A3
' 印刷時の用紙サイズを明示的に設定します。
rpt.Document.Printer.PaperKind = Printing.PaperKind.A3
rpt.Run(True)
rpt.PageSettings.PaperKind = Printing.PaperKind.A3
' 印刷時の用紙サイズを明示的に設定します。
rpt.Document.Printer.PaperKind = Printing.PaperKind.A3
rpt.Run(True)
◆サンプルコード(C#)
this.Viewer1.Document = rpt.Document;
rpt.PageSettings.PaperKind = Printing.PaperKind.A3;
// 印刷時の用紙サイズを明示的に設定します。
rpt.Document.Printer.PaperKind = Printing.PaperKind.A3;
rpt.Run(true);
rpt.PageSettings.PaperKind = Printing.PaperKind.A3;
// 印刷時の用紙サイズを明示的に設定します。
rpt.Document.Printer.PaperKind = Printing.PaperKind.A3;
rpt.Run(true);
キーワード
10786