Olá pessoal. Gostaria de saber se tem alguma forma de abrir um relatório do Jasper dentro de um aplicação java .
Montei um relatório no iReport e ele está funcionando perfeitamente na minha aplicação e é visualizado com viewReport. Acho que este viewReport é interessante mais para teste e seria mais profissional se o relatório aparecesse dentro da janela da própia aplicação, sem o ícone do Jasper na barra de titulo. Andei pesquisando na net e vi que tem bastante gente com esta mesma dúvida mas não vi solução.
Se não tiver geito, pelo menos gostaria de tirar o ícone do Jasper da barra de título e que a janela do viewReport fosse axibida na frente do frame principal da minha aplicação, pois sempre que é gerado aparece atrás.
JasperReports dentro de um JFrame da própia aplicação, é possível?
T
1 Resposta
T
Consegui! :D
Exemplo de como ficou meu código://Método da Classe do JFrame principal
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
if (desktop.getAllFrames().length!=0){
desktop.getSelectedFrame().dispose();
}
ConsultaNotaFiscalFio cNF =new ConsultaNotaFiscalFio();
Relatorio r = new Relatorio();
JFrame jf = new JFrame("Teste");
JInternalFrame i = new JInternalFrame("teste");
i.setContentPane(r.gerarRelatorio(21).getContentPane() );
desktop.add(i);
desktop.selectFrame(true);
try {
i.setSize(desktop.getSize());
i.setClosable(true);
i.setMaximum(true);
i.setVisible(true);
} catch (Exception exception) {
}
}
//Método da classe Relatório
public JasperViewer gerarRelatorio(int num) {
Map parametros = new HashMap();
// Passa o parâmetro com o número da nota fiscal do fio para o iReport
parametros.put("NroNotaFiscal", new Long(num) );
// Passa o parâmetro com com o subrelatório para o iReport
parametros.put("PathItensNFTecido",
urlFile + "/gerenciamento/itensProcesso.jasper");
try{
JasperPrint jasperPrint =JasperFillManager.fillReport(
getClass().getResourceAsStream("/tecelembu/gerenciamento/NF.jasper"),
parametros, getConnect());
JasperViewer v = new JasperViewer(jasperPrint, false);
return v;
} catch (JRException ex) {
Logger.getLogger(Relatorio.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
return null;
}
}
Criado 27 de março de 2009
Ultima resposta 27 de mar. de 2009
Respostas 1
Participantes 1