Estou com um problema e acredito que vocês conseguem me ajudar. Consigo ao executar meu Projeto no Netbeans trazer os relatórios sem problemas, da mesma forma ao gerar a Dist e executá-la (No Computador onde está o projeto). Se eu levar essa Dist para outra máquina (Cliente) já não consigo abrir… Pesquisei muito sobre isso e tenho a certeza que não é problema referente à caminhos de arquivos(Até porque neste computador funciona). Meu relatório contém Imagem e pesquisando sobre isso ouvir falar de um Parâmetro que deve ser usado, algum de vocês podem me ajudar?
Você tem que por os relatórios na raiz do programa e usar o caminho.
Exemplo JasperReport relatorio = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("Relatorio/RelAchados.jasper"));
esta no pacote relatorio e o nome do arquivo é RelAchados.jasper
Abraç
N
NCesar97
Não conseguir…
intconfirma=JOptionPane.showConfirmDialog(null,"Confirma a visualização do Relatório?","Atenção",JOptionPane.YES_NO_OPTION);if(confirma==JOptionPane.YES_OPTION){try{InputStreamcaminho=getClass().getResourceAsStream("/Relatorios/Rel_Clientes.jasper");JasperPrintprint=JasperFillManager.fillReport(caminho,null,conexao);JasperViewer.viewReport(print,false);}catch(JRExceptionex){Logger.getLogger(Principal.class.getName()).log(Level.SEVERE,null,ex);}
assim está o meu, dentro do Pacote Relatorios.
N
NCesar97
Muito estranho porque quando eu gero a Dist, tudo funciona perfeito neste computador… mas ao passar para outra máquina não abre os relatórios. Por esse motivo descartei que seria algo relacionado a caminhos sabe
Wpenach1
Posta o erro que dá na outra máquina, mas, quase 100% que é o caminho…
Wpenach1
Tira a barra deixa assim
("Relatorios/Rel_Clientes.jasper")
N
NCesar97
Vou tentar explicar digitando o porque de eu achar que não seja caminho.
Ao executar o projeto na IDE tudo funciona perfeitamente… (Até aqui blz)
Ao gerar a Dist e colocar no C: por exemplo e executá-la também funciona perfeitamente a chamada dos relatórios… (NESTE COMPUTADOR)
Se eu copiar essa mesma pasta Dist e colocar em outro computador não funciona… me explica essa lógica? kkk Até cheguei a pensar que seria preciso instalar algum programa nesse computador onde não executou talvez.
Você sabe me dizer se conter imagens dentro do .Jasper/.Jrxml é preciso de alguma chamada no código? Eu acredito que não, visando que no ireport você compila o arquivo né… já ficaria tudo ‘Compilado’
darlan_machado
Logs? Mensagens de erro?
Wpenach1
Vc está copiando todas as pastas né? do seu projeto inteiro, não é apenas a dist… os relatórios normalmente ficam na src se você copiar apenas a dist para outro pc ela não vai encontrar os relatórios
N
NCesar97
Não existe mensagens de erro, simplesmente não abre ao mandar abrir.
Acontece o seguinte, eu tenho 3 chamadas de Relatórios .Jasper que estão localizadas dentro de um Pacote do Projeto chamado Relatorios.
E mais 2 chamadas de Relatórios .Jrxml que estão localizadas na raiz do projeto, então ao gerar a Dist eu preciso copiar a pasta Relatorios da raiz que contem estes 2(DOIS) e deixar dentro dela.
Acontece que ao executar o .Jar neste computador ele funciona, faz as chamadas destes relatórios e tudo mais sem erros… mas ao executar esse .Jar em outro computador ele não faz essas chamadas. Muito estranho
N
NCesar97
Sério? kkkkkkk
N
NCesar97
Então me explica por favor, eu gero a Dist e MOVO somente ela (DIST) para outra pasta (FORA DO PROJETO) e tudo funciona, e ao colocar somente ela (DIST) em outro Computador não funciona…
Lembrando… FORA DO PROJETO
Wpenach1
Já tentou? não deu certo?
N
NCesar97
Vou realizar esse teste agora.
N
NCesar97
Bom, bem como eu imaginava não deu certo.
Não justifica ter que colocar o projeto inteiro e sim somente a Dist, ao compilar o projeto todos os pacotes, bibliotecas, etc são compiladas para o .Jar sendo não necessário você mandar junto a aplicação o Código Fonte.
Enfim, como eu utilizei imagens dentro do iReport, vou tentar enviar essa mesma imagem junto ao projeto para saber se pode ser isso.
Uma pergunta, o Cliente que vai receber a aplicação Java SE precisa de ter algum software específico instalado para que a aplicação possa funcionar? Tipo requisitos
Wpenach1
Que pena então, quando o meu não estava funcionando eram duas coisas:
1- Não tinha colocado a imagens como parâmetro.
2- O caminho não estava acessível pelo outro pc.
Desculpa não conseguir te ajudar… Boa sorte.
N
NCesar97
Então amigo, como você coloca a imagem como parâmetro? Pode ser isso, na verdade acho que seja isso
Wpenach1
Dá uma olhada nesse tópico, não tem erro se for esse o problema.
Acho que seja
Abrços
N
NCesar97
Também acredito que seja, vou dar uma olhada. De qualquer forma, muito obrigado!
Wpenach1
try{conexao=ModuloConexao.conector();// HashMap imp = new HashMap();// imp.put("filtro",Integer.parseInt(TxtData.getText()));Map<String,Object>imp=newjava.util.HashMap<>(1);//imp = new Map<String, Object>;imp.put("filtro",txtDatinha.getText());//Filtro paramentro dentro do relatorioJasperReportrelatorio=(JasperReport)JRLoader.loadObject(getClass().getClassLoader().getResource("Relatorio/RelAchados.jasper"));JasperPrintprint=JasperFillManager.fillReport(relatorio,imp,conexao);JasperViewer.viewReport(print,false);}catch(Exceptione){JOptionPane.showInputDialog(null,e);}}
É só um exemplo, ai você modifica
N
NCesar97
é exatamente esse o problema, caminho de imagem. A imagem onde estava buscando para inserir no iReport estava no Disco Local deste computador, por isso ao executar o .Jar nessa maquina tudo funcionava perfeito. Tentei colocar essa imagem dentro da pastar Relatorios pensando que quando colocasse a pasta dentro da Dist resolveria mas não foi o caso, acredito que vou ter que passar por Parâmetro mesmo.
Wpenach1
Tente depois poste se conseguir resolver…
Abçs
darlan_machado
Cara, posta o print da estrutura do projeto.
Aponta onde estão os jrxml e/ou o .jasper e vamos resolver isso logo.