FlashビューワでOnLoadProgressイベントから印刷すると画像が印刷されない場合がある

文書番号 : 39195     文書種別 : 不具合     登録日 : 2015/11/30     最終更新日 : 2016/01/13
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
状況
修正済み
詳細
※この現象はセクションレポートおよびページレポートの両方で発生します。

FlashビューワでOnLoadProgressイベントから印刷すると画像が印刷されない場合があります。本事象は以下の条件をすべて満たす場合に発生します。
  1. Flashビューワのクライアントスクリプト機能(OnLoadProgressイベント)を使用して、ビューワにレポートがロードされると同時に印刷を実行している。
    ※以下のナレッジ文書のStartPrintプロパティを使用した方法では、本事象は発生しません。
    Webアプリケーションでプレビュー表示せずにレポートを印刷する方法は?【※サンプル有り】

  2. レポート上に画像を表示している。
    ※TextBoxなどで描画される文字については、本事象は発生しません。

  3. ビューワ上にロードされるレポートのページ数が1ページである。
    ※ビューワ上に複数ページがロードされている場合、本事象は発生しません。
回避方法
この問題はService Pack 6(v7.6.8201.1)で修正されました。
不具合を修正した最新のサービスパックをご使用ください。

SP6を使用しない場合の回避方法は以下のとおりです。

印刷処理を OnLoadProgressイベント内で実行するのではなく、別の関数内で実行し、その関数を JavaScript のsetTimeoutメソッドで呼び出した場合、本事象を回避することが可能です。

◆サンプルコード(Javascript)
<script language="javascript" type="text/javascript">
// <!CDATA[
var viewer = new Object();
function handler() {
  GrapeCity.ActiveReports.Viewer.OnLoad("ReportWebViewerPrint", function () {
    viewer = GrapeCity.ActiveReports.Viewer.Attach("ReportWebViewerPrint");
    viewer.setEventsHandler({
      OnLoadProgress: function (e) {
        if (e.State == "Completed")
        {
          // 印刷用メソッドを呼び出します。
          setTimeout('fncPrint()', 0);
        }
      }
    });
  });
}

function fncPrint() {
  viewer = GrapeCity.ActiveReports.Viewer.Attach("ReportWebViewerPrint");
  var ops = viewer.CreatePrintOptions();
  viewer.Print(ops);
}
</script>;
キーワード
11080