BI Publisher(rtf)模板開發文法大全

來源:互聯網
上載者:User

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’?>

……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.