Как динамически отображать поле в шаблоне RTF в зависимости от положения другого поля

У нас есть требование в отчетах XML Publisher, согласно которому шаблон RTF должен иметь некоторое поле внизу страницы. Положение поля снизу основано на многих атрибутах (количество слов во всех вышеперечисленных полях).

Поле будет показано на первой странице или на второй странице, если шаблон не может разместить поле на первой странице.

Когда поле слишком большое, оно переместится на вторую страницу, оставив большое количество пустого пространства на первой странице. (мы сняли флажок Разрешить разбиение строки на страницы, так как это поле не должно разбиваться на две страницы)

Требование состоит в том, что если это поле отображается на второй странице, нам нужно динамически отображать некоторое значение (например, значение будет отображаться на второй странице) на первой странице.

Можем ли мы в любом случае достичь этого?


person Farish    schedule 03.01.2017    source источник


Ответы (1)


Я думаю, вам придется поставить условие if, чтобы проверить длину данных в поле, которое вы печатаете, и условно напечатать жестко закодированный текст как последний текст на странице 1. Вам придется пройти методом проб и ошибок, чтобы найти правильную длину, когда BIP решает нажать на страницу 2.

<?xdofx:length(char)?> returns the length of char.
person Ranjith R    schedule 09.01.2017
comment
Да, но перемещение текста на следующую страницу зависит не только от длины этого поля. Помимо этого есть много полей, если длина этих полей станет большой, это поле будет перемещено вниз на странице 1. Например, если поля над ними имеют больший размер, это поле будет перемещено на вторую страницу, даже если оно состоит из двух строк, и если поля над ними меньшего размера, это поле будет на странице 1, даже если оно имеет размер 3-4 строки. Итак, есть ли способ определить, есть ли какое-либо поле на той же странице или нет в шаблоне RTF? - person Farish; 19.01.2017
comment
Если это сложнее, вам придется использовать команды [xsl:fo][1] в BIP. Используйте функции номера страницы, чтобы узнать, на какой странице вы находитесь, и используйте ее, чтобы решить, следует ли печатать сообщение-заполнитель. [1]: docs.oracle.com/ cd/E10091_01/doc/bip.1013/b40017/ - person Ranjith R; 19.01.2017