Oracle RTF模板开发.docx

上传人:小飞机 文档编号:3162513 上传时间:2023-03-11 格式:DOCX 页数:8 大小:41.15KB
返回 下载 相关 举报
Oracle RTF模板开发.docx_第1页
第1页 / 共8页
Oracle RTF模板开发.docx_第2页
第2页 / 共8页
Oracle RTF模板开发.docx_第3页
第3页 / 共8页
Oracle RTF模板开发.docx_第4页
第4页 / 共8页
Oracle RTF模板开发.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Oracle RTF模板开发.docx》由会员分享,可在线阅读,更多相关《Oracle RTF模板开发.docx(8页珍藏版)》请在三一办公上搜索。

1、Oracle RTF模板开发2. RTF模版开发 2.1. 本章概述 2.1.1. 关注内容 相信随着XMLP版本的不断升级,其Desktop端的可视化功能将大大简化我们的设计工作,不过目前还有些地方不通过手工编写命令是无法完成的;此外,虽然模版开发是依托Word的功能完成,但有些“鲜为人知”的Word功能需要额外提示下。 所以本章收录的是常见问题的处理办法,并未包括完整的User Guide功能,当然也不包括Word的使用帮助。 2.1.2. XMLP和XSL-FO 可以采取两种方式编写布局语言,一是XSL语句,二是XMLP简易语句,个人建议使用前者,因为其是国际通行标准。另外,这两种语法可

2、以混合使用,比如上面的条件格式化行和单元格。 在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.fi

3、le_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 FilesOracleXML Publisher DesktopsamplesRTF templates有非常好的例子可供参考。 2.2. 布局格式

4、化 2.2.1. 建议做法 充分利用Word的格式化功能:纸张自定义、颜色、字号、字体、标题样式、背景、水印、对齐、表格、分栏、模版日期、窗体域的数字/日期格式、文件图片、页眉页脚、自动图文集。 虽然可以代码控制,但既然依托Word作为可视化设计工具,我们就尽量使用Word功能来设计报表吧! 2.2.2. Word表格 和做网页一样,表格在报表布局中的地位至关重要,要熟练掌握,尤其是: 1、 标题行重复,可以实现新页重复标题。 2、 嵌套表格、行列合并、边框、底纹,可以实现特殊的布局。 3、 固定列宽、自动调整、禁止跨页断行,可以实现一些严格的布局控制。 2.2.3. 行截断与禁止折行 单据打

5、印中对格式的要求比较高,如果某一行过长或者出现多次折行,就会破坏版面,尤其是套打等要求较高的场合,这里把各种方法作个小结。 1、 Word功能,不理想 固定列宽功能可以用,但固定行高不行,虽然设计时看到“固定”了,如果不加控制,运行后多出列宽的数据会自动折行。 2、 单行+截断,即控制只有以行,多余截断,禁止折行 在字段后,再加两个命令: no-wrap hidden 3、 多行+截断,难 如固定显示3行,多余部分截断,目前通过模版无法实现,只有在数据源中先将数据截至刚好3行的字符数,然后利用自动折行功能。这里还要注意空格,如果遇到空格,后面的单词又显示不下,将会提前自动折行 2.2.4. 条

6、件格式化 在不同的条件下显示不同的颜色、不同的列数、不同的标题、不同的布局风格等等,这些都属于条件格式化,需要借助IF命令。 1、 比如不同币种凭证打印格式不同 任何布局 任何布局 2、 比如货币为CNY时才显示列,在目标列的单元格内写如下语句 字段值和格式 注:这还不是真正的动态列。 3、 比如偶数行底色为灰色,在行的任何单元格内写如下语句 gray 4、 比如超过100单元格呈红色,在目标单元格内写如下语句 100? red 2.3. 字段计算技巧 2.3.1. 建议做法 1、 计算字段可以在SQL中先完成。 2、 如果使用Oracle Reports做数据源,那么计算字段、统计字段也可以

7、先完成。 3、 在SQL中的数据,都不带格式,格式在模版中设置;需要在模版中完成计算的字段,必须不带格式,主要指数字不能带千位符号。 2.3.2. 组内合计 N: Template Builder/插入/字段 向导可以完成基本的统计,目前支持分组内的:Sum、Count、Min、Max、Avarage。 自动生成的代码示例:。 2.3.3. 页内合计 要实现本页合计数,需分两步:声明合计变量、显示合计变量。 1、 对QUANTITY进行本页合计,声明变量QTYTOTAL,注意写在QUANTITY对应的组内,不然引用不到 2、 可在任意地方显示合计数 那么如何实现组内+页内合计呢? .3.4.

