2014-05-31 Created By BaoXinjian
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