oracle核心应用技术报表解决方案_第1页
oracle核心应用技术报表解决方案_第2页
oracle核心应用技术报表解决方案_第3页
oracle核心应用技术报表解决方案_第4页
oracle核心应用技术报表解决方案_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术最佳实践ORACLE核心应用技术报表解决方案XML Publisher技巧集锦Author:黄建华Creation Date:October 16, 2006Last Updated:五月 24, 2019Document Ref: Version:DRAFT 1AApprovals: Copy Number_Document ControlChange Record4DateAuthorVersionChange Reference16-Oct-06Jianhua.HuangDraft 1aNo Previous DocumentReviewersNamePositionDistributionCopy No.NameLocation1Library MasterProject Library2Project Manager34Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsDocument Controlii1.BI Publisher基础21.1.读者基础要求21.2.文档贡献者21.3.About XMLP21.4.必要配置41.5.最简单的例子.输出XML数据源51.6.最简单的例子.设计RTF模版81.7.最简单的例子.注册数据源和模版141.8.最简单的例子.运行报表152.RTF模版开发172.1.本章概述172.2.布局格式化172.3.字段计算技巧192.4.任何Page相关问题202.5.使用多媒体元素212.6.其它常用语法232.7.高级布局253.其它数据源和模版开发(可选)283.1.Data Template283.2.PDF模版283.3.eText模版283.4.FO模版284.集成和API294.1.如何提交XMLP请求294.2.如何自己控制模版和格式294.3.Report报表迁移304.4.即时预览304.5.即时打印304.6.即时分发305.相关专题讨论315.1.服务器端版本315.2.Viewer设置325.3.字体与乱码335.4.Output Post Processor365.5.字符集与乱码385.6.国际化支持395.7.Instance间迁移405.8.问题记录406.Open and Closed Issues for this Deliverable42Open Issues42Closed Issues421. BI Publisher基础1.1. 读者基础要求1、 熟悉EBS并发程序开发2、 熟悉Microsoft Word3、 了解并发管理器的定义和作用4、 理解简单的XML文件5、 有XSL-FO开发经验者更佳6、 有Java开发经验者更佳1.2. 文档贡献者截止目前为止,本文档在编写过程中得到张礼军、刘平的鼎力支持,这里深表感谢!1.3. About XMLPXMLP在EBS中的地位XMLP是EBS的11.510之后主要的报表解决方案。每种技术都有自己的特点和应用方向,仔细阅读下表,我们可以体会何种场景该使用XMLP。EBS中的技术特点企业应用Oracle DB关系型数据库,其实是最佳的设计模式和开发框架所有MIS系统的基础,最可靠的数据持久存储PL/SQL标准SQL+编程语言,Oracle所有开发工具的基石用于业务逻辑实现;系统质量的优劣、性能的高低,很大程度上取决于PL/SQLReports过去流行的可视化报表设计环境,开发效率高数据检索+报表展现,尤其是单据打印DiscovererBI展现工具,基于主题视图,分析企业数据因为布局工作量小,被广泛应用于普通报表开发ADI/Web ADI从日记账和FA起家,逐步发展为EBS最强的桌面工具数据检索+Excel展现、数据批量录入和修改XML Publisher基于XML工业标准,数据抽取与展现分离,布局设计平易近人又高度灵活丰富,与Java亲密集成数据检索+报表展现,除了单据打印,还可发布至合作伙伴Concurrent基于时间的任务并发、排队,合理利用系统资源立即、定时或周期执行程序、报表、维护和监控FlexfieldEBS最富特色的自定义字段,智能组合、智能验证会计科目、物料分类,业务特有信息的记录和传递Forms最快捷的数据库应用系统开发环境,UI不够友好Windows版的数据录入+数据处理+数据检索JSP/JTF/OAF效率比较高的基于浏览器的应用开发框架纯Web版的数据录入+数据处理+数据检索Workflow灵活的流程定义/自动化、通知发送、系统间集成流程式审批、流程式数据传递、事件式系统集成Alert基于触发器和定时器的数据监控、预警通知企业核心数据监控、系统运行异常监控Interface/API各模块开发人员留出的,除了UI外的数据“出入口”客户化业务、外围系统与核心ERP的集成Web Service基于Internet的计算和服务,可用于数据交换跑在Internet上的Interface/API1.3.1. 官方资料XML Publisher简称XMLP,现在叫BI Publisher,有独立版和EBS嵌入版。以下站点是BI Publisher的官方技术中心:以下站点是EBS的官方文档中心,其中包含XML Publisher的最新User Guide:BI Publisher可以使用 大多数用户熟悉的工具Microsoft Word 或 Adobe Acrobat,来设计报表格式。不需要专用的设计Studio,这意味着不需要额外的成本。这样,业务顾问或者用户仅需要简单的培训,就可以直接完成报表的设计。1.3.2. 解决了其它报表工具的鸡肋1、 PL/SQL:布局过于简单;不便于Java集成,不便于对外发布。2、 Discoverer:布局过于简单、性能较差;不便于Java集成,不便于对外发布。3、 Reports:输出Excel不方便、标题和内容漂移、PASTA配置麻烦;不便于Java集成,不便于对外发布。1.3.3. 完全分离数据 / 布局 / UI国际化数据获取、布局设计、界面翻译三大工作全部分离,可由不同的人甚至第三方分工协作。报表输出数据逻辑报表布局翻译转化XML Publisher1.3.4. 数据不限来源、最终格式丰富、传送不限目的地BI Publisher 可以接受并格式化任何格式规范的 XML 数据,它可以与能够生成 XML 的任何数据库、应用程序或过程集成,无论是要格式化输出并发送给使用者的数据库、ERP 应用程序还是 Web 服务。BI Publisher 还允许您将来自多个数据源的数据置入单个输出文档。可以通过打印机、电子邮件、传真和 WebDav 传送您的内容,或者将报表发布到门户。Delivery Manager 的开放式体系结构还允许您轻松地实现自定义传送通道。Web Services模 板XMLEDIEFTEmailPrinterFaxWebDAVe-Commerce输出目标Oracle, SQL ServerPeopleSoft, SAP, SiebelJava, C+, Pearl, etcXML Publisher数据源 Word Excel AcrobatXSL布局设计工具PDFRTFHTMLExcel XML Spy JDeveloper Scriptura1.3.5. 卓越的性能BI Publisher 基于 W3C XSL-FO 标准,它是当今世界上最快、伸缩性最强的实现。它可以在较短的时间内处理大量的数据输入并生成输出,而只需占用很少的 CPU 时间和内存。1.3.6. 开放的标准,易于集成BI Publisher 是基于开放标准技术构建的。它是一个 J2EE 应用程序,可以部署到任何 J2EE 容器。数据将处理为 XML,在桌面应用程序中创建的布局模板将在内部转换为 XSL-FO(另一个 W3C 标准)。该应用程序生成的输出也符合业界标准,如 PDF、RTF 和 HTML。传送协议是 Internet 打印协议 (IPP)、WebDAV、FTP 和 AS2。1.4. 必要配置1.4.1. 服务器端Patch最好升级到最新版本,至少也要到5.5,之前的版本可以说是Oracle的“小白鼠”。目前最新版为Oracle XML Publisher Core Rollup Patch 5.6.2 (Patch ),Notes.1,有比较详细的描述。SELECT * FROM fnd_product_installations WHERE patch_level LIKE %XDO%1.4.2. 服务器端配置除非有特别需要,如设置临时文件夹、字体映射、PDF报表文件密码控制等,否则不需要做什么配置。新版配置:XML Publisher Administrator/Home/Administration。旧版配置:$XDO_TOP/resource/xdo.cfg或者$AF_JRE_TOP/jre/lib/xdo.cfg。该文件默认不存在,需要手工创建。文件格式要按照Oracle XML Publisher Users Guide的要求来写。如果PC机安装了XML Publisher Desktop,其实里面有个xdo example.cfg文件,可以稍微修改即可使用。1.4.3. 开发设计工具XML Publisher D/technology/global/cn/software/products/publishing/index.html目前最新版本是5.6.2;需要先装好JDK1.4以上版本。下载下来后直接安装,这样会在Word中嵌入XMLP的菜单,可以用来自动生成布局、预览等。1.5. 最简单的例子.输出XML数据源1.5.1. 关于数据源XMLP要求的数据,必须是XML格式的,这可以通过多种方式生成,最常见的有两种。1、 Oracle Reports:仅创建Data Module、分组、求和,不用设计布局;其中求和也可以在模版中完成。2、 PL/SQL or SQL:直接输出XML格式的内容。如果使用XMLP的Java API来生成报表,实际上可以从任何途径获得XML格式的文件,包括本地文件、用URL指定的网络文件、其他Java函数返回的参数等等。1.5.2. 开发数据源这里采用Oracle Reports,为简单起见,参数写死,SQL如下:SELECT poh.segment1 po_num, por.release_num release, pv.vendor_name, pvs.address_line1, pvs.address_line2, pvs.address_line3, pol.line_num | . | pll.shipment_num line_num, mst.segment1 item_num, mst.description, pll.quantity, pll.unit_meas_lookup_code uom, pll.price_override unit_price, poh.currency_code, nvl(pll.need_by_date, mised_date) need_by_date FROM po_headers_all poh, po_vendors pv, po_vendor_sites_all pvs, po_lines_all pol, po_line_locations_all pll, po_releases_all por, mtl_system_items_vl mst WHERE poh.vendor_id = pv.vendor_id(+) AND poh.vendor_site_id = pvs.vendor_site_id(+) AND poh.po_header_id = pol.po_header_id AND pol.po_line_id = pll.line_location_id AND pll.po_release_id = por.po_release_id(+) AND pol.item_id = mst.inventory_item_id AND pll.ship_to_organization_id = anization_id AND _id = 102 AND poh.creation_date = sysdate - 60在Oracle Reports中创建数据模型并分组如下:对组名称可以改得友好些,比如这里的G_PO_HEADER和G_PO_LINE,这样生成的XML文件可读性更佳。代码参考:CUXXMLPDEMO.rdf。1.5.3. 注册并发程序,输出格式为XML1、 上传CUXXMLPDEMO.rdf至服务器$SCF_TOP/reports/US2、 注册可执行:3、 注册并发程序,注意输出格式:4、 分配给相应的请求组。1.5.4. 试运行,获得样例数据将报表上传服务起后,请求运行结果如下(只展开了一张PO):可以看到,Oracle Reports可以自动输出XML,Tag主要来自文件名、分组名、字段名。具体文件可参考:CUXXMLPDEMO.xml。1.6. 最简单的例子.设计RTF模版1.6.1. 关于布局设计实际上和任何报表工具一样,布局设计时,先需要“想象”层次结构,如哪些内容位于页眉页脚,哪些内容是报表头,哪些内容是明细行,各部分是如何依次嵌套的,哪些地方需要合计等等。同时考虑一些特殊需求:如何进行页码编号、是否动态列、每页显示的行数是否固定、新单据是否从新页开始、行高和列宽是否固定、表头是否在新页重复等等。这些也是做布局设计的重点和难点,而且不同版本的XMLP支持的特性也不一样,总的来说5.6.2之后,应该我们常用的需求都能被满足。布局设计最常用的工具是Word,也可以是Adobe Acrobat,也可以直接编写XSL-FO模版。实际上,当上传RTF文件到XMLP模版管理器时,将被自动转换为XSL-FO。1.6.2. 了解窗体域,这可是我们经常写XMLP代码的地方用Word进行RTF模版设计时,XMLP主要是利用“窗体域”来保存分组、格式、赋值等控制信息,其类似报表中的占位符,运行时将被实际的数据替换。先从菜单“视图/工具栏/窗体”调出窗体工具栏。然后就可以将“窗体域”插到Word文档中,最后通过右键“窗体域”调出属性,默认文字中输入比较直观的描述,在“添加帮助文字”的“自己键入”部分输入相应的XMLP命令,格式都是。比如下面的命令是个占位符,意思是运行时,用数据文件中标记为“ITEM_CODE”的值替换:1.6.3. 导入样例数据打开Word,通过Template Builder/数据/装入XML数据:选择上一步请求输出的XML文件,这样我们可以用向导加快模版设计,同时也方便预览。1.6.4. 布局向导布局设计比较灵活,可以先搭好分组框架,也可先设计数据;可以通过向导创建,也可以手工设计。这里先介绍向导,这样可以减少手工添加“窗体域”的工作量。1、 启动向导,菜单Template Builder/插入/表/表单/向导2、 选择布局风格,我们先要做采购订单单据头,所以选择“表单”3、 选择分组依据,我们这里选择G_PO_HEADER4、 选择需要的字段,假定我们需要如下5个字段5、 设置排序字段,我们需要按照PO号和发放号同时排序6、 调整字段描述7、 完成后自动生成布局如下(可双击打开)其中的F和E是分组起始、终止标志,我们总结如下:字段默认文字XMLP语句组开始F订单号PO_NUM发放号RELEASE供应商VENDOR_NAME地址ADDRESS_LINE1货币单位CURRENCY_CODE组结束E这里要掌握分组语法和值饮用语法。Tips:到这里就可以预览报表了。1.6.5. 调整布局向导生成了基本框架,尤其是需要写代码的“窗体域”,接下来我们根据实际需求调整下布局,同时最好也改下“默认文字”,尤其是分组的。最终结果如下(可双击打开):1.6.6. 验证布局菜单Template Builder/工具/验证,可以验证语法错误和不支持的特性!1.6.7. 完善报表和上边的步骤类似,首先运行向导添加订单行,这次布局风格选择“表”,分组选择PO_Line,结果如下,排序选择Line_Number:其中的F和E是分组起始、终止标志,注意这次它们所处的位置,这样可以做到根据数量自动扩张行。同样我们需要做下调整,比如:这个例子还缺少很多元素,仅供练习,源文件为CUXXMLPDEMO.rtf。1.6.8. 预览报表通过菜单Template Builder/预览,可以选择PDF、Excel、HTML、RTF等多种格式,我们选择Excel的输出结果如下:完整的输出文件请看CUXXMLPDEMO.xls。1.7. 最简单的例子.注册数据源和模版1.7.1. 注册数据源N: XML Publisher Administrator/Home/Data Definitions/Create Data Definition定义数据源,需要注意,数据源代码需要和并发请求的代码一致,也可以上传预览数据:1.7.2. 注册模版,并和数据源关联N: XML Publisher Administrator/Home/Templates/Create Template定义并上传模版,需要注意选对类型和上一步注册的数据源:可以为每种语言上传一个模版。不过这里有点缺陷,就是一个模版只能用于一个数据源。如果我编写了多个数据源,想用同一个模版来显示,就只能重复定义和上传模版了。1.8. 最简单的例子.运行报表1.8.1. 提交请求操作和提交普通的请求类似,唯一注意的是多了个Layout选项,默认会选中同语言的模版:在11.5.10 CU1或Patch之前,需要分两步完成,第一步运行请求,第二步运行XML Report Publisher来生成输出:1.8.2. 查看输出运行结果和我们在XMLP Desktop中预览的基本一样,下面是个PDF的结果: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 = CUXXMLPDEMOTips:C:Program FilesOracleXML Publisher DesktopsamplesRTF templates有非常好的例子可供参考。2.2. 布局格式化2.2.1. 建议做法充分利用Word的格式化功能:纸张自定义、颜色、字号、字体、标题样式、背景、水印、对齐、表格、分栏、模版日期、窗体域的数字/日期格式、文件图片、页眉页脚、自动图文集。虽然可以代码控制,但既然依托Word作为可视化设计工具,我们就尽量使用Word功能来设计报表吧!2.2.2. Word表格和做网页一样,表格在报表布局中的地位至关重要,要熟练掌握,尤其是:1、 标题行重复,可以实现新页重复标题。2、 嵌套表格、行列合并、边框、底纹,可以实现特殊的布局。3、 固定列宽、自动调整、禁止跨页断行,可以实现一些严格的布局控制。2.2.3. 行截断与禁止折行单据打印中对格式的要求比较高,如果某一行过长或者出现多次折行,就会破坏版面,尤其是套打等要求较高的场合,这里把各种方法作个小结。1、 Word功能,不理想固定列宽功能可以用,但固定行高不行,虽然设计时看到“固定”了,如果不加控制,运行后多出列宽的数据会自动折行。2、 单行+截断,即控制只有以行,多余截断,禁止折行在字段后,再加两个命令:no-wraphidden3、 多行+截断,难如固定显示3行,多余部分截断,目前通过模版无法实现,只有在数据源中先将数据截至刚好3行的字符数,然后利用自动折行功能。这里还要注意空格,如果遇到空格,后面的单词又显示不下,将会提前自动折行。2.2.4. 条件格式化在不同的条件下显示不同的颜色、不同的列数、不同的标题、不同的布局风格等等,这些都属于条件格式化,需要借助IF命令。1、 比如不同币种凭证打印格式不同任何布局任何布局2、 比如货币为CNY时才显示列,在目标列的单元格内写如下语句字段值和格式注:这还不是真正的动态列。3、 比如偶数行底色为灰色,在行的任何单元格内写如下语句gray4、 比如超过100单元格呈红色,在目标单元格内写如下语句100?red2.3. 字段计算技巧2.3.1. 建议做法1、 计算字段可以在SQL中先完成。2、 如果使用Oracle Reports做数据源,那么计算字段、统计字段也可以先完成。3、 在SQL中的数据,都不带格式,格式在模版中设置;需要在模版中完成计算的字段,必须不带格式,主要指数字不能带千位符号。2.3.2. 组内合计N: Template Builder/插入/字段向导可以完成基本的统计,目前支持分组内的:Sum、Count、Min、Max、Avarage。自动生成的代码示例:。2.3.3. 页内合计要实现本页合计数,需分两步:声明合计变量、显示合计变量(可带格式)。1、 对QUANTITY进行本页合计,声明变量QTYTOTAL,注意写在QUANTITY对应的组内,不然引用不到2、 可在任意地方显示合计数那么如何实现组内+页内合计呢?2.3.4. 结转合计把上页的合计数显示到下页,与“页内合计”类似,需分两步:声明合计变量、显示合计变量。用得少,可参考User Guide“Brought Forward/Carried Forward Totals”部分。2.3.5. 累计数Running Totals累计每行数字,实际上是这样完成的:先声明一个变量,初始化为0;累加;在需要的地方显示累计。1、 在分组标记前初始化,Set变量2、 计算累计值,通常写在欲累计的字段同一单元格内,比如下面的QUANTITY3、 任意地方显示累计值,Get变量2.4. 任何Page相关问题2.4.1. 新组分页分页是自然的,但如果想在某处强制分页如新组新页,那么可以使用Word的分页符(CTRL+ENTER快捷键),但会导致最后出现空白页;这样只能使用如下几种方式:1、 分组声明中加section,如。2、 前加。这个翻译后,实际上是:xsl:if test=position()page3、 前加page,此法下RTF最后无空白页,但PDF有空白页。4、 前加page此法下RTF、PDF最后都有空白页。2.4.2. 条件分页、固定行分页1、 任意条件分页,需要借助IF + 上面的break-after或者break-before,如:page2、 固定行分页,需要借助IF + 上面的break-after或者break-before,在行前,如下语句控制每页5行:page2.4.3. 页眉页脚1、 标准的页眉页脚,即单个页眉页脚,使用Word的功能即可。2、 扩展的页眉页脚,可使用把主体部分“框”起来,凡是在这两个标记之外的东西,都将被当作页眉页脚。2.4.4. 页码和页数1、 可以用Word的“自动图文集”,在任意地方插入页码,这个是“自然页码”。2、 如果在某种情况下想让页码从特定值开始,比如新的组页码重新编号,则需要借助命令,如在for-each后写:。这里的“1”,实际上也可以用数据文件中的XML元素来替换。2.4.5. 末页、奇偶页不同1、 Word可在页眉页脚部分实现首页不同或奇偶页不同,没法实现末页不同,即使借助代码控制,实际实现的也是末页布局不同,而非“页眉页脚”不同。报表本身仅有一页时,则用例子“AdvancedLast Page”,注意布局需要独立成页,即之前需要加分页符。2、 以偶数页结束,主要目的是显示偶数页页眉页脚如果仅显示空白页,则用3、 以奇数页结束,主要目的是显示奇数页页眉页脚如果仅显示空白页,则用2.5. 使用多媒体元素2.5.1. Word功能可以使用公式、绘图(如组织结构图、线条等)、艺术字、剪贴画。如果想通过代码在有限范围内控制这些对象,比如显示文字、缩放、旋转、移动、复制,可参考User Guide中的“Drawing, Shape and Clip Art Support”。2.5.2. 复选框插入复选框窗体域,因其选中代表True,不选代表False,需要我们输入条件表达式,如:。不过运行后表现为菱形。2.5.3. 下拉框插入下拉框窗体域,定义下拉框的元素,并同样在“自己键入”内输入需要引用的XML标记如。这里要注意元素的顺序,因为是用顺序号和运行时的值进行匹配的,也就是XML数据中,AREA_INDEX是自然数1、2。2.5.4. 超链接可以直接利用Word功能设置超链接,也可以在链接地址中,全部或部分引用XML数据文件中的标记,做到动态超链接:SUPPLIER_SITE_URL或者.:8000/OA_MEDIA/CURRENCY_CODE.gif2.5.5. 图片可以直接利用Word功能插入图片,也可以仅将该图片当作占位图,在图片的“设置图片格式”的网站标签页内的“可选文字”,输入真正的图片地址:1、 来自网站的图片:url:.localhost:8000/OA_MEDIA/forms_logo.gif。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向导插入图表,类型有:条形图-垂直、条形图-水平、饼图、线形图。向导生成的代码,可在图片的“设置图片格式”网站标签页内的“可选文字”里看到,我们可以做进一步修改。2.6. 其它常用语法2.6.1. 字段引用在前面的窗体域中,我们直接引用XML文件中的Tag标记,如。这种对XML元素的引用,是相对当前层次的组来说;如果上层组中,有个同名Tag,就要通过类似“相对路径”的方式引用,如。这里的“./”个数,不是布局中的相对层测个数,而是XML数据文件中的相对层次!转换为XSL-FO后,真正的语法分别是: 2.6.2. 函数引用1、 行号,准确讲是分组中记录顺序号:2、 总行号:更多函数请参考XSL手册。2.6.3. 分组、排序、重新分组1、 可以通过向导完成分组、排序:2、 数据重新分组,不再限制于原始XML数据文件的层次关系数据为“Sales Report”,重新按年、月分组,理解如下实例,需要一点“想象力”:GYEAR-GMONTH SalesCategorySales (in thousand USD)FINDUSTRY999 EEE2.6.4. 变量、参数1、 模版变量和普通的编程语言类似,模版中也可以使用变量,参考“累计数”部分。2、 模版参数,只能通过API调用传入,不能用于EBS并发请求声明参数:用$引用参数:$P_NAME?传入参数:参考API部分。2.6.5. 空值判断1、 有标记,值不空Somethine Here2、 有标记,值空Somethine Here3、 无标记Somethine Here2.6.6. 数字和日期格式可以使用Word窗体域中的格式化功能,也可以在窗体域中输入XMLP的格式化命令,这两者不能同时使用,建议使用前者;后者语法参考User Guide“Number and Date Formatting”。2.6.7. 理解上下文上下文代表XMLP语句的作用域,比如一个If语句,到底是针对一个单元格、一行、还是一列。在前面的介绍中,我们已经用过section、column、row,下面列出XMLP的所有上下文及其含义:上下文含义等价XSL-FOsection类似Word中节的概念,不同Section的页码将重新编号、页眉页脚也重新开始,通常用于for-eachsection,使新组分页column作用于表格中的整列,通常用来格式化列、动态显示列、交叉报表列cell仅作用于表格中的一个单元格,通常与column配合使用,实现交叉报表block作用于表格中的一个单元格或者RTF中的一个自然段fo:blocksinlineThe context will become the single statement inside an block. This context is used for variables.fo:inlineincontextThe statement is inserted immediately after the surrounding statement. This is thedefault for statements that need to follow the surrounding for-each asthe first element.inblockThe statement becomes a single statement inside an fo:block (RTF paragraph). This istypically not useful for control statements (such as if and for-each) but is usefulfor statements that generate text, such as call-template.inlinesThe statement will affect multiple complete inline sections. An inline section is text that uses the same formatting, such as a group of words rendered as bold.See If Statements in Boilerplate Text, page 2-58.beginThe statement will be placed at the beginning of the XSL stylesh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论