public void btnPreview_actionPerformed(ActionEvent e) { DBConn = (PostgresConnector) parent.getDBConn(); String SQL = "SELECT " + "(SELECT nama FROM praktek) as nama_praktek, " + "(SELECT alamat FROM praktek) as alamat_praktek, " + "(SELECT telpon FROM praktek) as telpon_praktek, " + "(SELECT kota FROM praktek) as kota_praktek, " + "(SELECT propinsi FROM praktek) as propinsi_praktek, " + "o.kode_obat, " + "o.nama, " + "i.keterangan as jenis, " + "so.nama as satuan, " + "o.harga, " + "o.jumlah_tersedia, " + "o.keterangan, " + "o.batas as batas " + "FROM " + "obat o, satuan_obat so, item i " + "WHERE " + "o.satuan = so.id_satuan " + "AND o.jenis = i.id_item " + "AND o.jumlah_tersedia <= o.batas "; // System.out.println(SQL); if (cmbKodeAwal.getSelectedIndex() > 0) { if (cmbKodeAkhir.getSelectedIndex() > 0) { SQL += "AND lower(o.kode_obat) >= '" + idObat[cmbKodeAwal.getSelectedIndex() - 1][0] + "' "; } else { SQL += "AND lower(o.kode_obat) = '" + idObat[cmbKodeAwal.getSelectedIndex() - 1][0] + "' "; } } if (cmbKodeAkhir.getSelectedIndex() > 0) { if (cmbKodeAwal.getSelectedIndex() > 0) { SQL += "AND lower(o.kode_obat) <= '" + idObat[cmbKodeAkhir.getSelectedIndex() - 1][0] + "'"; } else { SQL += "AND lower(o.kode_obat) = '" + idObat[cmbKodeAkhir.getSelectedIndex() - 1][0] + "'"; } } if (cmbTipeAwal.getSelectedIndex() > 0) { if (cmbTipeAkhir.getSelectedIndex() > 0) { SQL += "AND lower(i.id_item) >= '" + ( (String) idJenis[cmbTipeAwal.getSelectedIndex() - 1][0]).toLowerCase() + "' "; } else { SQL += "AND lower(i.id_item) = '" + ( (String) idJenis[cmbTipeAwal.getSelectedIndex() - 1][0]).toLowerCase() + "' "; } } if (cmbTipeAkhir.getSelectedIndex() > 0) { if (cmbTipeAwal.getSelectedIndex() > 0) { SQL += "AND lower(i.id_item) <= '" + ( (String) idJenis[cmbTipeAkhir.getSelectedIndex() - 1][0]).toLowerCase() + "' "; } else { SQL += "AND lower(i.id_item) = '" + ( (String) idJenis[cmbTipeAkhir.getSelectedIndex() - 1][0]).toLowerCase() + "' "; } } SQL += " ORDER BY o.kode_obat"; DBConn.query(SQL); JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource( DBConn.getRs()); try { HashMap hm = new HashMap(); JasperReport jasperReport = JasperCompileManager.compileReport( parent.dirApp + "print" + parent.dirSeparator + "Stok Kritis.jrxml"); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hm, resultSetDataSource); JasperViewer.viewReport(jasperPrint, false, Locale.getDefault()); } catch (JRException ex) { ex.printStackTrace(); } }