terça-feira, 22 de novembro de 2011

Classe que Exibe o Relatorio java .jasper

Segue uma classe utilitária para exibir seu relatórios
Ao invés de ter que mexer com sql no relatório, você faz ele de tal forma que apenas passando um List
ele ja exibe os dados

segue a classe


package gerenciador;

import java.util.List;

import javax.swing.JDialog;

import objetos.Empresa;

import relatorios.VerificaOrdem;

import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;

public class Relatorio {

@SuppressWarnings("unchecked")
public static void gerarRelatorio(List lista, String caminho){
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
JDialog viewer = new JDialog(new javax.swing.JFrame(),"Visualização do Relatório", true);
viewer.setSize(screenSize.width, screenSize.height-80);
viewer.setLocationRelativeTo(null);
try {
JRBeanCollectionDataSource jrb = new JRBeanCollectionDataSource(lista);
JasperPrint meuRelatorio = JasperFillManager.fillReport(caminho, null, jrb);
//JOptionPane.showMessageDialog(null, "chegou");
JasperViewer visualizador = new JasperViewer(meuRelatorio, false);
visualizador.setSize(screenSize.width, screenSize.height-80);
viewer.getContentPane().add(visualizador.getContentPane());    
viewer.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}


o metodo gerarRelatorio espera uma lista, e uma string com o caminho

ele cria uma JDialog para visualizar o relatorio, pega o tamanho da tela e diminui 80 pixels da altura
e o JRBeanCollectionDataSource nada mais é do que a lista que exibira os relatorios
é exibido o relatorio

obs* lembrando que se for passar caminho para o relatorio em um diretorio do computador se usa 2 barras invertidas

ex: C:\\sistema\\relatorio\\relatorio.jasper

agora se for utilizar a partir da raiz do programa pode ser

/relatorio/relatorio.jasper

abraço

Nenhum comentário:

Postar um comentário