Relatório aparece em Branco

certo, e cade o resultado dos parametros??

Eu fiz System.out.Println gerou essas informações:

1dadogerado:

2gerado:

net.sf.jasperreports.view.JasperViewer [frame0,12,4,1000x733,layout=java.awt.BorderLayout,title=Relatorio de Produtos,resizable,normal, defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,4,30,992x699,layout=javax.swing.JRootPane$RootLayout, alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=], rootPaneCheckingEnabled=true]

3grado:

Código do parâmetro:

private void mapeiaParametros() { try { parameters = new HashMap(); parameters.put("codigoProduto",produtoaux2.getCodigoProduto()); parameters.put("imagem", auxRelatorio.getImagem(imagemCaminho)); } catch (Exception e) { Logger logAux = Logger.getLogger(formRelatorioProduto.class); mensagemErro = "Erro gerado pelo sistema: "+e; log.gerarLog(logAux, mensagemErro); } }

Este é método que pega o código selecionado no combo e passa para o parâmetro:

[code]private void parametrosSubRelatorio()
{
// busca um produto de cada vez
produtoAux = new Produto();
ctrProduto = new CTR_ManterProduto();
vetorEstoque = new ArrayList();
// 1 opcao busca por todos os nomes
if (auxValor == 1)
{
// List produtos = ctrProduto.listarProdutos(“codigoPorduto”);
// for (Produto listaprodutos : produtos)
// {
// vetorEstoque.add(listaprodutos);
// }

  if(auxValor == 1)
  {
     diretorio = dir2;
     //mapeiaParametros();
     try
     {
        auxRelatorio.geraRelatorio(nomeRelatorio, auxRelatorio.getReport(diretorio), parameters);
     }
     catch (Exception ex)
     {
        Logger logAux = Logger.getLogger(formRelatorioProduto.class);
        mensagemErro = "Erro gerado pelo sistema: "+ex;
        log.gerarLog(logAux, mensagemErro);
     }
  }

}
if (auxValor == 2){

   Produto produtoAux1 = (Produto) comboNomeProduto.getSelectedItem();
   produtoaux2 = ctrProduto.carregarProdutoCodigoProduto(produtoAux1.getCodigoProduto());
   vetorEstoque.add(produtoaux2);

   if ((casosErro() == false) && (auxValor == 2))
   {
      diretorio = dir1;
      mapeiaParametros();
   try
      {
        auxRelatorio.geraRelatorio(nomeRelatorio, auxRelatorio.getReport(diretorio), parameters);
      }
      catch (Exception ex)
      {
        Logger logAux = Logger.getLogger(formRelatorioProduto.class);
        mensagemErro = "Erro gerado pelo sistema: "+ex;
        log.gerarLog(logAux, mensagemErro);
      }
   }
   }

} [/code]

certo… me enganei no pedido de sysout…

faça o system.out.print do seu ( produtoaux2.getCodigoProduto() )

Beleza? Quero ver se esta vindo codigo certo

Eu fiz System de novo como pediu no produtoaux2.getCodigoProduto() apareceu isso:

codigoProduto selecionado no combo é:3

Beleza, correto…

o codigo do produto é 3 ?

Se for 3 o codigo esta correto… Deve fazer o seguinte.
No iReport tem um botão chamado Preview, … coloque o codigo 3 e verifique se obtem retorno do relatório.

Se POSITIVO é problema no envio do codigo para o relatório
Se NEGATIVO é problema no relatório :wink:

Att. Jonas

Passei esse código 3 no Ireport ele gerou relatório perfeito.
Ele consegui exibir a imagem que eu passei no parâmetro quando chamo ele na classe java, porque não o código do parâmetro para retornar o Sql?

Certo, vejamos.

O seu parametro no relatório é de qual tipo? Integer, BigDecimal, Long??

E o seu Objeto que está passando na aplicação é oque? Long, Int, BigDecimal ???

Devem ser iguais :wink:

Att. Jonas

Tire uma dúvida para mim, no parâmetro do ireport eu selecionei o prompting e no valor da expressão deixo vazio?

Parameter Class: O Tipo do seu objeto no Java ; ( o mesmo tipo da sua aplicação )

Use as prompt : True

o resto pode ficar vazio

Vlw Jonas, mas não resolveu.

posta seu relatório, deixe me ver

Fala Thekill,

Tive problema em enviar arquivo na comunidade, por isso enviei para o seu email.

Sem problema, mas nao recebi nada aqui.

Meu email é thekill87@gmail.com

Enviei para o hotmail.com

certo, mas vc ta fazendo a consulta dentro do relatorio?

ou na aplicação?

Dentro do relatório.

Entendi, bom… eu já li em alguns lugares, que não da certo
colocar $P (parameter) dentro do relatorio para consultas SQL sacou??

Eu achei que vc estava fazendo a consulta na aplicação … e enviando para o relatorio o Rs (result set) com as informações
para popular o relatório…

Acho que dessa forma que está querendo fazer nao seja possível… Ou pelo menos eu não sei como fazer…
Na minha opinião eu nunca deixo para o relatorio fazer a consulta SQL, sempre deixo na aplicação, até por questao de segurança ^^

Att. Jonas

Eu fiz nos outros relatório funcionou, só não se porque não está funcionando com este, verifiquei tudo não achei solução ainda.

Certo, eu sei oque é.

No JAVA voce esta passando parameter Int, e no relatorio esta esperando Integer.
nao sao a mesma coisa. então no relatório mude para String, e no Java ao invés de mandar Int, faça um Convert para String.

String.valueOf( … )
Ps.: Ja testei aqui e funcionou

Att. Jonas