terça-feira, 27 de novembro de 2012

Gerando Relatórios simples Com DataExporter Primefaces


 

Estrutura do projeto

Depois de pronto o projeto fica com essa estrutura:

O primeiro componente que veremos hoje é o dataExporter que serve para exportar os dados para arquivos PDF, XLS, XML ou CSV de uma determinada dataTable, então para isso eu preciso de uma dataTable:

Código-fonte:
Para este exemplo vamos precisar de uma classe Carro (pojo), então dentro de pacote de códigos fonte crie um novo pacote com o nome de model, e dentro dele crie uma nova classe Java com o nome de Carro:
01public class Carro {
02 
03    private String marca;
04    private int ano;
05    private String placa;
06    private String cor;
07    private String modelo;
08 
09    public Carro(String marca, int ano, String placa, String cor, String modelo) {
10        this.marca = marca;
11        this.ano = ano;
12        this.placa = placa;
13        this.cor = cor;
14        this.modelo = modelo;
15    }
16 
17   //GETTERS e SETTERS
18}

Agora vamos criar o nosso bean que vai dar suporte à nossa dataTable, para isso crie um pacote com o nome de controle, dentro desse pacote crie  uma nova classe Java com o nome de CarroBean:
01@Named
02@RequestScoped
03public class CarroBean {
04 
05    private List<Carro> carros;
06 
07    public CarroBean() {
08        listarCarros();
09    }
10 
11    private void listarCarros() {
12        carros = new ArrayList<Carro>();
13        carros.add(new Carro("Fiat"2011"DFV 3455""Verde""Novo Uno"));
14        carros.add(new Carro("Toyota"2009"ADV 3245""Prata""Prado"));
15        carros.add(new Carro("Volks"2010"AAC 2351""Vermelho""Gol"));
16        carros.add(new Carro("Volks"2011"EGF 1245""Preto""Cross Fox"));
17    }
18 
19    //Gerar GET e SET
20}
Bom nem tem o que explicar o código acima... Para este exemplo vamos precisar das imagens (do link que disponibilizei lá no inicio), por enquanto só irei precisar de: xsl.png e pdf.png, dentro de páginas web, crie um novo diretório com o nome de imagens, e coloque as imagens dentro dela. Agora vamos para a página index:
01<h:form>
02    <p:dataTable id="tabelaCarros" value="#{carroBean.carros}" var="c">
03        <p:column>
04            <f:facet name="header">Marca</f:facet>
05            <h:outputText value="#{c.marca}" />
06        </p:column>
07        <p:column>
08            <f:facet name="header">Modelo</f:facet>
09            <h:outputText value="#{c.modelo}" />
10        </p:column>
11        <p:column>
12            <f:facet name="header">Ano</f:facet>
13            <h:outputText value="#{c.ano}" />
14        </p:column>
15        <p:column>
16            <f:facet name="header">Cor</f:facet>
17            <h:outputText value="#{c.cor}" />
18        </p:column>
19        <p:column>
20            <f:facet name="header">Placa</f:facet>
21            <h:outputText value="#{c.placa}" />
22        </p:column>
23    </p:dataTable>
24 
25    <h:commandLink>
26        <p:graphicImage value="/imagens/xls.png" />
27        <p:dataExporter type="xls" target="tabelaCarros" fileName="carros" />
28    </h:commandLink>
29    <h:commandLink>
30        <p:graphicImage value="/imagens/pdf.png" />
31        <p:dataExporter type="pdf" target="tabelaCarros" fileName="carros"/>
32    </h:commandLink>
33</h:form>
No código acima eu tenho uma dataTable normal (vista em postagens anteriores) e logo abaixo dela eu tenho os dataExporter, o detalhe mais importante é quanto a propriedade target, veja que ela corresponde ao id da tabela.

Nenhum comentário:

Postar um comentário

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.