I'm new to both Primefaces and Primefaces Extensions, so sorry if this is obvious.
I'm trying to use the pe:exporter tag and I'm running into some errors.
my tables is defined as follows:
Code: Select all
<p:dataTable var="semanaMes" value="#{aghuReportsMB.monitoramentoExames}" emptyMessage="Nenhuma informação encontrada" id="exames">
<f:facet name="header">
Monitoramento de Exames para #{aghuReportsMB.mesString} de #{aghuReportsMB.ano}
</f:facet>
<p:columnGroup type="header">
<p:row>
<p:column rowspan="2" headerText="Dia" />
<p:column colspan="3" headerText="Tomografia" />
<p:column colspan="3" headerText="Ultrassom Convencional" />
<p:column colspan="3" headerText="Ultrassom com Doppler" />
<p:column colspan="3" headerText="Desintometria Óssea" />
<p:column colspan="3" headerText="Raio-x" />
<p:column colspan="3" headerText="Eletrocardiograma" />
<p:column colspan="3" headerText="Holter 24 Horas" />
<p:column colspan="3" headerText="Endoscopia Digestiva" />
<p:column colspan="3" headerText="Colonoscopia" />
<p:column colspan="3" headerText="Retossigmoidoscopia" />
<p:column colspan="3" headerText="Capsulotomia" />
<p:column colspan="3" headerText="Mapeamento de Retina" />
<p:column colspan="3" headerText="Retinografia Colorida" />
<p:column colspan="3" headerText="Estudo Urodinâmico" />
<p:column colspan="3" headerText="Urofluxometria"/>
<p:column colspan="3" headerText="Total Geral"/>
</p:row>
<p:row>
<!-- Tomografia -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Ultrassom convencional -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Ultrassom com Dopler -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Desintometria Óssea -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Raio-x -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Eletrocardiograma -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Holter 24 Horas -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Endoscopia Digestiva -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Colonoscopia -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Retossigmoidoscopia -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Capsulotomia -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Mapeamento de Retina -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Retinografia Colorida -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Estudo Urodinâmico -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<!-- Urofluxometria -->
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
<p:column headerText="Ofertado" />
<p:column headerText="Agendado" />
<p:column headerText="Atendido" />
</p:row>
</p:columnGroup>
<p:subTable var="registro" value="#{semanaMes.dados}">
<p:column>
#{registro.dia}
</p:column>
<!-- Tomografia -->
<p:column>
#{registro.getDetalhe("TM").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("TM").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("TM").atendido}
</p:column>
<!-- Ultrassom convencional -->
<p:column>
#{registro.getDetalhe("ULT").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("ULT").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("ULT").atendido}
</p:column>
<!-- Ultrassom com Dopler -->
<p:column>
#{registro.getDetalhe("DOP").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("DOP").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("DOP").atendido}
</p:column>
<!-- Desintometria Óssea -->
<p:column>
#{registro.getDetalhe("DO").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("DO").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("DO").atendido}
</p:column>
<!-- Raio-x -->
<p:column>
#{registro.getDetalhe("RX").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("RX").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("RX").atendido}
</p:column>
<!-- Eletrocardiograma -->
<p:column>
#{registro.getDetalhe("ELE").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("ELE").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("ELE").atendido}
</p:column>
<!-- Holter 24 Horas -->
<p:column>
#{registro.getDetalhe("HOL").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("HOL").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("HOL").atendido}
</p:column>
<!-- Endoscopia Digestiva -->
<p:column>
#{registro.getDetalhe("EDA").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("EDA").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("EDA").atendido}
</p:column>
<!-- Colonoscopia -->
<p:column>
#{registro.getDetalhe("COL").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("COL").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("COL").atendido}
</p:column>
<!-- Retossigmoidoscopia -->
<p:column>
#{registro.getDetalhe("RET").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("RET").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("RET").atendido}
</p:column>
<!-- Capsulotomia -->
<p:column>
#{registro.getDetalhe("CPS").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("CPS").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("CPS").atendido}
</p:column>
<!-- Mapeamento de Retina -->
<p:column>
#{registro.getDetalhe("MR").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("MR").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("MR").atendido}
</p:column>
<!-- Retinografia Colorida -->
<p:column>
#{registro.getDetalhe("RTC").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("RTC").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("RTC").atendido}
</p:column>
<!-- Estudo Urodinâmico -->
<p:column>
#{registro.getDetalhe("URG").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("URG").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("URG").atendido}
</p:column>
<!-- Urofluxometria -->
<p:column>
#{registro.getDetalhe("URO").ofertado}
</p:column>
<p:column>
#{registro.getDetalhe("URO").agendado}
</p:column>
<p:column>
#{registro.getDetalhe("URO").atendido}
</p:column>
<p:column>
#{registro.totalOfertado}
</p:column>
<p:column>
#{registro.totalAgendado}
</p:column>
<p:column>
#{registro.totalAtendido}
</p:column>
<p:columnGroup type="footer">
<p:row>
<p:column footerText="Semanal"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('TM')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('TM')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('TM')}" style="text-align:right"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('ULT')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('ULT')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('ULT')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('DOP')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('DOP')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('DOP')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('DO')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('DO')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('DO')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('RX')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('RX')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('RX')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('ELE')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('ELE')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('ELE')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('HOL')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('HOL')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('HOL')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('EDA')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('EDA')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('EDA')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('COL')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('COL')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('COL')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('RET')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('RET')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('RET')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('CPS')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('CPS')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('CPS')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('MR')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('MR')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('MR')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('RTC')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('RTC')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('RTC')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('URG')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('URG')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('URG')}"/>
<p:column footerText="#{semanaMes.getTotalOfertadoByEspecialidade('URO')}"/>
<p:column footerText="#{semanaMes.getTotalAgendadoByEspecialidade('URO')}"/>
<p:column footerText="#{semanaMes.getTotalAtendidoByEspecialidade('URO')}"/>
<p:column footerText="#{semanaMes.totalOfertado}"/>
<p:column footerText="#{semanaMes.totalAgendado}"/>
<p:column footerText="#{semanaMes.totalAtendido}"/>
</p:row>
</p:columnGroup>
</p:subTable>
<p:columnGroup type="footer">
<p:row>
<p:column footerText="Total" />
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('TM')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('TM')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('TM')}" style="text-align:right"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('ULT')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('ULT')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('ULT')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('DOP')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('DOP')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('DOP')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('DO')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('DO')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('DO')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('RX')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RX')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RX')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('ELE')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('ELE')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('ELE')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('HOL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('HOL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('HOL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('EDA')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('EDA')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('EDA')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('COL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('COL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('COL')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('RET')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RET')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RET')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('CPS')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('CPS')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('CPS')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('MR')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('MR')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('MR')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('RTC')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RTC')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('RTC')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('URG')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('URG')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('URG')}"/>
<p:column footerText="#{aghuReportsMB.getTotalOfertadoExamesByEspecialidade('URO')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('URO')}"/>
<p:column footerText="#{aghuReportsMB.getTotalAgendadoExamesByEspecialidade('URO')}"/>
<p:column footerText="#{aghuReportsMB.totalOfertadoExames}"/>
<p:column footerText="#{aghuReportsMB.totalAgendadoExames}"/>
<p:column footerText="#{aghuReportsMB.totalAtendidoExames}"/>
</p:row>
</p:columnGroup>
</p:dataTable>
Code: Select all
<p:panel header="Exportar dados">
<h:commandLink>
<h:outputText value="Exportar para arquivo do Excel"/>
<pe:exporter type="xlsx" target="exames" fileName="exames_#{aghuReportsMB.mesString}_#{aghuReportsMB.ano}" subTable="true" />
</h:commandLink>
<br/>
<h:commandLink>
<h:outputText value="Exportar para arquivo PDF"/>
<pe:exporter type="pdf" target="exames" fileName="exames_#{aghuReportsMB.mesString}_#{aghuReportsMB.ano}" subTable="true" />
</h:commandLink>
</p:panel>
Code: Select all
java.lang.ClassCastException: com.sun.faces.facelets.compiler.UIInstructions cannot be cast to org.primefaces.component.api.UIColumn
org.primefaces.extensions.component.exporter.PDFExporter.tableColumnGroup(PDFExporter.java:521)
org.primefaces.extensions.component.exporter.PDFExporter.exportPDFTable(PDFExporter.java:179)
org.primefaces.extensions.component.exporter.PDFExporter.export(PDFExporter.java:138)
org.primefaces.extensions.component.exporter.DataExporter.processAction(DataExporter.java:170)
javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
javax.faces.component.UICommand.broadcast(UICommand.java:300)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
What am I doing wrong?
Edit: Changed to correct com.lowagie version