Report 파일 구조
RealReport 디자이너에서 RealReport는 확장명 .r2를 가진 파일로 관리됩니다.
R2파일의 전체 구조는 아래와 같습니다.
{
    "report": {
 
    },
    "page": {},
    "assets": {},
    "data": {},
    "guid": {}
}report
report는 보고서 출력을 위한 설정 정보를 포함하고 있습니다. 출력할 종이의 크기 및 마진과 같은 프린터 설정 정보를 이곳에 기록합니다.
{
    "report": {
        "name": "reportRoot",
        "paperSize": "A4",
        "paperWidth": "210mm",
        "paperHeight": "297mm",
        "marginLeft": "12mm",
        "marginRight": "12mm",
        "marginTop": "15mm",
        "marginBottom": "15mm"
    }
}name
- 리포트 이름
pageSize
- 종이 종류
paperWidth
- 종이 너비
paperHeight
- 종이 높이
marginLeft
- 왼쪽 마진
marginRight
- 오른쪽 마진
marginTop
- 윗쪽 마진
marginBottom
- 아랫쪽 마진
page
출력할 페이지에 포함된 아이템들이 이곳에 기록됩니다. 텍스트, 이미지등 기본 아이템 뿐만 아니라 테이블 밴드와 컨테이너같은 다양한 밴드 및 컨테이너 아이템도 이곳에 기록됩니다. page는 header, body, footer영역으로 구분되며, header와 footer는 보고서 전체에 한 번만 출력되는 report영역과 페이지 마다 출력되는 page역역으로 각각 구분되어
- reportHeader, reportFooter
- pageHeader, pageFooter
와 같이 page하위에 별도의 구조로 기록되어 있습니다.
{
    "page": {
        "name": "reportPage",
        "reportHeader": {},
        "pageHeader": {},
        "body": {},
        "pageFooter": {},
        "reportFooter": {}
    }
}name
- 페이지 객체 이름
reportHeader
- 리포트 헤더 섹션
- 리포트의 최 상단에 한 번 출력되는 영역입니다.
{
    "reportHeader": {
        "name": "",
        "height": 0,
        "items": []
    }
}pageHeader
- 페이지 헤더 섹션
- 리포트의 매 페이지 마다 상단에 출력되는 영역입니다.
{
    "pageHeader": {
        "name": "",
        "height": 0,
        "items": []
    }
}body
- 바디 섹션
- 리포트의 내용이 출력되는 영역이고 Band 아이템들과 데이터의 조합으로 여러페이지로 나누어 출력될 수 있습니다.
{
    "body": {
        "name": "",
        "height": 0,
        "items": []
    }
}pageFooter
- 페이지 푸터 섹션
- 리포트의 매 페이지 마다 하단에 출력되는 영역입니다.
{
    "pageFooter": {
        "name": "",
        "height": 0,
        "items": []
    }
}reportFooter
- 리포트 푸터 섹션
- 리포트의 최 하단에 한 번 출력되는 영역입니다.
{
    "reportFooter": {
        "name": "",
        "height": 0,
        "items": []
    }
}assets
- 이미지등 에셋 목록
data
- 리포트에서 사용할 데이터셋의 구조
{
    "data": {
        "data1": {
            "type": "band",
            "fields": [
                {
                    "fieldName": "",
                    "dataType": "",
                    "sample": "",
                    "description": "",
                    "dateReader": {}
                }
            ],
        },
        "data2": {
            "type": "simple",
            "fields": [
                ...
            ],
        }
    }
}type
- 데이터셋 타입
fields
- 데이터 필드 구조
fieldName
- 필드명
dataType
- 데이터 타입
sample
- 샘플 값
description
- 필드 설명
dataReader
- 데이터 리더
guid
- 리포트 GUID