如何在每4条记录后在cfdocument中插入分页符

时间:2016-05-14 15:10:03

标签: coldfusion cfdocument

我有以下cfdocument代码:

<cfdocument format="pdf" orientation = "landscape" bookmark="Yes" marginleft=".25" marginright=".25" marginTop = ".75" marginbottom=".75" scale="90" localUrl="yes"> 
    <cfoutput>
        <cfdocumentsection name="Summary Page" marginleft=".25" marginright=".25" marginTop = "1.65" marginbottom="1" >
            <cfdocumentitem type="header">
                <center>
                    <table width="1000" height="200" cellpadding="3" cellspacing="0">
                        <tr><td>Header Page</td></tr>
                    </table>
                </center>
            </cfdocumentitem>

            <cfloop query="first_query">
                <cfquery name="getDetails" dbtype="query">
                    select * from first_query
                    where type= <cfqueryparam cfsqltype="cf_sql_varchar" value="#Type#">
                </cfquery>

                <cfsavecontent variable="trhead">
                    <tr class="bigbluecolor" style="text-align:center;">
                        <td width="6%">Term</td<
                    </tr>
                </cfsavecontent>
                #trhead#
                <cfloop query="getDetails">
                    <tr align="center">
                        <td width="6%">#Listfirst(TermYears,'.')# Years</td>
                    </tr>
                    <cfif getDetails.recordcount GT 6 AND getDetails.currentRow EQ 6>
                        <cfdocumentitem type="pagebreak"/>
                        #trhead#
                    </cfif>
                </cfloop>
            </table>
            </td></tr></table>
            </cfloop>
        </cfoutput>
    </cfdocumentsection>
</cfdocument>

但是,它不会执行分页符。它在顶部显示空白页面然后开始打破它想要的任何地方。我希望我的内循环在4条记录之后中断,而<TH>标题在第二页的开头再次重复。

trhead变量包含我用savecontent包装的代码来显示它。

任何人都可以解释我缺少的东西吗?

1 个答案:

答案 0 :(得分:2)

分页符的不可预测性是因为:

<cfif getDetails.recordcount GT 6 AND getDetails.currentRow EQ 6>

如果getDetails的记录少于6条,则该条件永远不会返回true。另外,如果您有12个或更多记录,它将不会返回true。我建议这种做法。首先,将其添加到first_query:

order by type

然后按照以下方式构建您的内容:

<cfsavecontent variable="trhead">
<tr class="bigbluecolor" style="text-align:center;">
<td width="6%">Term</td>
</tr>
</cfsavecontent>

<cfoutput query="first_query">
other content goes here
<cfif currentRow mod 6 is 0>
<cfdocumentitem type="pagebreak"/>
#trhead#    
</cfif>
</cfoutput>