2007年3月9日 星期五

XMLP - How to do Page Break?

XMLP(XML Publisher)是導入R11i中發現非常好用的工具之一
目前應該稱它為BI Publisher吧
因為開發團隊的Blog已由XML Publisher Blog改為BI Publisher Blog了
現在已經到5.6.3版了..附在R12上..已成為R12上滿主要的一個引擎了

不過我還只是R11i的入門使用者
現在系統上還是5.0.0的...
上patch後可以到5.6.2吧...

以下記錄XMLP中進行跳頁的方式
主要參考自Oracle Forums兩篇討論

對目前一支需求報表
一張A4要印恰好兩個料
非常有幫助

[1]. 直接加page-break
< ?split-by-page-break:? >
但是無法搭配if ..(測試搭配if無效)
通常的用法是 < ?split-by-page-break:? > < ?end for-each? >
用於強制換頁

[2]. 使用xsl語法

<.xsl:if xdofo:ctx="inblock" test=$IF-Condition>
<.xsl:attribute name="break-before">page
<./xsl:attribute><./xsl:if>


例如每個G_ORDER_INFO section都換頁
<.xsl:if xdofo:ctx="inblock" test="position()<.count(//G_ORDER_INFO)">
<.xsl:attribute name="break-before">page<./xsl:attribute>
<./xsl:if>
或這個需求中...PAGE參數為偶數就換頁
<.xsl:if xdofo:ctx="inblock" test="PAGE mod 2=0">
<.xsl:attribute name="break-before">page<./xsl:attribute>
<./xsl:if>

XMLP的User Guide較基本...詳細的應用方法還是要自己由討論區與不斷測試來驗證..

沒有留言: