Exportar dados pdf da datatable

16 respostas
R

Boa tarde pessoal, tenho uma dataTable no meu projeto e queria exportar os seus dados para o formato PDF.
Estou usando os jar:

iText-2.1.7.jar
poi-3.2-FINAL.jar

Só que quando eu vou exporta-los, aparece o seguinte erro:

Cannot find component "tbEspecialidades" in view.

Segue os dados da minha tabela:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Registros especialidades" >
                 
                 <h:form>
                      
                    <p:panel header="Registro de Especialidades">
                        <input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
                        <p:dataTable id="tbEspecialidades"   var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"  emptyMessage="Não há registros." paginator="true" rows="5">
                            
                            <p:column headerText="Nome" filterBy="#{especialidadess.nome}">
                                <h:outputText value="#{especialidadess.nome}"/>
                            </p:column>
                            
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Alterar"/>
                                </f:facet>
                             
                                <h:commandLink action="#{especialidadesManagedBean.alterarE()}"> 
                                    <h:graphicImage width="56" height="56" value="/Imagens/editar.png"  /> 
                              
                               </h:commandLink> 
                                                               
                                   
                                
                            </p:column>
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Excluir"/>
                                </f:facet>
                               
                                <h:commandLink action="#{especialidadesManagedBean.removerE()}"> 
                                <h:graphicImage width="56" height="56" value="/Imagens/excluir.png" /> 
                                
                                </h:commandLink> 
                            </p:column>
                           
                            
                          </p:dataTable> 
                        
                          
                    </p:panel>
                        
                       
                    </h:form> 
                 
                      <p:panel header="Exportar dados"> 
                                <h:commandLink>  
                                   <p:graphicImage value="/Imagens/pdf.png" />  
                                   <p:dataExporter type="pdf" target="tbEspecialidades"  fileName="especialidades" />  
                               </h:commandLink> 
                              
                       
                           </p:panel> 
                    
                
               
             

              
              
             </p:fieldset>


            

             </h:form>
           
                </center>
                 
            </ui:define>
        </ui:composition>
    </h:body>
</html>

Desde já, obrigado a todos que puderem me ajudar. Abraço.

16 Respostas

R

Então pessoal, alguém pode me dar uma força?

T

colocar seu código dentro da tag code exemplo

R

Desculpe tmvolpato, não entendi.

R

Desculpe pela gafe, agora eu entendi tmvolpato :slight_smile:

T

Roberto Gimenes:
Desculpe pela gafe, agora eu entendi tmvolpato :slight_smile:

um jeito bom de se trabalhar com datatable em JSF é usar dataModel
ai vc tem acesso facil a linha na qual os dados que você quer alterar
sem precisar ter o trabalho de pegar a linha selecionada.

procure sobre isso ai volte aqui se tiver mais duvida.

R

Então pessoal?

T

o erro é claro…

não esta achando esse componente tbEspecialidades

pq você está fora do form ai ele nao vai acha msm

R

Muito obrigado por responder tmvolpato :slight_smile:
Então cara, fiz como você disse, coloquei dentro do form
mas agora o commandLink ficou sem ação, clico nele e
não acontece nada, será que está faltando algum jar?

T

Roberto Gimenes:
Muito obrigado por responder tmvolpato :slight_smile:
Então cara, fiz como você disse, coloquei dentro do form
mas agora o commandLink ficou sem ação, clico nele e
não acontece nada, será que está faltando algum jar?

no log não aparece nada?

R

Não acontece mais nada, ja viu algo parecido?

R

Será que esta faltando alguma biblioteca jar?

T

os dados .xhtml da sua tabela continua a msm coisa?

pq no seu código estou observando tag form la embaixo do código está parecendo que é sujeira

cole seu código novamente ai

R

Boa tarde tmvolpato, modifiquei um pouco, mas continua na mesma, segue o código xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
   <h:head>
        <title>Clínica Odontológica</title>
    </h:head>
    <h:body>
        <ui:composition template="./template.xhtml">
            <ui:define name="content">
                <center>   
              <h:form>
             <p:fieldset legend="Registros especialidades" >
                 
                 <h:form>
                      
                    <p:panel header="Registro de Especialidades">
                        <input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
                        <p:dataTable id="tbEspecialidades"
                                     var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"
                                     emptyMessage="Não há registros." 
                                     
                                     paginator="true" rows="5">
                            
                            <p:column headerText="Nome" filterBy="#{especialidadess.nome}">
                                <h:outputText value="#{especialidadess.nome}"/>
                            </p:column>
                            
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Alterar"/>
                                </f:facet>
                             
                                <h:commandLink action="#{especialidadesManagedBean.alterarE()}"> 
                                    <h:graphicImage width="56" height="56" value="/Imagens/editar.png"  /> 
                              
                               </h:commandLink> 
                                                               
                                   
                                
                            </p:column>
                            <p:column>
                                 <f:facet name="header">
                                    <h:outputText value="Excluir"/>
                                </f:facet>
                               
                                <h:commandLink action="#{especialidadesManagedBean.removerE()}"> 
                                <h:graphicImage width="56" height="56" value="/Imagens/excluir.png" /> 
                                
                                </h:commandLink> 
                            </p:column>
                            
                       
                           
                            
                          </p:dataTable> 
                       
                       
                        
                          
                    </p:panel>
                     
                    
                          
                             <h:panelGrid columns="2">
                             <p:panel header="Exportar dados"> 
                                <h:commandLink>  
                                    <p:graphicImage id="tpdf" value="/Imagens/pdf.png" />  
                                   <p:dataExporter type="pdf" target="tbEspecialidades"  fileName="Especialidades" />  
                               </h:commandLink> 
                              <p:tooltip for="tpdf" value="Exportar para pdf." showEffect="slide" hideEffect="fade" />    
                              
                       
                           </p:panel> 
                     
                            </h:panelGrid>
                    
                        
                        
                       
                    </h:form> 
                 
                    
                    
                
               
             

              
              
             </p:fieldset>
              
                

            

             </h:form>
           
                </center>
                 
            </ui:define>
        </ui:composition>
    </h:body>
</html>
T

cara você tem um form dentro do outro…
tira isso

R

Nossa cara, funcionou!!!
Muito obrigado mesmo!!!
Valeu pela força!!!

T

Roberto Gimenes:
Nossa cara, funcionou!!!
Muito obrigado mesmo!!!
Valeu pela força!!!

flw estamos ai qualquer coisa

Criado 9 de setembro de 2013
Ultima resposta 16 de set. de 2013
Respostas 16
Participantes 2