Rtf模板開發例如背景,紋理分欄等等功能都能用word工具實現不再具體總結大家可以參考word教程。。。。。
一.組
定義一個組的目的是告訴XMLPublisher對重複的資料行進行迴圈顯示,也就是說需要使用for-each進行資料記錄的迴圈顯示
<?for-each:XML group element tag name?>
……
<?endfor-each?>
二.新組分頁
分頁是自然的,但如果想在某處強制分頁如新組新頁,那麼可以使用Word的分頁符(CTRL+ENTER快速鍵),但會導致最後出現空白頁;這樣只能使用如下幾種方式:
1、 分組聲明中加@section,如<?for-each@section:G_PO_HEADER?>。
2、 <?end for-each?>前加<?split-by-page-break:?>。這個翻譯後,實際上是:
<xsl:iftest="position()<last()">
< xsl:attribute name="break-before">page</xsl:attribute>
< /xsl:if>
3、 <?end for-each?>前加<xsl:attributename="break-after">page</xsl:attribute>,此法下RTF最後無空白頁,但PDF有空白頁。
4、 <?end for-each?>前加<xsl:attributename="break-before">page</xsl:attribute>此法下RTF、PDF最後都有空白頁。
三.條件分頁、固定行分頁
1、 任意條件分頁,需要藉助IF+上面的break-after或者break-before,如:
<?if:CURRENCY_CODE="CNY"?>
< xsl:attribute name="break-before">page</xsl:attribute>
< ?end if?>
2、 固定行分頁,需要藉助IF+上面的break-after或者break-before,在行<?end for-each?>前,如下語句控制每頁5行:
<?if:position() mod 5 =0?>
< xsl:attribute name="break-before">page</xsl:attribute>
< ?end if?>
四.頁首頁尾
1、 標準的頁首頁尾,即單個頁首頁尾,使用Word的功能即可。
2、 擴充的頁首頁尾,可使用<?start:body?><?endbody?>把主體部分“框”起來,凡是在這兩個標記之外的東西,都將被當作頁首頁尾。
五.頁碼和頁數
1、 可以用Word的“自動圖文集”,在任意地方插入頁碼,這個是“自然頁碼”。
2、 如果在某種情況下想讓頁碼從特定值開始,比如新的組頁碼重新編號,則需要藉助命令,如在for-each後寫:<?initial-page-number:1?>。這裡的“1”,實際上也可以用資料檔案中的XML元素來替換。
六.末頁、奇偶頁不同
1、 Word可在頁首頁尾部分實現首頁不同或奇偶頁不同,沒法實現末頁不同,即使藉助代碼控制,實際實現的也是末頁布局不同,而非“頁首頁尾”不同。
<?start@last-page:body?><?end body?>
報表本身僅有一頁時,則用<?start@last-page-first:body?><?endbody?>
例子“Advanced/LastPage”,注意布局需要獨立成頁,即之前需要加分頁符。
2、 以偶數頁結束,主要目的是顯示偶數頁頁首頁尾
<?section:force-page-count;’end-on-even-layout’?>
如果僅顯示空白頁,則用<?section:force-page-count;’end-on-even’?>
3、 以奇數頁結束,主要目的是顯示奇數頁頁首頁尾
<?section:force-page-count;’end-on-odd-layout’?>
如果僅顯示空白頁,則用<?section:force-page-count;’end-on-odd’?>
七.嵌套模板
由於在頁首和頁尾中不允許使用表單域,而當報表首頁尾中希望插入XML資料的時候,可以考慮使用嵌套模板。
嵌套模板是在模板中定義一個子模板,然後在需要的地方調用它,如在頁首頁尾中調用它。
定義子模板
子模板標記之間可以使用任何的標記和內容,和模板的主體部分沒有任何區別
<?template:internaltemplate name?>
……
<?end template?>
. 調用子模板
<?call:internaltemplate name?>
八.圖片插入
接插入圖片
可以直接在模板中插入jpg、gif或png格式圖片
URL連結圖片
•在模板中隨意插入一張圖片
•在設定圖片對話方塊中的網站標籤頁中,在替代文字中輸入如下的URL格式連結
url:{’http://image location’}
url:{’http://www.oracle.com/images/ora_log.gif’}
OA Media 庫圖片
•在模板中隨意插入一張圖片
•在設定圖片對話方塊中的網站標籤頁中,在替代文字中輸入如下的URL格式連結
url:{’${OA_MEDIA}/image name’}
url:{’${OA_MEDIA}/ORACLE_LOGO.gif’}
九. 超連結
•使用word中的插入超連結功能來插入靜態連結
•如果超連結包括了模板中的資料元素,可以在運行時動態建立超連結,在連結地址中按如下格式輸入:
{URL_LINK}
URL_LINK可以是一個完整的URL地址,也可以使URL地址中的一部分。
它是動態傳入的資料元素,如下傳入URL的參數:
http://www.oracle.com?product={PRODUCT_NAME}
PRODUCT_NAME是運行時傳入值的資料元素名稱
如下是一個完整的URL地止
{SUPPLIER_URL}
SUPPLIER_URL 是運行時傳入值的資料元素名稱
十.表格
XML Publisher 支援通過XML資料來動態建立表格內容和題頭
動態建立題頭的步驟:
à使用<?tagname?>標記的方式來插入題頭,並將其格式化為題頭。這裡不能使用表單
域的功能。
例如報表要求將公司名稱顯示為題頭,XML資料標記名為<COMPANY_NAME>,在
報表範本中需要顯示標題的地方輸入<?COMPANY_NAME?>即可
à通過word的內建功能建立表格的其他內容
在啟動並執行時候,系統自動替換表格中和題頭標記的值
十一. 複選框
可以在模板中定義複選框,並根據傳入的值來決定是否被選中
定義複選框的步驟:
使用word中的複選框型表單域功能添加複選框
開啟複選框型表單域選項視窗
設定預設值:未選中或選中
在表單域協助文字中輸入複選框選中的條件運算式,它必須是一個布林運算式,只能返回true或false
如:XML資料中包括了<population>的元素,如果<population>的值大於10000
則複選框被選中,則在表單域協助文字中輸入如下的條件運算式:
<?population>10000?>
十二.IF語句
<?if:condition?>
……
<?end if?>
例子
<?if:VENDOR_NAME=’COMPANYA’?>
……