HTML5ビューワ使用時にレポートデータソースを動的に変更する方法は?【※サンプル有り】

文書番号 : 39637     文書種別 : 使用方法     登録日 : 2016/10/18     最終更新日 : 2016/10/18
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
HTML5ビューワはクライアント側のブラウザ上で動作するJavaScriptコンポーネントであり、レポートの実行結果は ActiveReports 9.0J Webサービス(ActiveReports.ReportService.asmx)を経由して取得します。
このため、レポートデータソースをサーバーサイドのコード(.vb/.cs)から変更することは通常はできません。

代替案としては、以下の方法が考えられます。
  1. パラメータを介してデータの取得条件を変更する方法
  2. Webサービスをカスタマイズする方法

  1. パラメータを介してデータの取得条件を変更する方法
    HTML5ビューワでは、クライアントスクリプトからレポートにパラメータを渡すことが可能です。
    たとえば、パラメータ"parameter1"に値を渡す場合、以下のようなスクリプトになります。

    ◆サンプルコード(Javascript)
    $(function ()
    {
      var viewer = GrapeCity.ActiveReports.Viewer(
      {
        element: '#viewer',
        report:
        {
          // セクションレポート(コード形式)の場合
          id: 'NameSpace.SectionReport1' ,
          parameters: [
          {
            // パラメータの名称と値の組み合わせを記述します。
            name: 'parameter1',
            value: '100'
          }]
        },
        
        reportService: {
          url: 'ActiveReports.ReportService.asmx'
        },
        uiType: 'desktop',
        localeUri: 'ja.txt',
      });
    });

    このパラメータを使用して、レポートデータソースの取得条件(SQLのWHERE句)を変更したり、フィルタを掛けることでレポートに出力されるデータを動的に変更することが可能です。

    パラメータやフィルタの使用方法については、製品ヘルプの以下のトピックをご参照ください。

    ActiveReportsユーザーガイド
     - 概念
      - 対話的な機能
       - パラメータ
       - フィルタ

  2. Webサービスをカスタマイズする方法
    ActiveReports.ReportService.asmxを継承したWebサービスを作成し、HTML5ビューワから参照することで、イベント内でレポートの生成やデータソースの変更を独自に行うことが可能です。

    たとえば、レポート生成時に発生するイベント"OnCreateReportHandler"では、クライアントスクリプトから"reportID"が文字列として渡されます。この文字列に独自のパラメータを付加し、それによって使用するデータソースを決定するという方法が考えられます。
    詳しい実装方法については、こちらのサンプルをご覧ください。

    ※本サンプルはASP.NET MVCアプリケーションとして構築しておりますが、ASP.NETアプリケーションでも同様の方法が適用可能です。
関連情報
キーワード
HowTo