2009-03-12 4 views
9

웹 응용 프로그램에 html 페이지로 포함 된 보고서를 생성하거나 pdf으로 다운로드 할 수있는 보고서를 생성하려고합니다. 따라서 나는이 요구 사항을 충분히 채울 것이라고 생각했기 때문에 JasperReports을 발견했습니다.JasperReports는 웹 응용 프로그램에서 보고서를 표시하는 적절한 솔루션입니까?

현재 우리 보고서에는 거의 히스토그램과 일부 테이블로 구성된 약 50-100 페이지가 있다고 가정합니다. 데이터는 DB의 비싼 쿼리로 검색됩니다.

하루 종일 그것을 평가 한 후에 나는 웹 애플 리케이션 측면에 관한 몇 가지 의구심이 있습니다.

1) 페이지 매기기 : 물론 모든 페이지를 단일 웹 페이지에 표시하고 싶지는 않습니다. 페이지 매김과 같은 것이 필요합니다. 그러나 JasperReports은이 접근 방식을 지원하지 않는 것 같습니다. JasperReports를와 함께 제공되는 WEPP 데모는, 이동하는 방법을 스케치 : 이미를 unrequired 메모리를 할당 전체 보고서,하고 고가의 쿼리를 수행 이는 JasperPrint을 만들어야합니다. 그런 다음 한 페이지를 표시 할 수있었습니다. 그러나 각 페이지마다 이것을 반복해서하는 것은 나에게 적절한 해결책으로 보이지 않습니다.

2) 앞서 언급했듯이 보고서는 대부분 다이어그램으로 구성됩니다. 이미지는 출력 형식으로 JasperPrint을 내보내는 동안 생성됩니다. 내가 와 JR을 오는 ImageServlet, 모든 것이 올바른 이해한다면, 할 수 있지만, 이러한 이미지는 수출을 저장 한 파일 시스템
II)에서 생성 된 이미지를 읽기

전) 일 검색 세션에서 (따라서 메모리에).

우리는 webapp의 메모리 사용량을 낮게 유지하기 위해 많은 이미지가있을 것이라고 생각합니다. ii) 옵션이 아닙니다. 그러나 파일 시스템에 파일을 범람시키는 것도 내가 상상할 수있는 최선의 생각이 아닙니다. 파일을 삭제합니까?

내가 잘못 했습니까? 내 이해가 맞습니까?

답변

3

매김

그것은 당신의 pageing가 인도 표준시 구현 방법 서비스 디자인의 종류입니다! PDF는 인쇄 문제에 대한 독립 실행 형 출력 형식입니다. 웹 서비스 및 리더 확장없이 서버에서 더 많은 데이터를 읽을 수 없습니다. 따라서 JasperReports가 페이징을위한 데이터의 하위 집합이어야한다는 것을 정의 할 수 있습니다.

JasperReports에서 데이터 세트를 정의하면 필요하지 않은 메모리를 할당하지 않고 재사용 할 수 있습니다.

이미지이 보고서에 이미지를 원하는로부터 동적 값이 될 수있다 (낮은 메모리 풋 프린트를 유지하는 서버 부하가 지정된 값 중일 때 이미지를 생성하는 분산 알고리즘을 작성하는 경우

마지막 날로드 평균).

이미지의 실시간 생성이 필요합니까?이미지가 서블릿에 의해 생성 된 경우 메모리에로드됩니다. Java 응용 프로그램. ReportGenerator에 이미지를 전달할 수 있습니다.

이미지는 메모리, 디스크 또는 URL 에서 볼 수 있습니다. Jasper Reports Book P : 170

이미지는 절대로 HTTP_SESSION! 이것은 메모리 팽창을 일으키는 전체 반 패턴입니다.

+0

그 책을 찾고 있습니다! 굉장해! – frohiky

0

아니요. 모든 문제가 발생합니다.

XHTML/CSS로 보고서를 생성 할 수 있다고 생각합니다. PDF 렌더링이 필요한 경우 Flying Saucer XHTML 렌더러 만 사용하십시오.

관련 문제