BE/egovFramework

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio

콩다영 2021. 5. 13.
728x90

전자정부프레임워크 Spring에서 JasperReports 적용하는 방법  

 

Eclipse 기반의 리포팅 도구 Jaspersoft Studio 에 대해 알아보자 !

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역

 

 

 

 

 주요기능

  -  Eclipse 플랫폼 상에서 WYSIWTG 방식으로 리포트 파일 생성.

  -  파일, RDBMS, NoSQL DBMS 등 다양한 데이터 소스 지원.

  -  HTML, PPT, DOC, XLS, PDF 등 다양한 포맷으로 익스포트 가능.

 

 

 

Web Application 연동 과정

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역

Jasper Studio 보고서 파일(jrxml 파일)을 컴파일해서 jasper 파일을 생성하고, Jasper Library를 활용해서 직접 구현한 서블릿을 통해 jasper파일을 로딩해서 브라우저로 보여준다.

 

 

 

 

사용 환경

   : JasperReports를 사용하기 위해서는 반드시 jdk버전이 1.6 이상이어야한다. 

   Jaspersoft Studio를 사용한 환경은 아래와 같다. 난 엑셀 다운로드 기능을 구현하기 위해 사용하게 되었다.


   [ 사용한  환경 ]

 - eGovFramework : 3.0.0

 - JDK :  jdk - 1.7.0

 - Jaspersoft Studio : Jaspersoft Studio - 6.0.1


 

 

 

▶ spring에 적용하는 방법

 Jaspersoft Studio로 만든 jrxml 파일과 컴파일한 jasper파일을 

 해당 project 내 src/main/resources > egovframework > reports  폴더 안에 넣어준다.

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역

해당 파일들을 reports 폴더에 넣어준 후 해당 경로를 context-jasper.xml에 추가해준다.

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역
main > resources > egovframework > spring 

 

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역
context-jasper.xml

jasper 파일명(jrxml파일명)과 추가하는 bean의 id를 맞춰준다. ( 파일명 : testSampleList.jasper )

 

 

 

 

 

 

추가적으로 Controller에서 jrxml 파일 중 같은 id값을 리턴하는 부분에서 id가 필요하니 오타가 나지 않게 유의하여 작성하기 !!! 

id가 다르면 해당 파일을 못불러온당 !! ※※주의※※

난 엑셀 다운로드 기능을 구현하기 위해 사용하게 되었다. 엑셀 다운로드 이벤트 경로를 아래 경로로 해주었다고 가정하구 !

리스트 출력 개수와 해당 리스트도 불러와서 JRBeanCollectionDataSource를 사용해서 마지막에 Jrxml 파일 id를 찾아주면 Jaspersoft Studio로 만든 Jasper파일의 grid 형태로 해당 data가 들어가서 엑셀이 만들어져서 다운로드가 진행이 된다 !!

[eGovFrame] JasperReports 사용하기 - Jaspersoft Studio - undefined - 모든 영역
jasperreports를 사용하기 위해 타는 controller 부분

 

 

 

 

 

추후에 Jaspersoft Studio 사용법과 DB연동방법을 정리해서 업데이트할 예정 !

( 오늘 오후에...(!)ㅎ  요즘 너무 블로그를 안했댱 ,,, !!!! ㅎ_ㅎ;; )

728x90
반응형

댓글