OracleRTF模板开发.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OracleRTF模板开发

2. RTF模版开发 2.1. 本章概述 2.1.1. 关注内容 相信随着XMLP版本的不断升级,其Desktop端的可视化功能将大大简化我们的设计工作,不过目前还有些地方不通过手工编写命令是无法完成的;此外,虽然模版开发是依托Word的功能完成,但有些“鲜为人知”的Word功能需要额外提示下。 所以本章收录的是常见问题的处理办法,并未包括完整的User Guide功能,当然也不包括Word的使用帮助。 2.1.2. XMLP和XSL-FO 可以采取两种方式编写布局语言,一是XSL语句,二是XMLP简易语句,个人建议使用前者,因为其是国际通行标准。另外,这两种语法可以混合使用,比如上面的条件格式化行和单元格。 在RTF中直接写的只能是XMLP简易语句;在窗体域中则上述两者皆可。 标准的页眉页脚中不允许使用窗体域;但扩展的页眉页脚中可以使用。 XMLP提供的语法,都是一种简化的“代号”,实际都要翻译成XSL,如果你精通XSL-FO,那么也可以在窗体域中直接用该语法,自由而灵活!如下SQL可以查到转换后的XSL-FO: _select t2.application_short_name, ?? t2.template_code, ?? t1.LANGUAGE, ?? t1.template_name, ?? t3.file_name, ?? t3.xdo_file_type, ?? t3.file_data ?? FROM xdo.xdo_templates_tl t1, xdo.xdo_templates_b t2, xdo.xdo_lobs t3 WHERE t1.template_code = t2.template_code AND t2.template_code = t3.lob_code AND t1.LANGUAGE = ‘US’ AND t1.template_code = ‘CUXXMLPDEMO’ Tips:C:\Program Files\Oracle\XML Publisher Desktop\samples\RTF templates有非常好的例子可供参考。 2.2. 布局格式化 2.2.1. 建议做法 充分利用Word的格式化功能:纸张自定义、颜色、字号、字体、标题样式、背景、水印、对齐、表格、分栏、模版日期、窗体域的数字/日期格式、文件图片、页眉页脚、自动图文集。 虽然可以代码控制,但既然依托Word作为可视化设计工具,我们就尽量使用Word功能来设计报表吧! 2.2.2. Word表格 和做网页一样,表格在报表布局中的地位至关重要,要熟练掌握,尤其是: 1、 标题行重复,可以实现新页重复标题。 2、 嵌套表格、行列合并、边框、底纹,可以实现特殊的布局。 3、 固定列宽、自动调整、禁止跨页断行,可以实现一些严格的布局控制。 2.2.3. 行截断与禁止折行 单据打印中对格式的要求比较高,如果某一行过长或者出现多次折行,就会破坏版面,尤其是套打等要求较高的场合,这里把各种方法作个小结。 1、 Word功能,不理想 固定列宽功能可以用,但固定行高不行,虽然设计时看到“固定”了,如果不加控制,运行后多出列宽的数据会自动折行。 2、 单行+截断,即控制只有以行,多余截断,禁止折行 在字段后,再加两个命令: xsl:attribute xdofo:ctx=block name=wrap-optionno-wrap/xsl:attribute xsl:attribute xdofo:ctx=block name=overflowhidden/xsl:attribute 3、 多行+截断,难 如固定显示3行,多余部分截断,目前通过模版无法实现,只有在数据源中先将数据截至刚好3行的字符数,然后利用自动折行功能。这里还要注意空格,如果遇到空格,后面的单词又显示不下,将会提前自动折行 2.2.4. 条件格式化 在不同的条件下显示不同的颜色、不同的列数、不同的标题、不同的布局风格等等,这些都属于条件格式化,需要借助IF命令。 1、 比如不同币种凭证打印格式不同 ?if:CURRENCY_CODE=CNY?任何布局?end if? ?if:CURRENCY_CODE!=CNY?任何布局?end if? 2、 比如货币为CNY时才显示列,在目标列的单元格内写如下语句 ?if@column:CURRENCY_CODE=CNY?字段值和格式?end if? 注:这还不是真正的动态列。 3、 比如偶数行底色为灰色,在行的任何单元格内写如下语句 ?if@row:position() mod 2=0? xsl:attribute xdofo:ctx=incontext name=background-colorgray/xsl:att

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档