[]
보고서 실행 섹션에서 언급했듯이 PageReport
인스턴스의 run
메서드를 호출하면 PageDocument 클래스의 인스턴스로 실행되는 Promise 객체가 생성되어 보고서 출력을 인쇄하고 내보낼 수 있습니다.
보고서 출력을 인쇄하는 프로세스는 보고서를 HTML로 내보내고 브라우저에 내장된 인쇄 미리 보기 UI에서 결과를 여는 방식으로 수행됩니다. PageDocument 클래스
의 print
메드는 이 프로세스를 용이하게 하며 세 가지 선택적 인수를 옵션으로 제공합니다.
renderOptions
– 인쇄의 경우, undefined
으로 설정할 수 있습니다.
onProgress
– 보고서의 각 페이지가 HTML로 렌더링된 후 호출되는 콜백 함수입니다. 렌더링된 페이지 수에 해당하는 단일 숫자 인수를 허용해야 합니다.
checkCancel
– 보고서의 각 페이지가 렌더링된 후 호출되는 콜백 함수입니다. 인쇄 프로세스를 중단해야 하는지 여부를 나타내는 부울 값을 반환해야 합니다.
이러한 선택적 인수인 onProgress
와 checkCancel
을 활용하여 인쇄 작업의 진행 상황을 표시하고 Cancel
버튼 클릭과 같은 특정 사용자 이벤트에 대한 응답으로 인쇄 작업을 취소할 수 있는 사용자 정의 사용자 인터페이스를 구현할 수 있습니다. 아래 코드는 보고서를 인쇄하고 진행 상황에 대한 정보를 콘솔로 보냅니다.
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
문서로 내보낼 수 있습니다.이들 모두는 Core 라이브러
의 일부입니다.
import {
PdfExport,
HtmlExport,
TabularDataExport,
} from "@mescius/activereportsjs";
각 내보내기 개체는 다음 네 가지 인수가 있는 exportDocument
메서드를 제공합니다.
source
– 위에서 설명한 PageDocument
클래스의 인스턴스입니다.
settings
– 내보낸 문서의 설정입니다. 이 인수는 각 내보내기 유형에 따라 다릅니다.
PDFExport.exportDocument
는 PdfSettings object 을 허용 합니다.
HtmlExport.exportDocument
는 HtmlSettings object 을 허용 합니다.
TabularDataExport.exportDocument
는 TabularDataSettings object 을 허용합니다.
onProgress
– 보고서의 각 페이지를 내보낸 후 호출되는 콜백 함수입니다. 내보낸 페이지 수에 해당하는 단일 숫자 인수를 허용해야 합니다.
checkCancel
– 보고서의 각 페이지가 렌더링된 후 호출되는 콜백 함수입니다. 내보내기 프로세스를 중단해야 하는지 여부를 나타내는 부울 값을 반환해야 합니다.
exportDocument
메소드는 각 내보내기 유형에 특정한 결과로 이행되는 Promise 객체를 반환합니다:
PDFExport.exportDocument
는 download
메서드를 사용하여 결과를 다운로드하거나 Blob 유형의 data 속성을 사용하여 결과를 저장할 수 있도록 하는 PdfExportResult 객체로 약속을 이행합니다.
HtmlExport.exportDocument
는 HtmlSettings
의 multiPage
속성 값에 따라 download
메서드를 사용하여 결과를 다운로드하거나 string
또는 Blob
인 data
속성을 사용하여 결과를 저장할 수 있는 HtmlExportResult 객체를 사용하여 약속을 이행합니다.
TabularDataExport.exportDocument
는 TabularDataSettings.csvSettings
의 outputType
속성 값에 따라 download
메서드를 사용하여 결과를 다운로드하거나 string
또는 Blob
인 data
속성을 사용하여 결과를 저장할 수 있는 TabularDataExportResult 객체를 통해 약속을 이행합니다.
다음은 각 내보내기 유형에 대한 코드 예제입니다.
import {
PdfExport,
HtmlExport,
TabularDataExport,
} from "@mescius/activereportsjs";
async function exportPdf(document: PageDocument){
const pdfSettings: PdfExport.PdfSettings = {
info: {
title: "Product List"
}
}
const result = await PdfExport.exportDocument(document, pdfSettings);
result.download("products.pdf");
}
async function exportHtml(document: PageDocument){
const htmlSettings: HtmlExport.HtmlSettings = {
title: "Product List",
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);
}