0

嗨,我在使用 xsl-fo 生成 pdf 时遇到问题。每页中的 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 等于发票总行数时,不显示标题。当最后一页中没有要显示的行或最后一页中的行数大于 1 时,该逻辑成立。

现在的问题是,

当最后一页只有一行时,上述逻辑失败。

条件 if(total number of invoice lines==preceeding::number of invoice lines+1) 将变为真,并且将调用一个不会显示标题的空标记。即使最后一页只有一个发票行,我也需要显示标题。

有没有办法解决这个问题?

任何帮助表示赞赏。

-阿伦

截图:

以下屏幕截图显示了一张两页的发票。

下面的屏幕截图显示了带有两个发票行的最后一页。当最后一页只有两行时,逻辑成立。

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

但是当最后一页只有一行时,条件检查 if(total number of invoice lines==preceeding::number of invoice lines+1) 变为真并且不显示标题。

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

4

1 回答 1

0

您可以使用 OR 条件扩展您的 if 条件。我现在不知道确切的语法,但可能类似于

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

可能会奏效。

于 2011-03-15T07:01:57.933 回答