JasperReports는 Java 전용 오픈 소스 보고 도구로, 애플리케이션 보고서를 생성합니다. 이 보고 도구는 HTML, PDF, XLS, RTF, CSV, XML, ODT, TXT 등 다양한 파일 형식으로 풍부한 보고서 콘텐츠를 화면, 프린터 내보내는 것을 지원합니다.
JasperReports는 Java EE와 같은 Java 지원 애플리케이션이나 동적 콘텐츠를 생성하는 웹 애플리케이션에도 사용할 수 있습니다.
JasperReports 설치
여기에서 Jasper Reports 커뮤니티 에디션을 설치하세요.
https://community.jaspersoft.com/community-download
재스퍼 보고서 구조
.jrxml 보고서 템플릿은 아래 다이어그램에 나타난 대로 다음과 같은 부분들로 구성되어 있습니다.
1. 제목에는 보고서의 "헤드라인"이 포함되어 있습니다. 보고서 시작 부분에 단 한 번만 등장합니다. 예를 들어, 보고서 제목은 "학생 보고서"입니다.
2. 페이지 제목에는 날짜와 시간 정보나 기관명이 포함될 수 있습니다. 각 페이지 상단에 표시됩니다. 예를 들어: 페이지 제목이 "학생 기록"일 수 있습니다.
3. 열의 헤더에는 "학생 ID", "학생 이름", "학생 주소" 등 보고서에 표시될 특정 필드의 이름이 나열됩니다.
4. 상세 정보 섹션에는 특정 필드에 대한 항목이 표시됩니다. 예를 들어: 학생 ID=101, 학생 이름="덴 피크", 학생 주소="푸네".
5. 칼럼 기둥은 어떤 필드의 합계를 표시할 수 있습니다. 예를 들어, "총 학습 시간: 하루 6시간."
6. 풋에는 페이지 번호 정보가 포함될 수 있습니다. 각 페이지 하단에 표시되어 있는데, 예를 들어 "페이지 번호 1, 2, 3, 그리고 모든 페이지 번호"와 같습니다.
7. 초록: 보고서의 요약으로, 최소 한 번 이상 초록에 작성됨.
JasperReports — 생애주기
보고서 설계 — 이 단계에서는 보고서 레이아웃 정의가 포함된 XML 문서인 JRXML 파일을 만듭니다. 컴파일 보고서 - 이 단계에서 JRXML은 Jasper(*.jasper)라는 이진 객체로 컴파일됩니다. 보고서에 데이터를 입력하는 과정—이 단계에서 애플리케이션의 데이터가 컴파일된 보고서에 반영됩니다. net.sf.jasperreports.engine.JasperFillManager 클래스는 보고서 데이터를 채우는 데 필요한 함수를 제공합니다. 시스템은 재스퍼 인쇄 파일(*.jrprint)을 생성하여 보고서를 인쇄하거나 내보낼 수 있습니다. 내보내기 보고서 - 이 단계에서는 JasperExportManager를 사용해 이전 단계에서 생성된 Jasper 인쇄 파일을 어떤 형식으로든 내보낼 수 있습니다.
API 클래스
JRXML 보고서 설계 컴파일, 보고서 작성, 보고서 인쇄, PDF, HTML, XML 파일 내보내기를 위한 다양한 클래스가 있습니다.
(net.sf.jasperreports.engine) 패키지에는 어떤 콘텐츠가 포함되어 있나요?
· JasperCompileManager — JRXML 보고서 템플릿을 컴파일하는 데 사용됩니다. · JasperFillManager — 데이터 소스의 데이터를 사용해 보고서를 작성하는 데 사용됩니다. · JasperPrintManager — JasperReports 라이브러리에서 생성된 문서를 인쇄하는 데 사용됩니다. · JasperExportManager — 보고서 작성 과정에서 생성된 문서의 PDF, HTML 또는 XML 콘텐츠를 얻는 데 사용됩니다.
데이터 출처
데이터 소스는 구조화된 데이터 컨테이너입니다. 보고서를 생성할 때 JasperReports 엔진은 데이터 소스에서 데이터를 가져옵니다. 데이터는 데이터베이스, XML 파일, 객체 배열, 객체 컬렉션에서 얻을 수 있습니다.
아래 표는 데이터 소스와 그 구현 클래스를 요약합니다—
재스퍼 리포트 데이터 요소
매개변수: $P $P{parameter_name)
· 보고서 내 개별 값에 사용됩니다.
· 데이터 소스를 통과할 수 없는 데이터는 매개변수를 통과할 수 있습니다. 예를 들어, 제목 보고서와 기타 데이터 등이 있습니다.
· JasperReports 템플릿이나 JRXML 템플릿은 0개 이상의 매개변수 요소를 가질 수 있습니다.
필드: $F $F{field_name}
· 보고서 필드는 데이터 소스와 보고서 템플릿 간의 데이터 매핑을 나타내는 요소들입니다.
각 반복에서 값을 변경하거나, 다시 말해 테이블 내 데이터 행을 나타내는 데 사용됩니다.
변수: $V $V{variable_name}
· 재스퍼 보고서에서 제공했습니다.
또한 산술 연산과 같은 재스퍼 보고서 계산에도 사용됩니다.
재스퍼 보고서를 만드는 단계
1. jrxml 파일을 Spring Resources 폴더에 복사하여 템플릿을 설계합니다
2. 필요한 매개변수 생성
3. 데이터 소스 생성
4. JasperReport 객체에 저장된 .jrmxl 템플릿을 컴파일합니다
5. 컴파일된 .jrxml 객체, 매개변수, 데이터 소스를 전달하여 보고서를 작성합니다.
6. 내보내기 보고서 — JasperExportManager 사용
SpringBoot 예시 — JasperReports
Maven 의존성을 추가하세요.
컨트롤러
운용
emp24.jrxml
실행 후 생성된 보고서를 받게 됩니다.http://localhost:8990/empapp/api/v1/reports/jasper/emp24?fileType=doc
JasperReports — 하위 보고서 표현의 예시
하위 보고서의 경우, 기존 템플릿 emp.jrxml을 열고 또 다른 템플릿 user.jrxml을 하위 보고서로 추가하세요.
메인 보고서에 자식 보고서를 추가하려면 메인 보고서를 열고 패널에서 자식 보고서를 클릭한 뒤 요약 영역으로 드래그한 후 다음 정보를 입력하세요.
"자식 보고서 요소만 생성"을 선택한 후 "다음"을 클릭하세요. 데이터베이스 연결을 사용하지 말고, 다음 단계로 넘어가서 마무리하세요. 우클릭 > 정렬 > 너비/표 형식에 적응하세요
User.jrxml 서브리포트의 경우, 메인 리포트의 서브리포트 데이터를 매개변수로 전달합니다. 이를 달성하기 위해서는 ......
subReport 같은 새로운 매개변수와 메인 보고서에 있는 데이터 타입 JasperReport 같은 것을 생성하세요 subDatasource와 데이터 타입에 대한 새로운 매개변수 생성 JRBeanCollectionDataSource 새로운 매개변수 생성 subParameters와 데이터 타입 Map
이제 서브리포트 속성을 열어
$P{REPORT_CONNECTION} 제거 표현식: $P{subReport} 매개변수 매핑 식: $P{subParameters} 데이터 소스 표현식: $P{subReportDataSource}
이제 매개변수로 전달하는 모든 데이터는 서브리포트에 채워집니다.
샘플 코드
empSubreport.jrxml
시험해보세요:http://localhost:8990/empapp/api/v1/reports/jasper/subreport?fileType=pdf
참조:하이퍼링크 로그인이 보입니다. 원문 언어:하이퍼링크 로그인이 보입니다. |