首页 > 代码库 > BIP_BI Pubisher的基本语法(概念)

BIP_BI Pubisher的基本语法(概念)

2014-05-31 BaoXinjian In Capgemini

1. XML Publisher概念

    (1).数据逻辑

    (2).报表布局---->XML Publisher---->报表输出

    (3).翻译转化

 

2. 开发Xml publisher流程报表

    (1). 设计数据源文件---->注册数据源文件

    (2). 设计RTF模板---->注册RTF模板

    (3). 注册concurrent program

 

3. 在RTF中需要定义的两类内容

    (1). 数据域

    (2). 循环控制标记

 

4.

    <?for-each:xxname?>...<end for-each>

 

5. 页眉页脚

    <?start:body?>...<?end:body?>

 

6. 嵌套模板

    (1). 定义: <?template:xxname?>...<?end template?>

    (2). 调用: <?call:xxname?>

 

7. 格式化工具

    (1). 分页符:若使用Ctrl+Enter会导致最后一页空白,所以最好使用xml publisher语句定义分页符<?split-by-page-break?>

    (2). 页码:

        i. 可使用WORD中自带的页码工具

        ii.对页码使用要求较高

            <?initial-page-number:$PAGESTART?>, $PAGESTART为所引用的xml data参数

 

8. 复选框

    <?xxpopulation>1000?>

 

9.条件格式化

    (1). IF语句

    (2). IF-THEN-ELSE语句

    (3). Choose语句

    (4). 格式化列

    (5). 格式化行

    (6). 格式化单元格

9-1. IF语句

    (1). 换行<?if:xxcondition?>...<?end if?>

    (2). 不换行<?if@inlines:xxcondition?>...<?end if?>

9-2. IF-THEN-ELSE语句

    <?xdofx:if XXAMOUNT>1000 then ‘XXHIGHER‘

            else if XXOUNT<1000 then ‘XXLOWER‘

            else ‘EQUAL‘

    end if?>

9-3. Choose语句

    <?choose:?>

        <?when:XXFLAG1=‘Y‘?>...<?end when?>

        <?when:XXFLAG2=‘N‘?>...<?end when?>

        <?otherwise?>...<?end otherwise?>

    <?end choose?>

9-4. 格式化列

    根据条件显示隐藏列:<?if@column:xxcondition?>...<?end if>

                        <?if@column: /items/@type="PRIVATE"?>...<?end if?>

9-5. 格式化行

    当满足条件时加亮行:

        <?if@row:condition?>

            <xsl:attribute name="background-color" xdofo:ctx="incontext">

                lightgray

            </xsl:attribute>

        <?end if>

 

10. 行的截断和换行

    <xsl:attribute xdofo:ctx="block" name="wrap-option">no-warp</xsl:attribute>  -->禁止换行

    <xsl:attribute xdofo:ctx="block" name="overflow">hidden</xsl.attribute>      -->多余截断

 

11. 页的相关问题

    (1). 数据组分页

        i. section写法

            <?for-each@section:XXGROUP?>  

        ii.split-by-page-break写法

            <?for-each:XXGROUP?>...<?split-by-page-break:?><?end for-each?>

    (2). 条件分页和固定行

        i. 条件分行

            <?if:CURRENCY_CODE="CNY"?>
           < xsl:attribute name="break-before">page</xsl:attribute>
            <?end if?>

        ii. 固定行数

            <?if:position() mod 10 =0?>
           < xsl:attribute name="break-before">page</xsl:attribute>
            <?end if?>

        

12. 页合计值

    (1). 计算合计值:<?add-page-total; ‘debit-credit‘?>

    (2). 显示合计值:<?show-page-total:net; $#,##0.00; ($#,##0.00)‘?>

    (3). 连续合计

 

13. 排序

    <?sort:xxelement1?><?sort:xxelement2?>

 

14. 变量

    (1). 初始化变量:<?xdoxslt:set_variable($_XDOCTX,‘xxname‘,xxvalue)?>

    (2). 获取变量:<?xdoxslt:get_variable($_XDOCTX,‘xxname‘)?>

    (3). 更新变量:<?xdoxslt:set_variable($_XDOCTX,‘xxname‘,xdoxslt:get_variable($_XDOCTX,‘xxname‘+1))?>

 

15. 数字格式化

    (1). WORD自带格式化方式

    (2). Oracle format-number功能:<?format-number:xxfile; ‘999G999G99‘?>

 

16. 日期格式化

    (1). WORD自带格式化方式

    (2). Oracle format-date功能1:<?format-date:xxfile; ‘FORMAT_MASK‘?>    

    (3). Oracle format-date功能2:<?format-date:hiredate; ‘YYYY--MM-DD‘?>

 

17. 货币格式化

    Oracle format-currency:<?format-currency:XXCUR; font?>

 

18. SQL扩展语句<?xdofx:...?>

 

 Thanks and Regards