限制BI Publisher中的每页行数

时间:2017-10-12 07:32:59

标签: rtf page-break bi-publisher limiting oracle-fusion-apps

我正在使用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?>

2 个答案:

答案 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数据源中的行号。