[{"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
インスタンスのrun
メソッドを呼び出すと、PageDocument
クラスのインスタンスで実行されるPromise
オブジェクトが返されます。PageDocumentクラスを使用して、レポートの印刷やエクスポートできます。
レポートを印刷するには、レポートをHTML形式にエクスポートし、結果をブラウザの組み込みの印刷ダイアログで開きます。このプロセスは、PageDocument
クラスのprint
メソッドによって行われます。print
メソッドは、次の3つのオプション引数を提供します。
renderOptions
:描画オプションを指定します。印刷の場合はundefined
を設定します。
onProgress
:レポートの各ページがHTMLに描画された後に呼び出されるコールバック関数です。この関数は描画されたページ数に対する進行状況を数値型の引数で受け取ります。
checkCancel
:レポートの各ページが描画された後に呼び出されるコールバック関数です。レポートの印刷をキャンセルするかどうかを示すBool値を返します。
onProgress
とcheckCancel
の引数を使用して、印刷ジョブの進行状況を表示し、ユーザーが[キャンセル]
ボタンをクリックしたときにレポートの印刷をキャンセルできるようすることができます。次のコードは、レポートを出力し、進行状況に関する情報をコンソールに送信する方法のサンプルコードです。
import {Core} from "@mescius/activereportsjs";
const report = new Core.PageReport();
await report.load(`assets/Products.rdlx-json`);
const document = await report.run();
document.print(undefined, x=>console.log(`${x} pages ready`), ()=>{
return false;
});
ActiveReportsJS API
を使用すると、PdfExport
、HtmlExport
、TabularDataExport
オブジェクトによってレポート出力をPDF
、HTML
、CSV
にエクスポートすることができます。
import {
PdfExport,
HtmlExport,
TabularDataExport,
} from "@mescius/activereportsjs";
各エクスポートオブジェクトは、次の4つの引数を持つexportDocument
メソッドを提供します。
source
:PageDocument
クラスのインスタンスです。
settings
:エクスポートされたドキュメントの設定です。この引数は、エクスポートタイプ毎に異なります。
PDFExport.exportDocument
はPdfSettingsオブジェクトを受け取ります。
HtmlExport.exportDocument
はHtmlSettingsオブジェクトを受け取ります。
TabularDataExport.exportDocument
はTabularDataSettingsオブジェクトを受け取ります。
onProgress
:レポートの各ページがエクスポートされた後に呼び出されるコールバック関数です。この関数はエクスポートされたページ数に対す進行状況を数値型の引数で受け取ります。
checkCancel
:レポートの各ページが描画された後に呼び出されるコールバック関数です。エクスポートをキャンセルするかどうかを示すBool値を返します。
exportDocument
メソッドは各エクスポートタイプ毎に、固有のPromiseオブジェクトを返却します。
PDFExport.exportDocument
ではPdfExportResultオブジェクトでエクスポート結果を返却します。PdfExportResultオブジェクトを使用すると、download
メソッドを使用してエクスポートの結果をダウンロードしたり、Blob型のdata
プロパティを使用して結果を保存したりできます.
HtmlExport.exportDocument
ではHtmlExportResultオブジェクトでエクスポート結果を返却します。HtmlExportResultオブジェクトを使用すると、download
メソッドを使用してエクスポートの結果をダウンロードしたり、HtmlSettings
のmultiPage
プロパティの値に応じて、文字列
またはBlob
型のdata
プロパティを使用して結果を保存することができます。
TabularDataExport.exportDocument
ではTabularDataExportResultオブジェクトでエクスポート結果を返却します。TabularDataExportResultオブジェクトを使用すると、download
メソッドを使用してエクスポートの結果をダウンロードしたり、TabularDataSettings.csvSettings
のoutputType
プロパティの値に応じて、文字列
またはBlob
型のdata
プロパティを使用して結果を保存することができます。
以下、各エクスポートタイプのサンプルコードです。
import {
PdfExport,
HtmlExport,
TabularDataExport,
} from "@mescius/activereportsjs";
async function exportPdf(document: PageDocument){
const pdfSettings: PdfExport.PdfSettings = {
info: {
title: "製品リスト"
}
}
const result = await PdfExport.exportDocument(document, pdfSettings);
result.download("products.pdf");
}
async function exportHtml(document: PageDocument){
const htmlSettings: HtmlExport.HtmlSettings = {
title: "製品リスト",
multiPage: false
}
const result = await HtmlExport.exportDocument(document, htmlSettings);
result.download("products.html");
}
async function exportCSV(document: PageDocument){
const csvSettings: TabularDataExport.TabularDataSettings = {
csvSettings: {
colSeparator: ","
}
}
const result = await TabularDataExport.exportDocument(document, csvSettings);
result.download("products.csv");
}
async function onExport(){
const report = new Core.PageReport();
await report.load(reportUrl);
var document = await report.run();
exportHtml(document);
exportCSV(document);
exportPdf(document);
}