티스토리 뷰

728x90

리포팅 도구는 다양한 형태의 보고서를 손쉽게 제작 및 배포할 수 있도록 도와 주는 도구입니다. 보고서 출력은 화면이나 인쇄, 파일 등을 대표적인 대상으로 하며 입력은 주로 데이터베이스를 그 원천으로 합니다. 개발자가 보고서 작성 도구를 활용하여 보고서 양식을 작성해 놓으면, 사용자가 조회한 정보를 해당 양식에 맞게 자동 출력해 주는 형태입니다. 개발자는 출력 양식을 프로그램 코드로 일일이 코딩할 필요없이 양식 작성과 데이터 필드 설정 등 만으로 필요한 작업을 모두 끝낼 수 있습니다.


대표적인 상업용 리포팅 도구들을 살펴보면 비주얼스튜디오에서 쉽게 접할 수 있는 크리스탈 리포트(Crystal Reports), 액티브리포트(ActiveReports) 등의 전문 리포팅 도구 제품과 함께 IBM, SAP, Oracle등 주요 ERP 및 BI 패키지 공급 업체들이 공급하는 리포팅 도구들이 있습니다. 범위를 좁혀서 차트 등의 전문적인 제품을 공급하는 업체들도 있습니다.


오픈소스 리포팅 도구를 살펴보면 크게 Java 진영과 .NET 진영에서 사용할 수 있는 도구로 나누어 볼 수 있습니다. Java 진영에는 Jasper(http://jasperforge.org/projects/jasperreports/), Pentaho가(http://sourceforge.net/projects/jfreereport/, http://reporting.pentaho.com/) 대표적이고 BIRT(http://www.eclipse.org/birt/phoenix/), OpenReports(http://oreports.com/, http://sourceforge.net/projects/oreports/) 등이 있습니다.


.Net 진영에는 RDL(Report Definition Language) 기반의  fyiReporting(http://www.fyireporting.com/)을 예로 들 수 있습니다.


오픈소스 리포팅 도구를 선택함에 있어서 검토해야 할 주요 요소를 나열해 보면 다음과 같습니다.


    • 라이선스와 상업용 옵션의 형태와 내용

    • 시각적 보고서 작성 도구

    • 설치/환경설정/사용의 용이성

    • 성능

    • 웹 지원 기능

    • 연관 기술

    • 파일 출력 형태(PDF, HTML, XLS, RTF, CSV, TXT, XML, Flash......)

    • 보고서 제공 방법(웹, 이메일.......)

    • 보안 체계

    • 주기적인 배치 보고서 작성 기능

    • 시스템 인터페이스(DBMS, SOAP...)



■ 재스퍼 리포트(JasperReports)


http://jasperforge.org/projects/jasperreports/



Java기반으로 작성된 오픈소스 리포팅 툴입니다. JasperSoft사에서(http://www.jaspersoft.com/editions) 상업용 버전도 별도로 판매하고 있습니다.



Jasper는 위의 그림과 같이 삼성 SDS에서 공개한 Anyframe(http://www.anyframejava.org/)에도 장착되어 있습니다.



재스퍼 리포트(JasperReports)는 위의 그림과 같이 Designer에서 작성한 보고서 양식 파일을 근간으로 해서 DB와 Hash map(parameter)등의 데이터를 조합하여 화면 출력, 인쇄, 파일 생성등의 작업을 진행하는 체계 입니다.



재스퍼 리포트(JasperReports) 관련 오픈소스 프로젝트들을 관리하는 Jasperforge에는 위와 같은 관련 프로젝트들이 있으므로 적절한 조합으로 사용하면 됩니다.



Jaspersoft Studio는 JasperReports와 JasperReports Server를 위한 보고서를 생성하기 위한 도구로 독립프로그램으로 실행시킬 수도 있고 이클립스(Eclipse) 플러그인 형태로 사용 할 수도 있습니다. 시각화 도구를 통하여 화면 출력이나 인쇄할 보고서 양식 작성, 다양한 데이터 소스 추출, 서버 배치, 다양한 파일 형태로 내보내기 등을 수행 할 수 있습니다. 위의 그림은 스튜지오(Studio)의 실행 화면 입니다.



재스퍼 리포트 라이브러리(JasperReports Library)는 실제 보고서를 만들어내는 자바 기반의 보고서 작성 엔진(Java reporting engine)의 역할을 담당하고, 재스퍼 리포트 서버(JasperReports Server)는 위의 그림과 같은 아키텍처를 가지고 웹기반의 보고서 서비스를 제공 합니다.




■ 펜타호(Pentaho)


http://reporting.pentaho.com/



Java 기반의 리포팅 툴로서 아키텍처는 재스퍼 리포트처럼 디자이너(Pentaho Report Designer), 서버(Pentaho BI Server), 보고서 엔진(Classic Engine), 보고서 개발 키트(Pentaho Reporting Software Developer's Kit) 등의 패키지로 구성되어 있습니다. 용도에 맞게 구성하여 사용하면 됩니다. 



위의 그림은 펜타호의 시스템 아키텍처를 나타낸 것입니다. Pentaho  또한 오픈소스 패키지와 더불어 상용 버전을 판매하고 있습니다.(http://www.pentaho.com/explore/packages/) 오픈소스와 상용간에 차이가 크고, 사용 용이성이나 환경 설정이 쉽지 않다는 평이 있습니다.



위의 그림은 펜타호 보고서 작성기(Pentaho Report Designer)의 사용 예제 입니다.






■ fyiReporting RDL project


http://www.fyireporting.com/    https://github.com/majorsilence/My-FyiReporting



fyiReporting사의 RDL Project는 .Net 기반에서 RDL(Report Definition Language) 형태로 다양한 보고서 양식을 저장하여 다양한 데이터와 조합하여 화면 출력, 인쇄, 파일 내보내기 등을 수행할 수 있는 리포팅 도구 입니다. 차트를 포함한 다양한 형태의 보고서를 만들 수 있고, 보고서 출력은 인쇄 뿐만아니라 웹 컨텐츠, .Net 컨트롤로도 내보낼 수 있습니다. HTML, PDF, XML, RTF, Excel등의 파일로 내보낼 수도 있습니다. 라이선스는 Apache License Version 2로 오픈소스와 상용에 모두 사용이 가능 합니다.


시각화 도구를 통하여 손쉽게 보고서를 작성할 수 있을 뿐만아니라, 윈도우 .Net에 더하여 ASP .Net 라이브러리, 커맨드라인 라이브러리도 지원하기 때문에 다양한 확장성을 가진 응용을 개발 할 수 있습니다.  RDL Project 자체는 C#으로 개발되었습니다.



위의 그림은 Report Designer로 예제 rdl파일을 열어본 화면 입니다. RdlViewer.dll, RdlEngine.dll 등의 가벼운 DLL을 응용에 포함시킴으로써 보고서 출력 기능이 내장된 응용을 손쉽게 만들 수 있습니다.




728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함