[{"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"}]}]
PageReportクラスは、レポートテンプレート、パラメータ値、およびランタイム設定を受け取り、レポート出力を生成するためのプロパティとメソッドを提供するレポートインスタンスを表します。
PageReportクラスのコンストラクタには、3つのプロパティを持つオプションのoptions
引数があります。その中に、2つは内部使用のみですが、もう一つはmemoizeDataプロパティであり、レポートデータを保存して、レポートを再実行するときに再利用するかどうかを決定します。memoizeDataプロパティをtrue(デフォルト値)に設定すると、レポートデータが保存され、レポートを再実行するときに再利用されます。これにより、データを再取得する必要が減り、パフォーマンスが向上されます。falseに設定すると、レポートデータが保存されず、レポートが実行されるたびに新しく取得されます。レポートのデータ連結が動的であり、レポートを再実行するときに変更できるパラメータ値に依存している場合、memoizeData
の値は無視されます。以下のサンプルコードは、PageReport
クラスの新しいインスタンスを初期化する方法を示しています。
import {Core} from "@mescius/activereportsjs";
var report = new Core.PageReport({
memoizeData: true
});
PageReport
クラスのload
メソッドを使用して、レポートテンプレートを設定し、レポートを実行するときに必要な環境を構成できます。load
メソッドの最初の引数は、レポートテンプレートを取得するURLまたはReport型のオブジェクトです。2番目の引数はオプションであり、いくつかのプロパティを持つオブジェクトです。
resourceLocator
:リソースロケータの実装
environment
:{&ReportName}
式を使用してレポートで参照できるReportName
プロパティを持つオブジェクト。
load
メソッドは、リモートリソースからレポートテンプレートを取得するため、Promiseオブジェクトを取得します。したがって、load
メソッドを呼び出すコードは、返されたPromiseが履行されるまで待機する必要があります。次に例を示します。
import {Core} from "@mescius/activereportsjs";
var report = new Core.PageReport();
await report.load(`assets/Products.rdlx-json`, {
environment: {
ReportName: "製品カタログ",
},
});
PageReport
クラスには、レポートを実行するためのパラメータ値を指定できるparameters
プロパティが存在しています。parameters
プロパティは、レポートパラメータの名前と一致する動的キーを持つオブジェクトです。キーはレポートパラメータの構成に関する情報を提供し、パラメータの値を設定できる記述子です。パラメータの値は数値、文字列、Bool値、または日付の配列を使用可能です。パラメータの値が1つの場合でも、配列で指定する必要があります。
以下のサンプルコードは、PageReportクラスのインスタンスを作成し、レポートテンプレートを読み込み、パラメータ値を設定します。
import {Core} from "@mescius/activereportsjs";
var report = new Core.PageReport();
// レポートテンプレートを読込、パラメータ値を設定する
await report.load(`assets/Products.rdlx-json`, {
reportParameters: [{
Name: 'Header',
Value: ['製品リスト'] // 文字列の単一値のパラメータ
}, {
Name: 'SupplierIds',
Value: [1, 2, 3] // 整数の複数の値のパラメータ
}]
});
または、ReportParameters
オブジェクトのapplySteps
メソッドを使用して、様々なシナリオでパラメータ値を設定できます。
var report = new Core.PageReport();
await report.load(`assets/Products.rdlx-json`);
// applyStepsメソッドでパラメータ値を設定する
report.reportParameters.applySteps([
{
Name: "Header",
Value: ["製品リスト"], // 文字列の単一値のパラメータ
Type: "Set"
},
{
Name: "SupplierIds",
Value: [1, 2, 3], // 整数の複数の値のパラメータ
Type: "Set"
}
]);
レポートテンプレートが読み込まれ、パラメータ値が設定された後、PageReport
インスタンスのrun
メソッドを呼び出すことができます。これは、PageDocument
インスタンスで実行されるPromise
オブジェクトを返します。
import {Core} from "@mescius/activereportsjs";
const report = new Core.PageReport();
await report.load(`assets/Products.rdlx-json`);
report.parameters["Header"].values = ["製品リスト"];
const document = await report.run();