8、结转合计 把上页的合计数显示到下页,与“页内合计”类似,需分两步:声明合计变量、显示合计变量。 用得少,可参考User Guide“Brought Forward/Carried Forward Totals”部分。 2.3.5. 累计数Running Totals 累计每行数字,实际上是这样完成的:先声明一个变量,初始化为0;累加;在需要的地方显示累计。 1、 在分组标记前初始化,Set变量 2、 计算累计值,通常写在欲累计的字段同一单元格内,比如下面的QUANTITY 3、 任意地方显示累计值,Get变量 2.4. 任何Page相关问题 2.4.1. 新组分页 分页是自然的,但如果想在某处

9、强制分页如新组新页,那么可以使用Word的分页符,但会导致最后出现空白页;这样只能使用如下几种方式: 1、 分组声明中加section,如。 2、 前加。这个翻译后,实际上是: xsl:if test=position page 3、 前加page,此法下RTF最后无空白页,但PDF有空白页。 4、 前加page此法下RTF、PDF最后都有空白页。 2.4.2. 条件分页、固定行分页 1、 任意条件分页,需要借助IF + 上面的break-after或者break-before,如: page 2、 固定行分页,需要借助IF + 上面的break-after或者break-before,在行前

10、,如下语句控制每页5行: page 2.4.3. 页眉页脚 1、 标准的页眉页脚,即单个页眉页脚,使用Word的功能即可。 2、 扩展的页眉页脚,可使用把主体部分“框”起来,凡是在这两个标记之外的东西,都将被当作页眉页脚。 2.4.4. 页码和页数 1、 可以用Word的“自动图文集”,在任意地方插入页码,这个是“自然页码”。 2、 如果在某种情况下想让页码从特定值开始,比如新的组页码重新编号,则需要借助命令,如在for-each后写:。这里的“1”,实际上也可以用数据文件中的XML元素来替换。 2.4.5. 末页、奇偶页不同 1、 Word可在页眉页脚部分实现首页不同或奇偶页不同,没法实现末

11、页不同,即使借助代码控制,实际实现的也是末页布局不同,而非“页眉页脚”不同。 报表本身仅有一页时,则用 例子“AdvancedLast Page”,注意布局需要独立成页,即之前需要加分页符。 2、 以偶数页结束,主要目的是显示偶数页页眉页脚 如果仅显示空白页,则用 3、 以奇数页结束,主要目的是显示奇数页页眉页脚 如果仅显示空白页,则用 2.5. 使用多媒体元素 2.5.1. Word功能 可以使用公式、绘图、艺术字、剪贴画。 如果想通过代码在有限范围内控制这些对象,比如显示文字、缩放、旋转、移动、复制,可参考User Guide中的“Drawing, Shape and Clip Art S

12、upport”。 2.5.2. 复选框 插入复选框窗体域,因其选中代表True,不选代表False,需要我们输入条件表达式,如:0。 2.5.3. 下拉框 插入下拉框窗体域,定义下拉框的元素,并同样在“自己键入”内输入需要引用的XML标记如。这里要注意元素的顺序,因为是用顺序号和运行时的值进行匹配的,也就是XML数据中,AREA_INDEX是自然数1、2。 2.5.4. 超链接 可以直接利用Word功能设置超链接,也可以在链接地址中,全部或部分引用XML数据文件中的标记,做到动态超链接: SUPPLIER_SITE_URL或者 url:8000/OA_MEDIA/urlCURRENCY_COD

13、E.gif 2.5.5. 图片 可以直接利用Word功能插入图片,也可以仅将该图片当作占位图,在图片的“设置图片格式”的网站标签页内的“可选文字”,输入真正的图片地址: 1、 来自网站的图片:url:urlhttp:/localhost:8000/OA_MEDIA/forms_logo.gif/url。 2、 来自EBS的图片:url:$OA_MEDIA/forms_logo.gif。 3、 动态指定地址:url:IMAGE_URL。 4、 动态拼接的地址:url:concat(SERVER,/,IMAGE_DIR,/,IMAGE_FILE)。 5、 直接来自内容为BLOB的XML元素,仅用于“Data Templates”: 2.5.6. 图表 可使用Template Builder向导插入图表,类型有:条形图-垂直、条形图-水平、饼图、线形图。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号