首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cfdocument分页符问题

cfdocument分页符问题
EN

Stack Overflow用户
提问于 2016-07-01 22:46:40
回答 2查看 614关注 0票数 1

我有一个我输出的主查询,它给了我一个运动列表。然后,我有两个子查询,这两个子查询为我提供了Query1:关于谁参加每项运动的人员信息,以及查询1中的人员拥有的Query2: sport书籍。我尝试输出一个表行作为每项运动的标题,然后为查询数据输出额外的行。我想在每一项运动后打破一页,这样我就不会在一页的底部有一个运动描述行,其余的数据在下一页。

我尝试添加所有能想到的点,但最终总是得到与文档开头的getsports查询的记录数相等的空白页。

这是我正在使用的代码。我已经删除了实际的查询数据。有没有人对我做错了什么有什么建议或想法?

代码语言:javascript
复制
<cfquery name="getterm" datasource="DS1">
    select * from dbo.semester where current = 1
</cfquery>


<cfquery name="getsports" datasource="DS1">
    SELECT * FROM [sports]


</cfquery>

<body>

    <div id="wrap">

        <cfinclude template="header.cfm">

            <!-- header end -->

            <div class="container" style="padding-top:0px;">


                <cfdocument format="PDF" mimetype="application/pdf" orientation="landscape">


                    <table width="100%" cellspacing="0" cellpadding="0" topmargin="0" leftmargin="0" border="0" style="font-size:10px">

                        <tr>
                            <td colspan="8" bgcolor="#e3edef" style="padding-top:10px; padding-bottom:10px; padding-left:2px; font-family:Arial;" align="center">Books Not Issued -
                                <cfoutput>#yearOfSport#</h1>
                                </cfoutput>
                            </td>
                        </tr>

                        <cfoutput>
                            <cfloop query="getsports">

                                <tr>
                                    <td colspan="8" style="padding-top:10px; padding-bottom:10px; padding-left:2px; font-family:Arial;" align="center">
                                        <h1>#getsports.descr#  </h1>
                                    </td>
                                </tr>



                                <cfquery name="getbooks" datasource="DS1">
                                    ...

                                </cfquery>

                                <cfloop query="getbooks">

                                    <cfquery name="getbooks2" datasource="DS1">
                                        ...

                                    </cfquery>

                                    <tr>

                                        <td align="left" style="border-bottom: 1px solid; border-top: 1px solid; padding-top:10px;padding-bottom:10px;font-family:arial">
                                            <h4>ID</h4></td>

                                        <td align="left" style="border-bottom: 1px solid; border-top: 1px solid; padding-top:10px;padding-bottom:10px;font-family:arial">
                                            <h4>Name</h4></td>

                                        <td colspan="4" align="left" style="border-bottom: 1px solid; border-top: 1px solid; padding-top:10px;padding-bottom:10px;font-family:arial">
                                            <h4>Sport</h4></td>



                                    </tr>

                                    <tr>

                                        <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial; font-weight: normal;">#id#</td>

                                        <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial; font-weight: normal;">#nameLast#, #nameFirst#, #nameMiddle# </td>

                                        <td colspan="4" align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial; font-weight: normal;">#sport#</td>



                                    </tr>

                                    <tr>

                                        <td align="left" style="border-bottom: 1px solid ##cccccc; padding-top:10px;padding-bottom:10px;font-family:arial">Class</td>

                                        <td align="left" style="border-bottom: 1px solid ##cccccc; padding-top:10px;padding-bottom:10px;font-family:arial">ISBN</td>

                                        <td align="left" style="border-bottom: 1px solid ##cccccc; padding-top:10px;padding-bottom:10px;font-family:arial">Title</td>

                                        <td align="left" style="border-bottom: 1px solid ##cccccc; padding-top:10px;padding-bottom:10px;font-family:arial">Author</td>

                                        <td align="left" style="border-bottom: 1px solid ##cccccc; padding-top:10px;padding-bottom:10px;font-family:arial">Status</td>





                                    </tr>

                                    <cfloop query="getbooks2">
                                        <tr>

                                            <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial">#getbooks2.subject#</td>

                                            <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial">#getbooks2.ISBN#</td>

                                            <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial">#getbooks2.title#</td>

                                            <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial">#getbooks2.author#</td>

                                            <td align="left" style="padding-top:10px;padding-bottom:10px;font-family:arial">#getbooks2.status#</td>





                                        </tr>


                                    </cfloop>





                                </cfloop>

                            </cfloop>



                        </cfoutput>





                        <cfdocumentItem type="footer">
                            <table width="100%" style="font-size:10px;">



                                <tr>
                                    <td style="font-family:Arial;" align="left">
                                        <cfoutput>Page #cfdocument.currentpagenumber# of #cfdocument.totalpagecount# - #dateformat(now(), "mm/dd/yyyy")#</cfoutput>
                                    </td>

                                </tr>

                            </table>
                        </cfdocumentItem>

            </div>

            </table>

            </cfdocument>


    </div>
    <!-- Container end -->
    <div id="push"></div>
    </div>

    <cfinclude template="footer.cfm">
</body>
EN

回答 2

Stack Overflow用户

发布于 2016-07-01 23:19:54

免责声明:我不知道那些页眉和页脚是什么,页眉和页脚在files..but标签之外。我通常不这样做,但也许你这样做是有原因的。

为了在循环数据中获得中断,我将这个(如下)添加到循环的末尾,有时我会添加一个计数器,以防我需要更多的手术控制。

代码语言:javascript
复制
<div style="page-break-before:always">&nbsp;</div> 

它就是这样工作的。

如果你需要精确度的话。我会在没有cf文档的情况下运行你的页面,并从浏览器获取源输出,然后开始计算你需要什么,不需要什么,以及你希望在哪里发生中断。

然后,将cfdocument包装在原始HTML输出中,看看是否获得了所需的效果。

如果你的数据很多,那么就抓取一个子集,这样就可以限制你的结果,这样你就可以管理报告的较小部分。

为了保持理智,我还做了另外一件事。

我使用cfsavecontent并将我所有的HTML输出设置为一个变量,然后将其填充到cfdocument中,这样我就不会搞混了……

示例:

代码语言:javascript
复制
<cfsavecontent variable="buildUpReport">
<cfinclude template="header.cfm">
nested looping ad nauseum...
<div style="page-break-before:always">&nbsp;</div>
more ad nauseum looping...
<cfinclude template="footer.cfm">
</cfsavecontent>

<cfdocument localUrl="yes" 
  format="PDF" 
  mimetype="text/html" 
  marginbottom="0.15" 
  margintop="0" 
  marginright="0" 
  marginleft="0">

<cfoutput>#buildUpReport#</cfoutput>

<cfdocumentitem type="footer" evalatprint="true"> 
<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr><td align="center">
<cfoutput>
    #cfdocument.currentpagenumber# of 
    #cfdocument.totalpagecount# | 
    #dateformat(now(),"mm-dd-yyyy")#
</cfoutput>
</td></tr> 
</table> 
</cfdocumentitem>

</cfdocument>
票数 0
EN

Stack Overflow用户

发布于 2016-07-02 01:30:49

谢谢你的建议。我最终在我的主输出中包含了额外的表标签。一旦我这样做了,分页符就可以正常工作了。我想我之前做的方式就是打破表格结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38148299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档