이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 1|회답: 0

[출처] [재게시] 스프링 부츠와 재스퍼 리포트, 건설 보고.

[링크 복사]
게시됨28초 전 | | | |
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



참조:하이퍼링크 로그인이 보입니다.
원문 언어:하이퍼링크 로그인이 보입니다.




이전의:.NET/C# iText를 사용해 PDF에 텍스트 워터마크를 추가하세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com