我正在使用RTF模板来创建BI报告。我需要将行数限制在第1页的3条记录中。剩余的记录/行将继续填充下一页。我还需要打印页面总数。我使用下面的代码来限制记录的数量,但它只打印1行。任何帮助将不胜感激。感谢
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, 0)?>
<?xdoxslt:set_variable($_XDOCTX, ‘lines_page’, 3)?>
<?xdoxslt:set_variable($_XDOCTX, ‘tot_lines’, count(.//PdfDraftPurchaseOrderHeaderVORow))?>
<?xdoxslt:set_variable($_XDOCTX,’remainder’,0)?>
<?for-each:PdfDraftPurchaseOrderHeaderVORow?>
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, xdoxslt:get_variable($_XDOCTX, ‘counter’)+1)?>
<?if@row:xdoxslt:get_variable($_XDOCTX,’counter’) != xdoxslt:get_variable($_XDOCTX,’tot_lines’)?>
<?if@row:position() mod xdoxslt:get_variable($_XDOCTX, ‘lines_page’) = 0?><?call:breaking?><?end if?><?end if?>
<?end for-each?>
答案 0 :(得分:1)
尝试在for-each
中使用它<?if: position() = 3?>
<?split-by-page-break:?>
<?end if?>
我做了一个简单的例子,这很好用。我在第一页上有3条记录,其余的则有6条记录。
对于页面总计,在要求和的元素之后添加此项,其中TotalFieldName
是总变量的名称,Element
是要求和的XML数字元素
<?add-page-total:TotalFieldName;Element?>
在页脚总数的页脚中添加此项,其中TotalFieldName
是我们在上面创建的变量,NumberFormat
类似于9G999D00
<?show-page-total:TotalFieldName; 'NumberFormat'?>
答案 1 :(得分:1)
如果你想在n行之后打破一个页面,你可以使用这种语法:
<? if position() mod 3 = 0?>
<?split-by-page-break:?>
<?end if?>
这将在3行之后打破页面,然后在6行之后打破等等,每3个倍数。您可以用所需的行数替换3。
顺便说一下,position()是xml数据源中的行号。