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

Привет У меня проблема с генерацией 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) станет истинным и будет вызван пустой маркер, который не будет отображать заголовок. Мне нужно отобразить заголовок, даже если на последней странице есть только одна строка счета.

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

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

-Arun

скриншоты:

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

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

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

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

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

1 Ответ

0 голосов
/ 15 марта 2011

Вы можете продлить условие if с условием ИЛИ.Я не знаю точный синтаксис сейчас, но, возможно, что-то вроде

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

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

...