[{"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)

レポートの印刷とエクスポート

PageDocumentクラス

レポートの実行」で説明したように、PageReportインスタンスのrunメソッドを呼び出すと、PageDocumentクラスのインスタンスで実行されるPromiseオブジェクトが返されます。PageDocumentクラスを使用して、レポートの印刷やエクスポートできます。

レポートの印刷

レポートを印刷するには、レポートをHTML形式にエクスポートし、結果をブラウザの組み込みの印刷ダイアログで開きます。このプロセスは、PageDocumentクラスのprintメソッドによって行われます。printメソッドは、次の3つのオプション引数を提供します。

  • renderOptions :描画オプションを指定します。印刷の場合はundefinedを設定します。

  • onProgress :レポートの各ページがHTMLに描画された後に呼び出されるコールバック関数です。この関数は描画されたページ数に対する進行状況を数値型の引数で受け取ります。

  • checkCancel :レポートの各ページが描画された後に呼び出されるコールバック関数です。レポートの印刷をキャンセルするかどうかを示すBool値を返します。

onProgresscheckCancelの引数を使用して、印刷ジョブの進行状況を表示し、ユーザーが[キャンセル]ボタンをクリックしたときにレポートの印刷をキャンセルできるようすることができます。次のコードは、レポートを出力し、進行状況に関する情報をコンソールに送信する方法のサンプルコードです。

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を使用すると、PdfExportHtmlExportTabularDataExportオブジェクトによってレポート出力をPDFHTMLCSVにエクスポートすることができます。

  import {
    PdfExport,
    HtmlExport,
    TabularDataExport,
  } from "@mescius/activereportsjs";

各エクスポートオブジェクトは、次の4つの引数を持つexportDocumentメソッドを提供します。

  • sourcePageDocumentクラスのインスタンスです。

  • settings :エクスポートされたドキュメントの設定です。この引数は、エクスポートタイプ毎に異なります。

    • PDFExport.exportDocumentPdfSettingsオブジェクトを受け取ります。

    • HtmlExport.exportDocumentHtmlSettingsオブジェクトを受け取ります。

    • TabularDataExport.exportDocumentTabularDataSettingsオブジェクトを受け取ります。

  • onProgress :レポートの各ページがエクスポートされた後に呼び出されるコールバック関数です。この関数はエクスポートされたページ数に対す進行状況を数値型の引数で受け取ります。

  • checkCancel :レポートの各ページが描画された後に呼び出されるコールバック関数です。エクスポートをキャンセルするかどうかを示すBool値を返します。

exportDocumentメソッドは各エクスポートタイプ毎に、固有のPromiseオブジェクトを返却します。

  • PDFExport.exportDocumentではPdfExportResultオブジェクトでエクスポート結果を返却します。PdfExportResultオブジェクトを使用すると、downloadメソッドを使用してエクスポートの結果をダウンロードしたり、Blob型のdataプロパティを使用して結果を保存したりできます.

  • HtmlExport.exportDocumentではHtmlExportResultオブジェクトでエクスポート結果を返却します。HtmlExportResultオブジェクトを使用すると、downloadメソッドを使用してエクスポートの結果をダウンロードしたり、HtmlSettingsmultiPageプロパティの値に応じて、文字列またはBlob型のdataプロパティを使用して結果を保存することができます。

  • TabularDataExport.exportDocumentではTabularDataExportResultオブジェクトでエクスポート結果を返却します。TabularDataExportResultオブジェクトを使用すると、downloadメソッドを使用してエクスポートの結果をダウンロードしたり、TabularDataSettings.csvSettingsoutputTypeプロパティの値に応じて、文字列または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);
}