Nella finestra LIBRERIA sulla destra, scegli Parametri --> aggiungi Parametro. Dai un nome al parametro, scegli il tipo, ad esempio java.lang.String, spunta la casella "Richiedi valore all'utente", metti un valore predefinito se necessario altrimenti metti "".
Una volta definito il parametro, puoi far riferimento ad esso nella query con la sintassi $P!{nome_parametro}, ad esempio:
select * from tabella where id = '$P!{nome_parametro}'
Per passare il valore a run-time tramite java puoi usare il seguente codice:
codice:
...
try {
//Carica il file jrxml e lo compila
String fileJrxml = ... //percorso al file jrxml
String valore_parametro = "blablabla"; //il tipo dipende da come hai definito il parametro in iReport
JasperDesign jasperDesign = JRXmlLoader.load(fileJrxml);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
//Crea un Map di parametri da passare al report
Map<String,String> parameters = new HashMap<String, String>();
parameters.put("nome_parametro", valore_parametro);
//Crea la connessione al DataBase
Connection conn = null;
[.......] //inizializza la connessione al DataBase
//Crea il JasperPrint
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
//Crea il PDF
JasperExportManager.exportReportToPdfFile(jasperPrint,"report.pdf");
//Visualizza il report nella finestra di anteprima di JasperReport
JasperViewer.viewReport(jasperPrint);
} catch (JRException e) {
e.printStackTrace();
}