Faaaaaaaaaaaaaaaaaaaaaaaala galera! hoje vamos ver um pouco sobre o componente DataExporter do Priiiiiiiiiiiiiiiiiiiiiime Faces! Com ele conseguimos fácilmente gerar relatórios e arquivos simples de nossa aplicação! Lets go!
O 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:
07 | private String modelo; |
09 | public Carro(String marca, int ano, String placa, String cor, String modelo) { |
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:
03 | public class CarroBean { |
05 | private List<Carro> carros; |
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")); |
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:
02 | <p:dataTable id="tabelaCarros" value="#{carroBean.carros}" var="c"> |
04 | <f:facet name="header">Marca</f:facet> |
05 | <h:outputText value="#{c.marca}" /> |
08 | <f:facet name="header">Modelo</f:facet> |
09 | <h:outputText value="#{c.modelo}" /> |
12 | <f:facet name="header">Ano</f:facet> |
13 | <h:outputText value="#{c.ano}" /> |
16 | <f:facet name="header">Cor</f:facet> |
17 | <h:outputText value="#{c.cor}" /> |
20 | <f:facet name="header">Placa</f:facet> |
21 | <h:outputText value="#{c.placa}" /> |
26 | <p:graphicImage value="/imagens/xls.png" /> |
27 | <p:dataExporter type="xls" target="tabelaCarros" fileName="carros" /> |
30 | <p:graphicImage value="/imagens/pdf.png" /> |
31 | <p:dataExporter type="pdf" target="tabelaCarros" fileName="carros"/> |
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.
E a bruxaria está pronta! Até a próxima cambada :)
Comentários
Postar um comentário