проблема с принятием решения о том, печатать заголовок на последней странице: xsl-fo

Привет, у меня проблема с генерацией pdf с помощью xsl-fo. Строки счета-фактуры в формате PDF на каждой странице. Таким образом, на последней странице выполняется условная проверка, чтобы определить, следует ли печатать заголовок на последней странице. Если на последней странице есть одна или несколько строк, то должен быть заголовок. В противном случае нет.

в настоящее время это делается с использованием приведенной ниже логики

if(total number of invoice lines== preceding::number of invoice lines+1)
{
 call an empty marker
}
else
{
call a marker which prints the heading
}

когда предыдущее количество строк счета-фактуры + 1 равно общему количеству строк счета-фактуры, заголовок не будет отображаться. Логика верна, когда на последней странице больше нет отображаемых строк или когда количество строк на последней странице больше одной.

Теперь проблема в том,

вышеприведенная логика терпит неудачу, когда на последней странице есть только одна строка.

Условие if(общее количество строк счета-фактуры==предыдущее::количество строк счета-фактуры+1) станет истинным, и будет вызван пустой маркер, который не будет отображать заголовок. Мне нужно отобразить заголовок, даже если на последней странице есть только одна строка счета.

Есть ли способ решить эту проблему?

Любая помощь приветствуется.

-Арун

скриншоты:

На следующих снимках экрана показан двухстраничный счет.

На следующем снимке экрана показана последняя страница с двумя строками счета. Когда на последней странице всего две строки, логика сохраняется.

http://img97.imageshack.us/i/85089628.jpg

Но когда на последней странице есть только одна строка, условная проверка if (общее количество строк счета-фактуры == предыдущая:: количество строк счета-фактуры + 1) становится истинной, и заголовок не отображается.

http://img222.imageshack.us/i/49057497.jpg


person Arun Vijay    schedule 15.03.2011    source источник
comment
Я не понимаю этот вопрос. В каком сценарии у вас будет страница, но нечего обрабатывать? Кажется, что ваша логика разбивки на страницы не соответствует содержанию ваших данных.   -  person    schedule 15.03.2011
comment
@Alejandro Алехандро, я прикрепил несколько снимков экрана. Пожалуйста, проверьте их   -  person Arun Vijay    schedule 17.03.2011
comment
img6.imageshack.us/i/26076949.jpg это используемая логика   -  person Arun Vijay    schedule 17.03.2011


Ответы (1)


Вы можете расширить свое условие if с помощью условия OR. Я не знаю точного синтаксиса сейчас, но, может быть, что-то вроде

if(total number of invoice lines != 1 ||
   total number of invoice lines== preceding::number of invoice lines+1)
{
 call an empty marker
} ...

может работать.

person EhmKah a.k.a. Michael Krauße    schedule 15.03.2011