1

私の問題は、ボタンをクリックしてデータテーブルをエクスポートすると、列ヘッダーのみがエクスポートされ、Excel ファイルが行なしで生成されることです。

<h:form>


    <p:dataTable id="cteTable" var="cte" 
        emptyMessage="Nenhum Registro Localizado"
        reflow="true" value="#{extratorBean.ctes}" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
        style="margin-top: 10px" paginator="true" rows="100" scrollable="true" scrollWidth="1024px">

        <f:facet name="{Exporters}">
            <h:commandLink>
                <p:graphicImage name="images/excel.png" width="24" library="samsung" />
                <p:dataExporter type="xls" target="cteTable" fileName="cte-s" />
            </h:commandLink>
        </f:facet>

        <p:column headerText="CNPJ Emissor" width="150" style="text-align: center">
            <h:outputText value="#{cte.EMIT_CNPJ}"/>
        </p:column>

        <p:column headerText="Serie" width="60" style="text-align: center">
            <h:outputText value="#{cte.IDE_SERIE}"/>
        </p:column>

        <p:column headerText="N° CT-e" width="90" style="text-align: center">
            <h:outputText value="#{cte.IDE_NCT}"/>
        </p:column>

        <p:column headerText="Dt. Emissão" width="150" style="text-align: center">
            <h:outputText value="#{cte.IDE_DHEMI}">
                <f:convertDateTime pattern="dd/MM/yyyy" />
            </h:outputText>
        </p:column>

        <p:column headerText="Total Frete" width="80" style="text-align: center">
            <h:outputText value="#{cte.VPREST_VTPREST}">
                <f:convertNumber type="currency" />
            </h:outputText>
        </p:column>

        <p:column headerText="ICMS" width="80" style="text-align: center">
            <h:outputText value="#{cte.ICMS_VICMS}">
                <f:convertNumber type="currency" />
            </h:outputText>
        </p:column>

        <p:column headerText="% ICMS" width="80" style="text-align: center">
            <h:outputText value="#{cte.ICMS_PICMS}">
                <f:convertNumber minFractionDigits="2" />
            </h:outputText>             
        </p:column>

        <p:column headerText="Nat. Op." width="350" style="text-align: center">
            <h:outputText value="#{cte.IDE_NATOP}"/>
        </p:column>

        <p:column headerText="CNPJ Tomador" width="150" style="text-align: center">
            <h:outputText value="#{cte.TOMADOR}"/>
        </p:column>

        <p:column headerText="Chave Acesso" width="350" style="text-align: center">
            <h:outputText value="#{cte.TRANSACTIONID}"/>
        </p:column>

        <p:column headerText="Dt. Criação" width="120" style="text-align: center">
            <h:outputText value="#{cte.IDE_TIMESTAMP}">
                <f:convertDateTime pattern="dd/MM/yyyy" />
            </h:outputText>
        </p:column>

        <p:column headerText="N° Protocolo" width="120" style="text-align: center">
            <h:outputText value="#{cte.IDE_AUTHCODESEFAZ}"/>
        </p:column>

    </p:dataTable>
</h:form>

私は primefaces 5.3 を使用しており、apache poi 3.8 と 3.10-FINAL を使用しようとしましたが、どちらも正しく機能しませんでした。

ログにエラーはありません。

編集:何が起こっているかはすでに知っています。問題は、テーブルが読み込まれると空ですが、それをExcelにエクスポートするボタンのように見え、テーブルを空の状態である種のキャッシュを保持し、データをテーブルにロードした後でもボタンがExcelをエクスポートし続けることです空の。 今、私はこの問題を解決する方法がわかりません。

4

3 に答える 3

2

さて、他の誰かがこの問題に遭遇した場合、私の答えは次のとおりです。私のマネージド Bean はリクエスト スコープでした。しかし、Excel をエクスポートするボタンをクリックすると、maneged Bean に新しい要求が行われます。このリクエストでは、私のリストは null でした。メソッド getList にブレークポイントを設定して、これを確認しました。 そのため、マネージド Bean のスコープをリクエスト スコープからビュー スコープに変更するだけで、正常に動作します。

于 2016-04-01T15:06:47.457 に答える
-1

p:column の後に f:facet ヘッダーを追加します

<p:column>
  <f:facet name="header">
    <h:outputText value="CNPJ Emissor"/>
  </f:facet>

  <h:outputText value="#{cte.EMIT_CNPJ}"/>
</p:column> 
于 2016-04-01T02:35:13.373 に答える