Ограничение строк на странице в BI Publisher

Я использую шаблон RTF для создания отчета BI. Мне нужно ограничить количество строк в 3 записи только на 1-й странице. Оставшиеся записи/строки будут продолжать заполнять следующие страницы. Я также обязан распечатать общее количество страниц. Я использовал приведенный ниже код, чтобы ограничить количество записей, однако он печатает только 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?>

person Liezel Francisco    schedule 12.10.2017    source источник
comment
Можете ли вы опубликовать упрощенный XML?   -  person EdHayes3    schedule 17.10.2017


Ответы (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'?>
person EdHayes3    schedule 24.10.2017
comment
Здравствуйте, я уже исправил проблему с разделением по разрывам страниц, но общее количество страниц все еще продолжается. Я обнаружил, что данные, которые я добавляю, имеют строковый формат, поэтому я попытался преобразовать их в числовой тип данных, но, согласно документации оракула, функция суммирования страниц работает только в том случае, если исходный код XML имеет необработанные числовые значения. Числа не должны быть предварительно отформатированы. Есть ли обходной путь для этого? спасибо за помощь - person Liezel Francisco; 03.11.2017
comment
Я тоже это читал, и я не думаю, что есть. однако должно быть легко исправить определение данных XML. - person EdHayes3; 05.11.2017

вы можете использовать этот синтаксис, если хотите разбить страницу после n строк:

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

это разорвет страницу после 3 строк, затем после 6 строк и так далее для каждых 3 кратных. Вы можете заменить 3 на желаемое количество строк.

Кстати, position() — это номер строки в вашем источнике данных xml.


person bhuvan karuturi    schedule 17.11.2017