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.

Comentários

Postagens mais visitadas deste blog

E Esse Tal de Nano Service?

Executar Audio em Java Swing

Validando Email em Java Com e Sem expressão Regular