Tenho um relatorio no IReport com os campos definidos “codigo”, “descricao” e “emUso”. Todos são String. Estou tentando rodá-lo via classe java com o seguinte código:
private void botaoImpressaoRelatorioActionPerformed(java.awt.event.ActionEvent evt) {
Vector headers = new Vector();
Vector linhas = new Vector();
Vector registro = new Vector();;
headers.clear();
headers.add((Object) "codigo");
headers.add((Object) "descricao");
headers.add((Object) "emUso" );
registro.clear();
registro.add((Object) "0001");
registro.add((Object) "Teste 1");
registro.add((Object) "S");
linhas.add(registro);
registro.clear();
registro.add((Object) "0002");
registro.add((Object) "Teste 2");
registro.add((Object) "S");
linhas.add(registro);
registro.clear();
registro.add((Object) "0003");
registro.add((Object) "Teste 3");
registro.add((Object) "N");
linhas.add(registro);
registro.clear();
registro.add((Object) "0004");
registro.add((Object) "Teste 4");
registro.add((Object) "S");
linhas.add(registro);
registro.clear();
registro.add((Object) "0005");
registro.add((Object) "Teste 5");
registro.add((Object) "S");
linhas.add(registro);
//String dir="";
try{
AcessoBanco c= new AcessoBanco();
Connection con = null; // c.criarConexao();
MyDataSource dataSource = new MyDataSource(headers, linhas);
JasperReport relatorio = JasperCompileManager.compileReport("C:\\TiposEquipamento.jrxml");
Map parametros = new HashMap();
parametros=null;
JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, new JREmptyDataSource());
JasperViewer view = new JasperViewer(impressao);
view.setVisible(true);
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Não foi possível a processar o relatório.\nMotivo:"+e.getMessage());
}
}
Ele está me retornando o seguinte erro :
No Ireport esses campos estao ligados a uma consulta que lá criei e funciona legal com a tabela original. Será que é por isso que não consigo compilar? Se for, como devo criar os campos lá no Ireport para aceitar o relatorio via java do jeito que estou fazendo?
A quem ajudar, agradeço.
Bonissauro
PS: Na verdade não consegui fazer nenhum relatório meu funcionar a partir de classes java, sendo com ou sem consultas, arrays ou o quer que seja…
Bem, existe algum motivo para vc compilar o .jrxml dentro do código Java?
Normalmente isso é feito somente no IReport, e ele te gera um .jasper, ai esse .jasper é utilizado dentro da classe Java para gerar o relatório, não sei se é esse o motivo do seu problema, mas vc pode tentar resolver com isso.
Na verdade, essa foi uma das maneiras que aparentemente cheguei mais proximo de resolver o problema. Se houver outro jeito que funcione, tô dentro. Hehhehehehe…
Tens algo PRONTO e FUNCIONANDO que pudesses me mandar para eu testar?
Sabe, de repente to fazendo algo errado na hora de
construir o report. Veja se falta algo:
posiciono os textfields
mudo seus nomes para os nomes dos campos que vou mandar pelo array
crio os campos do relatorio la em visualizar campos do relatorio, CUIDANDO LETRAS MAIUSCULAS/MINUSCULAS
compilo o report
Salvo e tento rodar minha classe java.
Sempre me retorna o erro ERROR COMPILING JAVA REPORT SOURCE FILE.
Tenho um código sim, mas no momento eu não estou tendo acesso a ele, meu computador está em Alagoas e eu estou na Paraíba, so trago ele pra cá no final do mês, se quiser aguardar até la posso te passar o código depois.