BIP报表 RTF

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). 格式化单元格

2023年07月20日. IF语句

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

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

2023年07月20日. IF-THEN-ELSE语句

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

            else if XXOUNT<1000 then 'XXLOWER'

            else 'EQUAL'

    end if?>

2023年07月20日. Choose语句

    <?choose:?>

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

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

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

    <?end choose?>

2023年07月20日. 格式化列

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

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

2023年07月20日. 格式化行

    当满足条件时加亮行:

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

        ii. 固定行数

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

        

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

变量的操作:

1.在数据源模板xml中定义变量tnum(在dataquery中定义好TNUM),

2.在RTF模板中初始化变量

 <?xdoxslt:set_variable($_XDOCTX,'tnum',TNUM)?>    --tnum为rtf定义变量,TNUM为xml定义变量

3.在RTF中引用变量

<?xdoxslt:get_variable($_XDOCTX,'tnum')?>    --tnum为引用上面步骤2定义好的变量tnum

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:...?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值