Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 26th, 2012  |  syntax: None  |  size: 2.33 KB  |  hits: 19  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package myPackage;
  2.  
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.Statement;
  7. import java.util.HashMap;
  8. import javax.swing.JFrame;
  9. import javax.swing.JOptionPane;
  10. import net.sf.jasperreports.engine.JRResultSetDataSource;
  11. import net.sf.jasperreports.engine.JasperFillManager;
  12. import net.sf.jasperreports.engine.JasperPrint;
  13. import net.sf.jasperreports.view.JasperViewer;
  14.  
  15. public class MyReport {
  16.  
  17.         private Connection getConnection() {
  18.                 try {
  19.                         Class.forName("org.postgresql.Driver");
  20.                         return DriverManager.getConnection("jdbc:postgresql://localhost:5432/my_db", "postgres", "123456789");
  21.                 } catch (Exception ex) {
  22.                         ex.printStackTrace();
  23.                         return null;
  24.                 }
  25.         }
  26.  
  27.         private StringBuffer getSQL() {
  28.                 StringBuffer sql = new StringBuffer();
  29.                 sql.append("select *");
  30.                 sql.append(" from sample_table");
  31.                 //
  32.                 return sql;
  33.         }
  34.  
  35.         public void showReport() {
  36.                 try {
  37.                                 String reportName = "path/to/my_report.jasper";
  38.                                 //
  39.                                 StringBuffer sql;
  40.                                 sql = getSQL();
  41.                                 String wsql = " where";
  42.  
  43.                                 // a filter
  44.                                 if (myCombo.getSelectedIndex() > -1) {
  45.                                         sql.append(wsql).append(" some_field = '").append(myCombo.getSelectedItem().toString()).append("'");
  46.                                         wsql = " and";
  47.                                 }
  48.                                
  49.                                 // another filter
  50.                                 if (myTextField.getText().trim().length() > 0) {
  51.                                         sql.append(wsql).append(" some_other_field = '").append(myTextField.getText()).append("'");
  52.                                 }
  53.  
  54.                                 // SQL ending
  55.                                 sql.append(" order by another_field");
  56.  
  57.                                 Connection connection = getConnection();
  58.                                 Statement stmt = connection.createStatement();
  59.                                 Hashmap parameters = new HashMap(); //set the report parameters here
  60.                                 JRResultSetDataSource jrrs = new JRResultSetDataSource(stmt.executeQuery(sql.toString()));
  61.                                 InputStream is = this.getClass().getClassLoader().getResourceAsStream(reportName);
  62.                                 JasperPrint jasperPrint = JasperFillManager.fillReport(is, parameters, jrrs);
  63.                                 if (jasperPrint.getPages().size() > 0) {
  64.                                         JasperViewer jv = new JasperViewer(jasperPrint, false);
  65.                                         jv.setTitle("My Report");
  66.                                         jv.setExtendedState(JFrame.MAXIMIZED_BOTH);
  67.                                         jv.setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
  68.                                         jv.setVisible(true);
  69.                                 } else {
  70.                                         JOptionPane.showMessageDialog(this, "Some message to show when the SQL returns nothing.");
  71.                                 }
  72.  
  73.                         } catch (Exception ex) {
  74.                                 ex.printStackTrace();
  75.                         }
  76.         }
  77. }