Pessoal estou começando a trabalhar com o ireport agora e bateu uma dúvida aparentemente simples, porém não estou conseguindo encontrar uma solução em lugar algum, já li vários e vários post sobre isso mais não consegui resolver o problema.
tenho minha classe que passa um parametro para o relatório no ireport que está assim:
[code]package relatorio;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import utilitarios.conexao;
public class relatCliente {
conexao con = new conexao();
int codigo = 10; // valor para testar a passagem de parametros
public relatCliente() {
try
{
con.conecta();
con.executeSQL(“SELECT * from cliente”);
HashMap parameters = new HashMap();
parameters.put(“tcodigo”, codigo);
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint jasperPrint = JasperFillManager.fillReport(
“relatorio/relClientes.jasper”, parameters, jrRS);
JasperViewer.viewReport(jasperPrint, false);
}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null,“deu erro =”+erro);
}
}
public static void main (String args[])
{
new relatCliente();
}
}[/code]
e no SQL do meu relatorio do ireport está assim:
select codigo,nome from cliente where codigo = $P!{tcodigo}
o problema é que todos os dados são exibidos no relatorio quando o executo, mas se eu deixar o select desta maneira
select codigo,nome from cliente where codigo = 10
ai funciona 100%, mostrando só o cliente de código 10. O que pode estar errado com o parametro, já que o mesmo chega até o relatório porém não funciona no select.
Se alguém puder dar uma dica ou tiver um exemplo que funcione eu agradeço!