Oracle XML Publisher

来源:互联网 发布:淘淘商城项目源码 编辑:程序博客网 时间:2024/05/16 16:00

Oracle XML Publisher 

一、什么是XML

 XML (extensible Markup Language)

最简单的定义就是:「遵守特定规则的文字」,而这些规则跟HTML的规则很像,但更严谨一些,并加上些补强
1998/2由全球信息网协会 (World Wide Wed Consortium;W3C) 提出与制定的一种规格
主要语法:Tag成对出现的语法,例如 <Name> ….. </Name>
XML的批注与HTML语法相同,都是利用<!--批注内容-->来表示

XML(data+metadata), XSL(style sheet;presentation)

(一)、preparation(准备)
    1.Microsoft Word
    2.
Java Runtime Environment (JRE) version 1.4 or later
    3.
Oracle XML Publisher Template Builder for Word
    4.
Add “XML Publisher Administrator” to your responsibility and Re-login
    5.
Concurrent Program Output Post Processor MUST active
    6.
Profile - FND: NATIVE CLIENT ENCODING MUST set to UTF8

(二)、修改report中的属性,设置encoding=“UTF-8”

(三)、生成XML文档

1、打开Template Builder.

  导入XML Data

2、导入XML DATA

 选择有Report Builder所生产的XML

3.建立模板.

 使用手动的方式在Word下建立如下模板

4.预览

  预览: Template Builder->Preview->RTF

Tag-Group

 Template的建立过程中,Group的概念很重要。
Group:一笔资料就是为一个group.
Group可以嵌套循环。
 例如:一张PO的资料包括headerline两部分。可以把这两部分HeaderLine的资料看成是一个Group,同时也可以把Line的每一笔资料做为一个Group,嵌套在Header中。
<?for-each:<group name>?>做为一个Group的开头,放在资料的第一个Field的前面。

<?end for-each?>做为一个Group的结尾,放在资料的最后一个Field的后面。

Tag-<?<Field Name>?>

 <?<Field Name>?>为一Field的引用, <Field Name>栏位名必须与XML里面的一样,区分大小写。
 在报表的执行过程中, <?<Field Name>?>将由XML里面对应的Element所取代。
Tag-<?sort:<Item_Column>?>

 <?sort:<Item_Column>?>为排序Tag
 可以使用Group中的任何Element做为排序的准则。
 如果需要多Element的排序,可以使用如下的方式

    <?sort:<Item_Column1>?><?sort:<Item_Column2>?>

 降序排序:<?sort:<Item_Column>; 'descending'?>
 升序排序:<?sort:<Item_Column>; ‘ascending'?>
 例如:<?sortPO_NUM?> 将按PO单号排序 
 排序有分按Date/Text还是按Number排序。按Date/Text400将排在50前面。

  例如:<?sort:PO_NUM;'descending';data-type='text'?>

  <?sort:PO_NUM;'ascending';data-type='number'?>

Tag-Page Break
 可以使用<?split-by-page-break:?>进行分页
 Group的结束标志符<?end for-each?>前加上<?split-by-page-break:?>,当该group结束后将会自动分页,下一个group的资料将show在下一页里。
Tag-Section
 有时一张report中包含了很多资料,比如一张report中包含多张PO的资料,而页码、页面加总的要根据不同的PO进行重置。如果页眉和页脚也使用了body里面的一些元素,这时候也需要重置。
使用<?for-each@section:group name?>可以达到这样的效果
Insert an image in the template
 url也可以XML里面的一个元素(当这个元素为完整的图片URL)

  url:{IMAGE_LOCATION}( IMAGE_LOCATIONgroup中一元素)

 url中也可以是只是一个目录而已:

  url:{’${OA_MEDIA}/image name’}( OA_MEDIA->为一个目录)

  例如:url:{’${OA_MEDIA}/ORACLE_LOGO.gif’}

 如果是多个截断的,也可以用concat这个function进行串联:
 例如:
 url:{concat(SERVER,’/’,IMAGE_DIR,’/’,IMAGE_FILE
 url:{concat(’${OA_MEDIA}’,’/’,IMAGE_FILE

 利用Report Builder生成.rtf报表,不需生成其layout,然后点选File ->Generate to File ->XML 生成XML文档
(四)、XML资料格式        ------ test.xml
 XML文档中的encodingUTF-8,以减小出现乱码的可能性
详细的请去下载我上传的文件~~
原创粉丝点击