[{"id":"08e0fe96-3025-463b-bcee-87f4b29c462b","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"0d5035e7-1a53-4dc5-b32e-9ce261bfa47e","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2fb2b485-f567-436c-9ca9-06dd71ceadb3","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"c1466f0c-9710-41d3-9812-c7321630328a","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"b0e616b5-b520-405e-b108-e81363a8dd74","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"f5712fda-d364-4652-9783-3073e2560b97","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"8f03c498-1e02-459a-a6de-ee619033d6d2","tags":[{"product":null,"links":null,"id":"92283933-94f9-4e9a-8d93-15ba4ec8b3ec","name":"upd","color":"#7e678a","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"2b701643-01a1-40e0-b49b-0a6e93c1f847","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]},{"id":"07b4f367-7ddc-4c8a-932c-b180f112364e","tags":[{"product":null,"links":null,"id":"e1d31134-0bda-4c05-bee0-b1f21f82940b","name":"new","color":"#00A273","productId":"77f3d9a0-2c87-4130-b77a-b94ccf13e3cb"}]}]
        
(Showing Draft Content)

レポートテンプレートの操作

レポートテンプレート

レポートテンプレートには、レポートアイテムの定義と、レポートのレイアウトと構造を定義するデータ連結が含まれています。レポートアイテムには、レポートを構成するTableChartTextBoxなどの要素が含まれます。データ連結は、レポートをデータソースと連結し、レポートに動的データを表示できるようにします。

コードでは、レポートテンプレートがオブジェクト初期化子で表されます。レポートテンプレートには、次の2つの重要なプロパティが用意されています。

  • レポートテンプレートは、JSON形式からシリアライズおよびデシリアライズできます。

  • レポートテンプレートのオブジェクト構造は、Report型によって記述されます。Report型を使用して、変数、関数パラメータ、および戻り値の型に注釈を付けて型情報を提供し、レポートテンプレートで動作するTypeScriptコードで型チェックを有効にすることができます。Report型のようなTypeScriptは、型チェックと型ヒントのみに使用され、実行時には適用されません。

レポートテンプレートの作成

次のサンプルコードでは、TextBoxを含むRDLレポートを使用したレポートテンプレートを初期化するTypeScriptコードを表示しています。

import {Rdl as ARJS} from '@mescius/activereportsjs/core';

const reportTemplate: ARJS.Report = {
  Name: "Report",
  Body: {
    ReportItems: [
      {
        Type: "textbox",
        Name: "txtHeader",
        Value: "Hello, ActiveReportsJS",
        Style: {
          FontSize: "18pt",
        },
        Width: "8.5in",
        Height: "0.5in",
      },
    ],
  },
};

IDEがTypeScriptをサポートしている場合、下の画像のようにTypeScriptのコードを記述すると、IntelliSenseサポートが提供されます。

Intellisense_typescript

コードでゼロからレポートテンプレートを作成する完全な実装例については、「APIを使用したレポート作成」および「APIを使用したチャート作成」デモを参照してください。両方のデモには、選択したTableとChartの構造に基づいてレポートテンプレートを作成するreport.service.tsコードが含まれています。

外部ソースからレポートテンプレートの初期化

レポートテンプレートはJSON形式にシリアル化できます。結果のJSONコンテンツは、ファイルまたはデータベースなどに保存できます。同じReport型を使用して、外部ソースからレポートテンプレートを読み込んだ結果に注釈を付けることができます。次に例を示します。

    const reportContentResponse = await fetch(`./reports/Products.rdlx-json`)
    const reportTemplate: ARJS.Report = await reportContentResponse.json();

Report型は、実行時には適用されないため、取得したJSONコンテンツが有効なレポートテンプレートであるかないかを確認する必要があります。

レポートテンプレートの変更

レポートテンプレートが初期化されると、ページのヘッダまたはフッタ、レポートアイテム、およびデータ接続を削除または追加することで、レポートテンプレートを変更できます。Report型のすべてのプロパティには、型の注釈が付けられます。これらの型の完全なリストについては、APIリファレンスを参照してください。レポートテンプレートを変更すると、プロパティを再割り当てする必要があります。たとえば、ページヘッダを削除する場合、コードは次のようになります。

reportTemplate.PageFooter = undefined;

新しいレポートアイテムをページヘッダに追加するには、次のようなコードを使用します。

reportTemplate.PageHeader?.ReportItems?.push({
  Type: "textbox",
  Name: "txtHeader",
  Value: "請求書",
  Style: {
    FontSize: "18pt",
  },
  Width: "8.5in",
  Height: "0.5in",
});