2017-03-15 4 views
1

Ich verwende cfdocument, um Tabelleninhalte in PDF zu speichern. Ich verwende cfoutput, um für jede Zeile in der Abfrage eine zu generieren. Mit jeder x-Zeile möchte ich einen Seitenumbruch erzwingen, die Kopfzeile der Tabelle einfügen und die Abfrage durchgehen. Stattdessen werden mehrere Seitenumbrüche zwischen der Tabelle und der Tabelle eingefügt. Dabei wird völlig ignoriert, wo der Seitenumbruch sein sollte. Sollte das Tag nicht in einer Tabelle funktionieren? Mein Code unter:CFdocumenitem Seitenumbruch funktioniert nicht

<cfdocument format="pdf" orientation="landscape"> 
    <h1>Cumulative Daily Report</h1> 
     <table id="displayTable" cellspacing="0"> 
      <tr> 
       <th>Specialist</th> 
       <th>Asmnts</th> 
       <th>Avg Length</th> 
       <th>Day 2 Returns</th> 
       <th>QPRs</th> 
       <th>NCAs</th> 
       <th>Asmnts</th> 
       <th>Avg Length</th> 
       <th>Day 2 Returns</th> 
       <th>QPRs</th> 
       <th>NCAs</th> 
       <th># of Days</th> 
       <th>AEU/th> 
       <th>Asmnts</th> 
       <th>QPRs</th> 
       <th>NCAs</th> 
       <th># of Days</th> 
       <th></th> 
      </tr> 
      <cfoutput query="qryDisplay"> 
        <cfif qryDisplay.currentRow MOD (rowsPerPage + 1) EQ 0> 
         <cfdocumentitem type="pagebreak"></cfdocumentitem>   <tr> 
          <td colspan="18">Column Header Row here</td> 
         </tr> 
        </cfif> 
       <tr> 
        <td>#SpecialistName#</td> 
        <td>#numberFormat(nSixNumAssess, ",")#</td> 
        <td>#numberFormat(nSixAvgLength, ",")#</td> 
        <td>#numberFormat(nSixDay2Rets, ",")#</td> 
        <td>#numberFormat(nSixQPRs, ",")#</td> 
        <td>#numberFormat(nSixNCAs, "_._")#</td> 
        <td class="contrastBG">#numberFormat(nRtscNumAssess, ",")#</td> 
        <td class="contrastBG">#numberFormat(nRtscAvgLength, ",")#</td> 
        <td class="contrastBG">#numberFormat(nRtscDay2Rets, ",")#</td> 
        <td class="contrastBG">#numberFormat(nRtscQPRs, ",")#</td> 
        <td class="contrastBG">#numberFormat(nRtscNCAs, "_._")#</td> 
        <td>#numberFormat(nSixNumDaysWorked, ",")#</td> 
        <td class="bold">#numberFormat(nSixAEU,"_.__")#</td> 
        <td class="contrastBG">#numberFormat(nWecareNumAssess, ",")#</td> 
        <td class="contrastBG">#numberFormat(nWecareQPRs, ",")#</td> 
        <td class="contrastBG">#numberFormat(nWecareNCAs,"_._")#</td> 
        <td class="contrastBG">#numberFormat(nWecareNumDaysWorked, ",")#</td> 
        <td class="contrastBG bold rightBorder">#numberFormat(nWecareAEU,"_.__")#</td> 
       </tr> 
      </cfoutput> 
     </table> 
</cfdocument> 
+0

Ich glaube nicht, dass dies möglich ist . versuchen Sie es mit einer Software von Drittanbietern wie wkhtmltopdf. –

+0

Mit welcher Version von ColdFusion arbeiten Sie? –

+0

Arbeiten mit CF10 – Cmaso

Antwort

1

Das Problem ist, Sie versuchen, in einer Tabelle zu brechen. Der HTML-Renderer für cfdocument kann das nicht verarbeiten.

Um dies zu beheben, müssen Sie eine Schleife mit TRs erstellen und öffnende/schließende Tabellentags (und die Kopfzeile) für jede erstellte Seite einfügen.

Erinnern Sie sich vor der Schleife, um mit dem öffnenden Tabellen-Tag und der Kopfzeile zu beginnen, und schließen Sie anschließend die Tabelle.

1

Ich fand, dass der Seitenumbruch funktioniert, wenn es tatsächlich in einem td platziert ist. So landete ich einen Seitenumbruch zu schaffen und eine Kopfzeile in das Dokument alle x Zeilen eingefügt, wobei x eine Zahl von dem Benutzer eingegeben und standardmäßig auf 15. So:

<cfoutput query="qryDisplay"> 
       <cfif qryDisplay.currentRow MOD (form.rowsPerPDFPage + 1) EQ 0> 
        <!---do a pagebreak and insert header rows. Pagebreak must be inside the td tag to work---> 
        <tr> 
         <td colspan="18" class="noBorder"> 
          <cfdocumentItem type="pagebreak" /> 
         </td> 
        </tr> 
        <tr> 
         <td class="bottomBorderOnly"></td> 
         <th class="topBorder leftBorder" colspan="5">Sixteenth Street</th> 
         <th class="topBorder"colspan="5">RTSC/SRT</th> 
         <th class="topBorder"colspan="2">16th/RTSC</th> 
         <th class="topBorder rightBorder" colspan="5">WeCARE</th> 
        </tr> 
Verwandte Themen