Problema com Parametro no Ireport

1 resposta
B

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:

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

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! :D

1 Resposta

L

Está certo esse seu select? Eu trabalhei com o ireport/jasperreport sem sql, apenas passando vo. O que estou vendo de diferente é que vc tem um ! no seu parâmetro. Não seria apenas $P{tcodigo} ?

Criado 3 de julho de 2007
Ultima resposta 3 de jul. de 2007
Respostas 1
Participantes 2