2009-03-12 32 views
9

Chúng tôi muốn tạo Báo cáo được nhúng dưới dạng trang html trong ứng dụng web hoặc có thể tải xuống dưới dạng pdf. Do đó tôi đã xem qua số JasperReports vì nó nghĩ rằng nó sẽ đáp ứng đầy đủ các yêu cầu này.JasperReports giải pháp thích hợp để hiển thị báo cáo trong một ứng dụng web?

Hiện tại chúng tôi cho rằng báo cáo của chúng tôi sẽ có khoảng 50-100 trang, bao gồm gần như chỉ có biểu đồ và một số bảng. Dữ liệu được truy xuất bởi một số truy vấn tốn kém từ DB của chúng tôi.

Sau khi đánh giá nó cả ngày, tôi có một số nghi ngờ về khía cạnh ứng dụng web.

1) Phân trang: Tất nhiên tôi không muốn hiển thị tất cả các trang trong một trang web. Chúng ta cần thứ gì đó như phân trang. Nhưng JasperReports dường như không hỗ trợ phương pháp này. Bản demo wepp, đi kèm với JasperReports, phác thảo đường đi: Tôi phải tạo một JasperPrint, đã là báo cáo đầy đủ, phân bổ bộ nhớ không được yêu cầu và bộ nhớ đã thực hiện các truy vấn tốn kém. Sau đó, tôi có thể hiển thị một trang duy nhất. Nhưng làm điều này một lần nữa và một lần nữa cho mỗi trang không xuất hiện như là một giải pháp thích hợp cho tôi.

2) Như đã đề cập ở trên, báo cáo của chúng tôi chủ yếu sẽ bao gồm các biểu đồ. Hình ảnh được tạo trong khi xuất JasperPrint sang định dạng đầu ra. Nếu tôi hiểu tất cả mọi thứ chính xác, ImageServlet, mà đi kèm với JR, có khả năng nhưng lấy những hình ảnh này được

i) Đọc những hình ảnh tạo ra từ các hệ thống tập tin
ii) nhà xuất khẩu đã lưu trữ chúng trong phiên (do đó trong bộ nhớ).

Vì tôi nghĩ rằng chúng tôi sẽ có nhiều hình ảnh ii) không phải là một tùy chọn, nếu chúng tôi muốn giữ chân bộ nhớ của webapp thấp. Nhưng mặt khác, lũ lụt hệ thống tập tin với các tập tin cũng không phải là ý tưởng tốt nhất tôi có thể tưởng tượng. Liệu nó xóa các tập tin một cách nào đó?

Tôi có điều gì sai không? Tôi hiểu có đúng không?

Trả lời

3

Pagination

Đó là loại thiết kế dịch vụ của bạn như thế nào pageing bạn thực hiện ist! PDF là định dạng đầu ra độc lập cho các sự cố in ấn. Nó không thể đọc thêm dữ liệu từ máy chủ (không có Dịch vụ Web và Tiện ích mở rộng Reader). Vì vậy, bạn có thể xác định, JasperReports chỉ nên là một tập hợp con dữ liệu của bạn để phân trang.

Nếu bạn xác định bộ dữ liệu trong JasperReports, bạn có thể sử dụng lại chúng mà không cần phân bổ bộ nhớ không được yêu cầu.

Images

Nếu bạn muốn hình ảnh trong các báo cáo của bạn và giữ bộ nhớ của bạn thấp, hãy viết một thuật toán cân bằng mà tạo ra những hình ảnh khi tải sever dưới một giá trị nào đó (có thể là một giá trị động từ trung bình của ngày tải cuối cùng).

Bạn có cần tạo thời gian thực của hình ảnh không?Nếu hình ảnh được tạo bởi một servlet, chúng sẽ được tải vào bộ nhớ. Ứng dụng Java. có thể chuyển hình ảnh đến ReportGenerator.

hình ảnh có thể được tải từ bộ nhớ, từ đĩa hoặc từ URL xem; Jasper Reports Book P: 170

Hình ảnh không bao giờ được lưu trong HTTP_SESSION! Đây là một tổng số antipattern gây ra bộ nhớ đầy hơi.

+0

tìm kiếm cuốn sách đó! tuyệt vời! – frohiky

0

No. Bạn sẽ có đủ loại vấn đề.

Tôi nghĩ rằng bạn chỉ có thể tạo báo cáo của mình bằng XHTML/CSS và nếu bạn cần hiển thị PDF, chỉ cần sử dụng trình kết xuất XHTML Flying Saucer XHTML.

Các vấn đề liên quan