在Oracle XML Publisher中需要实现每页打印固定行数:
- 在程序中进行处理,这种方式需要将数据和格式混在一起,而且处理起来比较麻烦,搞得不好程序性能也会受到大的影响
- 使用XSL命令来处理,这种方式加上条件判断,可以比较简单的实现固定行数的打印
我设计了一个凭证打印,每张凭证打印只能打印5行,在没有限制行数的情况下,编写的标记如下:
<?for-each:G_JE_LINE_NUM?>
<?JE_LINE_NUM?>
<?ACCOUNTED_CR?>
<?ACCOUNTED_DR?>
<?DESCRIPTION?>
<?end for-each?>
打印出来的报表结果大致如下:
Line CR DR Description
——– ———— ———– —————–
1 2000 100000007
2 514.8 100000003
3 50310 100000002
4 100 100000004
5 200 100000001
6 440 钢板
7 43000 钢板
而需要实现第6行开始进行换页,只需要 编写的如下的标记即可:
<?for-each:G_JE_LINE_NUM?>
<?JE_LINE_NUM?>
<?ACCOUNTED_CR?>
<?ACCOUNTED_DR?>
<?DESCRIPTION?>
<?REFERENCE_1?>
<?if:position() mod 5 =0?> <xsl:attribute name=”break-before”>page</xsl:attribute> <?end if?>
<?end for-each?>
打印的结果为:
Line CR DR Description
——– ———— ———– ————-
1 2000 100000007
2 514.8 100000003
3 50310 100000002
4 100 100000004
5 200 100000001
分页……………
Line CR DR Description
——– ———— ———– ————-
6 440 钢板
7 43000 钢板