Report 파일 구조
RealReport 디자이너에서 RealReport는 확장명 .r2
를 가진 파일로 관리됩니다.
R2파일의 전체 구조는 아래와 같습니다.
{
"report": {
},
"page": {},
"assets": {},
"data": {},
"guid": {}
}
report
report
는 보고서 출력을 위한 설정 정보를 포함하고 있습니다. 출력할 종이의 크기 및 마진과 같은 프린터 설정 정보를 이곳에 기록합니다.
{
"repot": {
"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