2

我正在使用 RTF 模板创建 BI 报告。我只需要在第一页将行数限制为 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?>
4

2 回答 2

2

尝试在 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'?>
于 2017-10-24T22:20:01.283 回答
1

如果你想在 n 行之后分页,你可以使用这个语法:

<? if position() mod 3 = 0?> 
<?split-by-page-break:?>
<?end if?>

这将在 3 行之后打破页面,然后在 6 行之后,以此类推,每 3 个倍数。您可以将 3 替换为所需的行数。

顺便说一句, position() 是您的 xml 数据源中的行号。


于 2017-11-17T12:25:32.533 回答