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();
}