보고서 정의
보고서는 용지 설정, 기본 글꼴, 조회 조건, 스타일, 요소를 배치한 밴드로 이루어진 JSON 객체입니다. 보고서 정의의 모든 속성을 설명합니다.
보고서는 JSON 객체입니다. 용지 설정, 기본 글꼴, 필요하면 파라미터와 스타일, 그리고 요소가 배치된 밴드로 이루어집니다. 레이아웃 엔진이 데이터와 묶어 페이지를 만들고, 뷰어·인쇄·PDF·엑셀은 모두 같은 페이지를 그리므로 결과가 똑같습니다.
{
"name": "거래처별 매출",
"page": { "size": "A4", "orientation": "portrait", "margins": 15 },
"font": { "family": "Nanum Gothic", "size": 9 },
"sort": ["customer", "date"],
"bands": {
"title": { "height": 14, "elements": [
{ "type": "text", "x": 0, "y": 0, "w": 180, "h": 10, "text": "거래처별 매출", "style": { "fontSize": 16, "bold": true } }
] },
"columnHeader": { "height": 7, "elements": [
{ "type": "text", "x": 0, "y": 0, "w": 30, "h": 7, "text": "일자", "style": { "bold": true, "border": true } },
{ "type": "text", "x": 30, "y": 0, "w": 110, "h": 7, "text": "거래처", "style": { "bold": true, "border": true } },
{ "type": "text", "x": 140, "y": 0, "w": 40, "h": 7, "text": "금액", "style": { "bold": true, "border": true } }
] },
"detail": { "height": 6, "elements": [
{ "type": "field", "x": 0, "y": 0, "w": 30, "h": 6, "expr": "date", "format": "yyyy-MM-dd", "style": { "border": true } },
{ "type": "field", "x": 30, "y": 0, "w": 110, "h": 6, "expr": "customer", "suppressRepeated": true, "style": { "border": true } },
{ "type": "field", "x": 140, "y": 0, "w": 40, "h": 6, "expr": "amount", "format": "#,##0", "style": { "border": true, "align": "right" } }
] },
"summary": { "height": 8, "elements": [
{ "type": "text", "x": 0, "y": 1, "w": 180, "h": 7, "text": "합계 {sum(amount):#,##0}원 ({koreanAmount(sum(amount))})", "style": { "align": "right", "bold": true } }
] },
"pageFooter": { "height": 8, "elements": [
{ "type": "text", "x": 0, "y": 2, "w": 180, "h": 5, "text": "{page} / {pages}", "style": { "align": "center" } }
] }
}
}| 이름 | 타입 | 설명 |
|---|---|---|
name | string | 보고서 이름. 파일 이름과 출력 이벤트에 쓰입니다. |
page | PageSetup | 용지 크기, 방향, 여백. |
font | { family, size, color } | 보고서 기본 글꼴(기본 나눔고딕 9pt). |
styles | Record<string, Style> | 이름 붙인 스타일. 요소에서 styleName으로 씁니다. |
params | Record<string, ParamDefinition> | 뷰어의 조회 조건 패널에 나오는 파라미터. |
dataSource | string | 데이터에서 상세 행 배열의 이름(기본 "rows"). |
sort | string[] | 상세 행 정렬. 예: ["region", "-amount"] ("-"는 내림차순). |
filter | Expr | 수식이 참인 행만 남깁니다. |
bands | object | title, pageHeader, columnHeader, groups, detail, summary, pageFooter, noData. |
pageHeaderSkipFirst | boolean | 첫 페이지에는 페이지 머리글을 찍지 않습니다. |
fillEmptyRows | boolean | 각 페이지의 남은 공간을 빈 상세 행으로 채웁니다(양식 표). |
watermark | string | Watermark | Watermark[] | 내용 뒤(또는 위)에 찍는 글자·이미지 표시. |
emboss | Emboss | Emboss[] | 종이에 눌러 찍은 듯한 돋움 직인·로고·글자. |
모든 위치와 크기는 밴드 왼쪽 위에서 잰 mm 단위입니다. 글자 크기는 pt입니다.