2009-08-19 5 views
11

Tôi đang tìm một công cụ báo cáo java nhẹ được nhúng trong một ứng dụng applet.Công cụ báo cáo Java nhẹ

Tùy chọn đầu tiên của tôi là Báo cáo Jasper, nhưng bình trên 2Mb, hơi quá nặng (và quá cồng kềnh) cho nhu cầu của tôi. Tôi không biết nếu có phân phối jasper mô-đun, với funcionalities chia trong một số lọ (như html rendering, pdf, excel, biên dịch, thời gian chạy, vv).

Tôi cần xem trước báo cáo bằng cách sử dụng Swing và in báo cáo. Xuất PDF là một dấu cộng.

Trả lời

1

Nếu bạn không tìm thấy giải pháp nào tốt hơn, bạn có thể tạo tệp JAR bị tước bỏ cho Báo cáo Jasper. Công cụ GenJar được cho là có khả năng xây dựng một tệp JAR dựa trên các phụ thuộc tĩnh của nó.

Một thời gian dài trước đây, tôi đã từng sử dụng công cụ obfuscation "Classmaster" của Zelix cho phép bạn loại bỏ các lớp không được sử dụng. Tôi nghĩ rằng nó thậm chí có thể đã tước các phương pháp không sử dụng, mặc dù bộ nhớ của tôi là một chút mơ hồ. (Tôi đã sử dụng nó trên một sản phẩm nguồn đóng ... từ đó đã biến mất xuống một "lỗ đen" IP.)

CHỈNH SỬA: một tùy chọn khác là ProGuard, làm xáo trộn và tước đoạt như Classmaster, ngoại trừ mã nguồn mở. (Đáng buồn thay, có vẻ như họ đã định cấu hình sai liên kết trang web SF của họ. Tuy nhiên, liên kết ở trên hoạt động.)

Tất nhiên, nếu Jasper Reports sử dụng Class.forName(), bạn sẽ cần phải xác định tất cả các lớp có liên quan tước công cụ mà bạn sử dụng. Ngoài ra, bạn sẽ cần phải xem xét giấy phép Jasper Reports để đảm bảo rằng bạn được phép "phân phối" một tệp JAR bị tước.

+0

Jasper tải các lớp động, bạn sẽ cần tìm ra các phụ thuộc. – sventechie

6

Báo cáo Jasper bao gồm một cái bình có tính cơ bản để xem trước và in báo cáo. Nó được đóng gói như jasperreports-x.x.x-applet.jar, với khoảng 350k.

1

Tại sao 2Mb quá lớn đối với thư viện phía máy chủ? Docmosis có kích thước jar dưới 500k, nhưng yêu cầu OpenOffice trên máy chủ, vì vậy nó nhỏ hơn theo một cách và lớn hơn trong một cái khác. Java sẽ không tải Jasper 2Mb vào bộ nhớ trừ khi bạn sử dụng tất cả các tính năng/lớp.

+1

Tôi không sử dụng nó ở phía máy chủ, nhưng ở phía máy khách. Applet tải luồng .jasper từ máy chủ và trình xem swing trình bày nó cho người dùng. – tuler

4

Tôi biết điều này hơi trễ, nhưng với yêu cầu của bạn, nó có vẻ là một giải pháp báo cáo hoàn hảo sẽ là giải pháp báo cáo mà công ty tôi làm việc để đặt ra: i-net Clear Reports (thường là tinh thể trong suốt).

  • Nhẹ và đơn giản xem (tương tự như một PDF viewer)
  • -to đơn giản sử dụng
  • Rất API
  • thể xuất vào một loạt các định dạng khác nhau bao gồm PDF
  • Hỗ trợ bất kỳ nguồn dữ liệu JDBC, hoặc cũng của nhãn hiệu thiết lập dữ liệu
  • thể chạy Crystal Reports mẫu
  • Chúng tôi cũng cung cấp miễn phí và đầy đủ chức năng report designer

Kiểm tra và cho chúng tôi biết suy nghĩ của bạn.

1

IMHO Chunk Templating engine là tốt nhất.Tệp jar chỉ có 180 KB! và hỗ trợ IF và lặp lại. Thật là tuyệt!

+1

Đối với các tệp PDF, tôi sử dụng Chunk để tạo XML mà công cụ Apache FOP có thể chuyển đổi trực tiếp thành đầu ra PDF. –

+0

Có chức năng Chunk Templating specyfic cho báo cáo? Tiêu đề nhóm và tổng số/tổng phụ tự động có vẻ quan trọng nhất? Tôi sử dụng (trong một số dự án cũ) mẫu động cơ để báo cáo "trong chế độ bằng tay", công việc khó khăn của nó. –