Tôi muốn tạo trang web báo cáo động bằng JSP. Về cơ bản, nó phải chứa các phần sau:JasperBáo cáo đầu ra html và pdf
- Bộ lọc: Người dùng có thể chỉ định điều kiện bộ lọc và nhấn nút bộ lọc.
- Kết quả đầu ra HTML: Kết quả của bộ lọc có thể được xem tại đây. Đó là một trang html lớn (hoặc một vài trang nếu quá lớn). Nó có thể chứa các liên kết đến các phần khác của hệ thống.
- Đầu ra PDF: Người dùng có thể lưu phiên bản pdf của báo cáo cho mục đích in hoặc lưu trữ.
Thay vì tự mình thực hiện mọi thứ, tôi muốn sử dụng thư viện báo cáo java, vì vậy tôi đã tạo báo cáo của mình bằng cách sử dụng JasperReports. Đầu ra pdf thực sự tốt đẹp, nhưng xuất khẩu html của báo cáo không phù hợp với mục đích của tôi.
Xuất khẩu html của JasperReport tạo tệp html có nhiều mã được mã hóa và các tùy chọn cấu hình khá ngẫu nhiên. Ví dụ, nó tạo ra một bảng với nền trắng theo mặc định (<table style="... bgcolor="white" ... ">
) có thể được tắt bằng cách sử dụng tùy chọn IS_WHITE_PAGE_BACKGROUND
, mặt khác cellpadding="0" cellspacing="0" border="0"
được hardwired trong thẻ table
. Nó cũng là lạ (và làm cho phong cách css khó khăn) mà thay vì các lớp span các tập tin html chứa <span style="font-family: sansserif; color: #000000; font-size: 10.0px;">
cho tất cả các lĩnh vực của tôi. Tất nhiên tôi có thể thực hiện đầu ra html bằng JSP, nhưng nó có nghĩa là tôi phải thiết kế đầu ra hai lần (một lần trong jrxml cho JasperReports, một lần trong JSP) và tôi phải thực hiện lại các chức năng báo cáo (như tính tổng phụ, tổng tính toán, nhóm ...) theo nguyên tắc DRY.
Thực tiễn tốt nhất để thực hiện điều này là gì? Có thể tạo xuất HTML tốt hơn bằng JasperReport không?
Tôi đã xem qua bài đăng này hôm nay, tôi đang sử dụng html và tôi cần phải loại bỏ khoảng này được tạo. Như bạn đã đề cập trong câu trả lời của bạn, tôi hiểu bằng cách sử dụng jQuery. Câu hỏi của tôi là nơi để viết mã này và cách tích hợp nó vào báo cáo của tôi? Xin vui lòng hướng dẫn cho tôi –