Erro no Jaspersoft - net.sf.jasperreports.engine.JRException: Invalid page index range: 0 - -1 of 0
13 respostasResolvido
imprimirjsfprogramaçãojavafront-end
E
Ewerthon_A
Pessoal, esta acontecendo esse erro somente quando eu chamo o relatorio na aplicação, ao testar o relatorio no jasper funciona perfeitamente, verifiquei o nome do arquivo e esta correto, verifiquei se existe dados no banco em questao e tambem esta ok, o parametro no relatorio e no bean estão com o mesmo nome"COD_VENDA",
não sei porque começou aparecer este erro, ja é o 4 relatorio em seguida que aparece o erro abaixo;
net.sf.jasperreports.engine.JRException: Invalid page index range: 0 - -1 of 0. at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:141) at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:242) …tecnologia.bean.DuplicataBean.imprimirDuplicataPorCodigoVenda(DuplicataBean.java:263)
BeanpublicvoidimprimirDuplicataPorCodigoVenda(ActionEventevento){try{VendavendaSelecionada=(Venda)evento.getComponent().getAttributes().get("vendaSelecionada");Stringcaminho=Faces.getRealPath("/report/relatorioDuplicataPorCodigoVenda.jasper");Map<String,Object>parametros=newHashMap<>();parametros.put("COD_VENDA",vendaSelecionada.getCodigo());// caminho e o codigo estao sendo preenchido, conferidos.Connectionconexao=HibernateUtil.getConexao();JasperPrintrelatorio=JasperFillManager.fillReport(caminho,parametros,conexao);JasperPrintManager.printReport(relatorio,true);}catch(JRExceptionerro){Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório");}}
Na hora que você executa pelo Ireport abre normal!
Agora quando chama
J
jallisson_jallis
Olha esse código abaixo da certo.
AcessoBD acessoBd = new AcessoBD();
if(ftfIdLote.getValue()==null){JOptionPane.showMessageDialog(this,"Informe o ID do Lote","Erro",JOptionPane.INFORMATION_MESSAGE);ftfIdLote.requestFocus();}else{JOptionPane.showMessageDialog(this,"Aguarde Enquanto é gerado","Impressão",JOptionPane.INFORMATION_MESSAGE);
@jallisson_jallis , descobri que o erro está na query do Jasper, eu criei um relatorio somente com a tabela VENDA sem ITENSVENDA e outras, ai fiz a busca, funcionou normalmente o mesmo relatorio que esta descrito acima, porem ao inserir as tabelas ITEM_VENDA,UNIDADE_MEDIDA,PESSOA,PESSOA na query passou a dar o mesmo erro, estou ainda tentando fazer a query de forma diferente mas nao esta funcionando.
Tentei fazer outro relatorio que estava funcionando somente com uma tabela(PESSOA), mas após adicionar os inner join apareceu a mesma mensagem. Como resolver isso?
`SELECT victoria.pessoa.nome, victoria.pessoa.cpf, victoria.cliente.status, victoria.cliente.data_cadastro, victoria.pessoa.data_nascimento, victoria.pessoa.numero_rg, victoria.pessoa.telefone, victoria.pessoa.orgao_emissor, victoria.pessoa.data_emissao_rg, victoria.pessoa.email, victoria.sexo.sigla, victoria.cliente.codigo, victoria.endereco.bairro, victoria.endereco.cep, victoria.endereco.complemento, victoria.endereco.rua, victoria.endereco.numero, victoria.cidade.nome AS nome_cidade, victoria.estado.sigla AS sigla_estadoFROM victoria.cliente INNER JOIN victoria.pessoa ON victoria.cliente.pessoa = victoria.pessoa.codigo INNER JOIN victoria.sexo ON victoria.pessoa.sexo_codigo = victoria.sexo.codigo INNER JOIN victoria.endereco ON victoria.pessoa.endereco_codigo = victoria.endereco.codigo INNER JOIN victoria.cidade ON victoria.endereco.cidade_codigo = victoria.cidade.codigo INNER JOIN victoria.estado ON victoria.cidade.estado_codigo = victoria.estado.codigo WHERE victoria.pessoa.cpf = $P{CPF}
E
Ewerthon_A
@jallisson_jallis
Mudei e coloquei como o seu exemplo e continua o a msg.
@jallisson_jallis desde ja agradeço a atenção, com esse codigo “System.getProperty(“user.dir”)” aparece a mensagem que o arquivo .jasper teria que estar neste caminho abaixo.
@jallisson_jallis, Esse foi o código que resolveu, porem não entendi porque os outros relatorios funcionaram apenas com uma barra("/") tentei novamente com 2 barras (’\’) como dito anteriormente, porem inverti elas, ai sim funcionou.
testarei o outro desta forma, caso ocorra outra exception portarei aqui, grato vlw.
J
jallisson_jallis
não conheço o método getRealPath da Classe Faces, talvez ele trabalha desse jeito com as barras invertidas diferente do string que é colocado direto System.getPropert.