[]
Page Report 클래스는 보고서 템플릿, 매개 변수 값 및 런타임 구성을 입력으로 사용하고 보고서 출력을 생성하는 속성 및 메서드를 제공하는 보고서 인스턴스를 나타냅니다.
페이지 보고서 클래스 생성자에는 세 가지 options
속성이 있는 개체인 선택적 인수가 있습니다. 그 중 2개는 내부용이지만 memoizeData
라는 세 번째 호출은 보고서 데이터를 저장하고 보고서의 후속 실행에서 재사용해야 하는지 여부를 결정합니다. 기본값인 true
로 설정하면 보고서 데이터가 저장되고 이후 실행을 위해 재사용되므로 데이터를 다시 가져올 필요가 줄어들어 성능이 향상됩니다. false
로 설정하면 보고서 데이터가 저장되지 않고 보고서가 실행될 때마다 새로 가져옵니다. 그러나 보고서의 데이터 바인딩이 동적이며 후속 실행에 따라 달라질 수 있는 매개 변수 값에 따라 달라지는 경우 memoizeData
값이 무시됩니다.
다음은 새 PageReport
클래스 인스턴스를 초기화하는 코드 예입니다.
import {Core} from "@mescius/activereportsjs";
var report = new Core.PageReport({
memoizeData: true
});
PageReport
클래스의 load
메소드를 사용하여 보고서 템플릿을 설정하고 보고서 실행에 필요한 런타임 환경을 구성할 수 있습니다. load
메서드의 첫 번째 인수는 보고서 템플릿을 검색하는 URL이거나 보고서 유형의 개체입니다. 두 번째 인수는 선택 사항이며 여러 속성이 있는 개체입니다.
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: "Product Catalog",
},
});
PageReport 클래스
에는 매개변수 값을 설정, 유효성 검사 및 확인하는 메서드가 포함된 reportParameters
속성이 있습니다. 매개변수 값을 제공할 때 단일 값 매개변수의 경우에도 항상 원자 값(예: 숫자, 문자열, 부울 값 또는 날짜)의 배열을 사용하십시오.
다음은 PageReport
클래스의 인스턴스를 만들고, 보고서 템플릿을 로드하고, 매개 변수 값을 설정하는 방법을 보여주는 예입니다.
import {Core} from "@mescius/activereportsjs";
var report = new Core.PageReport();
// Load the report template and set parameter values
await report.load(`assets/Products.rdlx-json`, {
reportParameters: [{
Name: 'Header',
Value: ['Product List'] // string single value parameter
}, {
Name: 'SupplierIds',
Value: [1, 2, 3] // integer multi value parameter
}]
});
또는 다양한 고급 시나리오에서 매개 변수 값을 설정하기 위해 reportParameters
개체의 applySteps
메서드를 사용할 수 있습니다.
var report = new Core.PageReport();
await report.load(`assets/Products.rdlx-json`);
// Set parameter values using the applySteps method
report.reportParameters.applySteps([
{
Name: "Header",
Value: ["Product List"], // string single value parameter
Type: "Set",
},
{
Name: "SupplierIds",
Value: [1, 2, 3], // integer multi value parameter
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 = ["Product List"];
const document = await report.run();