Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo một báo cáo theo đầu vào của người dùng trong netbean gui

Trước hết, bạn không chỉ định loại ứng dụng bạn muốn tạo, vì vậy tôi hơi chung chung về câu trả lời của mình. Ngoài ra, bạn không đề cập đến việc bạn đã quản lý để tạo báo cáo đầu tiên của mình (ý tôi là, mà không cần lấy bất kỳ đầu vào của người dùng nào). Vì vậy, bên dưới tôi đang hiển thị phần cần thiết để tạo JasperReport:

public void generateReport(ActionEvent actionEvent) throws FileNotFoundException {

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(PopulateBean.createBeanCollection());
Map parameters = new HashMap();
 
try {
    InputStream is = new FileInputStream(new File("Source path to template.jrxml"));
    OutputStream os=new FileOutputStream(new File("Resulting report.pdf"));
     
    JasperDesign jasperDesign = JRXmlLoader.load(is);
    JasperReport jasperReport =
        JasperCompileManager.compileReport(jasperDesign);

    JasperPrint jasperPrint =
        JasperFillManager.fillReport(jasperReport, parameters, ds);

    JasperExportManager.exportReportToPdfStream(jasperPrint, os);
} catch (JRException e) {
      e.printStackTrace();
}

}

Mã này nên được tích hợp vào ứng dụng của bạn. Phần bạn đang yêu cầu là:

Map parameters = new HashMap();

Bạn chỉ cần đưa đầu vào do người dùng chèn vào bản đồ này. Ví dụ, nếu bạn có một trang JSF, thì bạn có thể lấy giá trị của thành phần giao diện người dùng của nó và lưu trữ trong bản đồ này

parameters.put("type_code", getTypeCodeUIComponent().getValue());

Trên đoạn mã trên, bạn sẽ thấy bản đồ này được chuyển đến báo cáo:

JasperFillManager.fillReport(jasperReport, parameters, ds);

Điều duy nhất còn lại là chỉnh sửa truy vấn báo cáo của bạn, trong iReport. Đầu tiên, bạn tạo một tham số có cùng tên với tên được chèn vào bản đồ (trong ví dụ này là "type_code". Lưu ý, nó có phân biệt chữ hoa chữ thường). Thứ hai, bạn nên sử dụng mệnh đề WHERE trong đó bạn lọc cột loại dựa trên tham số này, xem bên dưới: Và đây là một số hướng dẫn:1 2

Hy vọng những điều này sẽ hữu ích!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố mã hóa bộ ký tự

  2. LỖI 1396 (HY000):Thao tác DROP USER không thành công cho 'user' @ 'localhost'

  3. MySQL Workbench là gì?

  4. Kết hợp bất hợp pháp các đối chiếu cho hoạt động 'concat'

  5. MySQL trả về bản ghi đầu tiên và cuối cùng cho các kết quả giống hệt nhau liên tiếp