Relatorio com iReport (sem banco de dados)

501 views
Skip to first unread message

Gi

unread,
Nov 11, 2009, 2:04:16 PM11/11/09
to gujsmo
Estou precisando passar o valor de campos JTextField para um
relatório.
Já criei o relatório com os parâmetros mas o valor dos campos não está
sendo exibido.
Aparece a seguinte mensagem: "O documento não contém páginas".

Segue o código que chama o relatório:

public void actionPerformed(ActionEvent e) {
if (e.getSource() == imprime) {

if (parametros==null) parametros = new HashMap<Object, Object>();
parametros.put("numero", numOrdem.getText()); //aqui vai o valor
do campo texto
// parametros.put("dt1", dataInicial.getText());
// parametros.put("dt2", dataFinal.getText() );


try {
//JasperReport jasperReport = JasperManager.loadReport
(Resources.getJasper(reportName));
JasperReport jasperReport = (JasperReport)JRLoader.loadObject("src/
ordem/OrdemDeServico.jasper");

JasperPrint jasperPrint = JasperFillManager.fillReport
(jasperReport, parametros);


JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);

//jasperViewer.setTitle("Relatório do "+titulo);

jasperViewer.setTitle("Emissão de Relatórios");
// jasperViewer.setIconImage(Icons.getImage(Icons.FOLHA));
jasperViewer.setExtendedState(JFrame.MAXIMIZED_BOTH);
jasperViewer.setVisible(true);
jasperViewer.setDefaultCloseOperation
(JasperViewer.DISPOSE_ON_CLOSE);

}
catch (JRException ea) {
ea.printStackTrace();
JOptionPane.showMessageDialog(null, "ERRO na criacao do relatorio:
"+ea.getMessage(), null, JOptionPane.ERROR_MESSAGE);
} catch (Exception ex) { // ConnectException
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "ERRO interno: "+ex.getMessage
(), null, JOptionPane.ERROR_MESSAGE);
}

}

Aguardo respostas. att
Gisele, Maico e Marcos

Robert Lang

unread,
Nov 11, 2009, 2:28:21 PM11/11/09
to guj...@googlegroups.com
Certamente este campo está sendo enviado corretamente através do hashmap.

O Jasper vai tentar executar o sql que vc gerou na query...

Você nao deve estar tratando corretamente os "parametros" recebidos ou
está com o relatório configurado errado... verifique as configuracoes.


2009/11/11 Gi <gisele...@gmail.com>

Gi

unread,
Nov 12, 2009, 8:18:07 AM11/12/09
to gujsmo
Ai é que está o problema...
Eu não estou fazendo um sql, porque não tem banco de dados,
só o que estou querendo é passar o texto que esta nos JTextField como
parâmetro para o relatório.
Por exemplo, quando eu digito alguma coisa nos campos queria que fosse
para o relatório direto.. sem buscar nada no banco.
Ísso é possível?

Robert Lang

unread,
Nov 12, 2009, 8:54:55 AM11/12/09
to guj...@googlegroups.com
sim, é possivel, tem que olhar nas diversas configuracoes do relatorio lá no iReport,
lembro que tem isso, mas não tenho aqui agora pra te dizer exatamente onde é.

Vai ter que procurar...


2009/11/12 Gi <gisele...@gmail.com>

Marcos

unread,
Nov 17, 2009, 6:47:01 AM11/17/09
to gujsmo
Fiz!!!! o Robert tinha razão, porem a minha solução não foi por aí...
usei uma classe que extende JRDataSource que gera um datasource
personalizado para mim, a qual pode manipular os dados de uma intancia
ou mais, outra classe que armazena os campos desejados (campos private
com getters e setters), outra classe que liga as duas acima e a ultima
que se trata do formulario propriamente dito.
Em resumo, a gambiarra gera relatórios com conteudo dos campos da
classe.
No ireport, deve-se criar variaveis e não precisa alterar nada, porem
se usar parametros tem que alterar algumas configurações do relatório.

Os códigos ficaram grandes para postar, mas se alguém quiser em
envio.
Obs: tudo feito no eclipse.

Gi

unread,
Nov 20, 2009, 12:08:05 PM11/20/09
to gujsmo
valeeu xerifee :D
vou tentar fazer um relatorio novo com os campos q vc passou
:D:D
Reply all
Reply to author
Forward
0 new messages