Type: ReportDesigner
ReportDesigner
리얼리포트 웹 디자이너를 생성해주는 객체입니다.
ReportDesignerOptions
리얼리포트 웹 디자이너를 생성할 때 지정하는 옵션 타입
interface ReportDesignerOptions {
/**
* asset panel 표시 여부
* @default true
*/
showAssetPanel?: boolean;
/**
* data panel 표시 여부
* @default true
*/
showDataPanel?: boolean;
/**
* script panel 표시 여부
* @default true
*/
showScriptPanel?: boolean;
/**
* 왼쪽 아이템바에서 클릭 대신 아이템 아이콘을 drag해서 생성할지 여부
* @default true
*/
dragInsert?: boolean;
/**
* 리포트 양식 목록을 제공하는 사용자 코드
*/
getReportListCallback?: () => Promise<ReportListSource>;
/**
* 리포트 양식을 제공하는 사용자 코드
*/
getReportCallback?: (reportId: string) => Promise<IReportSource>;
/**
* 리포트 양식을 저장하는 사용자 코드
*/
saveReportCallback?: (
report: ReportForm,
reportId?: string,
reportContext: ReportContext,
) => Promise<SaveCallbackResponse | null>;
}
ReportListSource
getReportListCallback에서 사용되는 양식 목록 구성에 대한 타입
type ReportListSource = (ReportGroupSource | ReportSource)[];
/**
* ReportListSource 타입 예시
*/
const reportList: ReportListSource = [
{
type: 'group',
name: '양식 폴더',
children: [
{
type: 'report',
id: '1',
name: '리포트 양식 1',
},
],
},
{
type: 'report',
id: '2',
name: '리포트 양식 2',
},
];
ReportGroupSource
getReportListCallback에서 구성되는 목록 중 그룹 폴더로 지정할 수 있는 타입
type ReportGroupSource = {
type: 'group';
name: string;
children: ReportListSource;
};
ReportSource
getReportListCallback에서 구성되는 목록 중 양식 파일로 지정할 수 있는 타입
type ReportSource = {
type: 'report';
id: string;
name: string;
};
IReportSource
getReportCallback에서 반환 해야하는 양식 파일의 타입
interface IReportSource {
/**
* 보고서 양식에 지정해야 하는 고유한 id
*/
id: string;
/**
* 보고서 양식 디자인 데이터
*/
source: Record<string, any>;
}
ReportContext
saveReportCallback함수의 3번째 인자로 제공되는 양식과 관련된 정보 객체
type ReportContext = {
/**
* 양식의 이름
*/
name: string;
/**
* 양식이 수정되었는지 여부
*/
isModified: boolean;
};
SaveCallbackResponse
saveReportCallback에서 반환 해야하는 정보
type SaveCallbackResponse = {
reportId: string;
message?: string;
};
ReportOptions
type ReportOptions = {
/**
* 보고서 양식에 지정해야 하는 고유한 id
*/
reportId?: string;
};
FontSource
type FontSource = {
/**
* 폰트 이름
*/
name: string;
/**
* 폰트 파일 경로
*/
source: string;
/**
* 폰트의 굵기 종류
*/
weight: 'normal' | 'bold';
};
UserReportTemplate
interface UserReportTemplate {
name: string;
report?: Record<string, any>; // 양식 데이터
file?: string; // 양식 데이터 파일 경로
data?: {
// 샘플 데이터
[key: string]: ReportTemplateData;
};
dataFile?: string; // 샘플 데이터 파일 경로
thumbnail?: string;
description?: string;
}
ReportTemplateData
type ReportTemplateData =
| {
type: 'simple';
values: {
[key: string]: any;
};
}
| {
type: 'band';
values: {
[key: string]: any;
}[];
};