1. 定义报表执行的包或存储过程:

--创建包头

CREATE
OR
REPLACE
PACKAGE XXPLM_AARONTEST001 IS

PROCEDURE
MAIN(errbuf OUT
VARCHAR2,

reccode OUT
NUMBER,

         cnt IN
NUMBER);

    END;

 

注意:这里的两个参数errbuf OUT
VARCHAR2,reccode OUT
NUMBER

必须要带,即使不使用。

 

--创建包体

CREATE
OR
REPLACE
PACKAGE
BODY XXPLM_AARONTEST001 IS

PROCEDURE
MAIN(errbuf OUT
VARCHAR2,

reccode OUT
NUMBER,

             cnt IN
NUMBER)
IS

v_cnt NUMBER
:=
0;

    BEGIN

--log

fnd_file.put_line(fnd_file.log,
'**************************');

fnd_file.put_line(fnd_file.log,

'Program Start :'
||

to_char(SYSDATE,
'YYYY/MM/DD HH24:MI:SS'));

fnd_file.put_line(fnd_file.log,
'**************************');

--create xml file

fnd_file.put_line(fnd_file.output,
'<XXPLM_AARONTEST002>');

fnd_file.put_line(fnd_file.output,
'<LIST_DETAIL>');

--LINE OUTPUT

WHILE v_cnt < cnt LOOP

                     fnd_file.put_line(fnd_file.output,
'<LIST_DATA>');

                     fnd_file.put_line(fnd_file.output,

'<b>'
|| v_cnt ||
'</b>');

                     fnd_file.put_line(fnd_file.output,
'</LIST_DATA>');

v_cnt := v_cnt +
1;

END
LOOP;

         --create xml file

     fnd_file.put_line(fnd_file.output,
'</LIST_DETAIL>');

fnd_file.put_line(fnd_file.output,
'</XXPLM_AARONTEST002>');

 

END
MAIN;

END;

 

--进行测试

DECLARE

errbuf VARCHAR2(100);

     reccode NUMBER;

BEGIN

     XXPLM_AARONTEST002.MAIN(errbuf,reccode,2);

END;

测试无问题后,进行报表配置。

  1. 配置报表:

    定义可执行程序:

    报表定义:

    注意:这里面的检测必须要和前面可执行定义中简称一致,最好统一大写。

    定义参数:


    定义请求:

    --查看要将报表放入到哪个职责(注意:这里只需要查看责任即可,不需要创建):并记录"请求组"名称,为后续定义请求做准备


     

    在组中,添加我们定义的程序。XXPLM_AARONTEST001_报表测试


  2. 执行请求:

    切换职责至前面我们定义请求时,所查看的责任名:

    执行查看--请求:,点击提交新请求,名称选择定义的请求,系统跳出输入参数框,输入参数,点击确定,并提交。

    查看请求执行:

    查看输出:

    选择浏览器,在浏览器中看到输出结果:

  3. 创建模板RTF模板:

    将浏览器结果另存为,保存为本地XML文件。

    新建WORD文档,打开,选择加载项,可以看到"Oracle BI Publisher",如果没有此选项,需要安装Oracle BI Publisher,可自行下载安装。

    看到下图中,数据与插入两个功能,我们主要用这两个功能。1、加载数据:数据-》加载样本XML数据。2、插入-》表向导。

    数据-》加载样本XML数据,选择我们之前保存的XML文档。

    插入-》表向导,按照步骤,下一步,注意下图中步骤,需要将左侧的字段选入右侧,以作显示。点击完成。

    完成后,模板如下图所示,另存为->其他,选择RTF格式保存。

  4. 数据定义与模板创建:

    切换职责至:Oracle XML Publisher。选择主页-》数据定义,在浏览器中会打开数据定义页:

    创建数据定义页:如下图,注意代码必须与之前程序-》定义中的简称一致,并且区分大小写。如果测出填写错误,

    定义的程序与定义的RTF模板将无法连接,数据无法输出EXCEL,只会有XML.

    点击左侧模板页:创建模板,如下图,注意代码与之前程序-》定义中的简称一致,并且区分大小写。数据定义选择上图

    定义的数据定义,类型选择RTF,默认语言可以为英语或汉语,地区可选可不选。默认输出类型:一定选择EXCEL.

  5. 重新执行请求:

    参照3,执行请求项。在输出时,与之前不同,定义完模板后,如果挂接成功,这里输出会默认输出.XLS 格式,而不像之前,可以选择XML.

    看下图:

    保存输出结果:

    以上为自定义报表步骤与注意事项,后续将继续发表一些二次开发文章。

自定义报表开发(HTML/XML)的更多相关文章

  1. 总结切面编程AOP的注解式开发和XML式开发

    有段日子没有总结东西了,因为最近确实有点忙,一直在忙于hadoop集群的搭建,磕磕碰碰现在勉强算是能呼吸了,因为这都是在自己的PC上,资源确实有点紧张(搭建过程后期奉上),今天难得大家都有空(哈哈哈~ ...

  2. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  3. [Spring框架]Spring开发实例: XML+注解.

    前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...

  4. flex 4.6 移动开发 app.xml配置说明

    <?xml version="1.0" encoding="utf-8" standalone="no"?> <appli ...

  5. Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...

    Android开发中大量使用XML代码作为界面的布局,使用styles能大幅精简XML代码. 比如下面这个界面从AlertDialog至PlacePickerWindow有19个样式相同的跳转Item ...

  6. (5)微信二次开发 之 XML格式数据解析

    1.首先理解一下html html的全名是:HyperText Transfer markup language 超级文本标记语言,html本质上是一门标记(符合)语言,在html里,这些标记是事先定 ...

  7. IOC注解开发与XML整合

    区别: xml:可以适用于任何场景,结构清晰,方便维护 注解:开发方便,快速.有些地方适用不了,这个类不是自己提供的(比如源码提供的类) xml和注解整合开发,各取所长 xml使用于对bean进行管理 ...

  8. 第二周作业-web后台应用开发与xml

    web后台: 网站前台和网站后台通常是相对于动态网站而言,即网站建设是基于数据库开发 的网站.基于带数据库开发的网站,一般分网站前台和网站后台.网站前台是面向网站访问用户的,通俗的说也就是给访问网站的 ...

  9. Android开发--AndroidManifest.xml文件解析

    参考文章:http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html 一.关于AndroidManifest.xml AndroidMa ...

随机推荐

  1. IOS UI 第二篇:基本UI

    1.UI书写:   一个小练习图片如下:     代码如下:     @implementation AppDelegate{    UIControl *control;    UILabel *l ...

  2. CSS3(transform/transition/animation) 基础 总结

    1.CSS3新增的样式(常用) //颜色透明表示rgba(0,0,0,.5) //圆角(定义角半径)border-radius: 5px 10px 15px 20px; //文字/盒子阴影text-s ...

  3. Memory Dump 分析器

    Visual Studio 2013 新功能 Memory Dump 分析器   TechEd2013 发现新功能 12月5日和6日,在国家会议中心参加了微软的 TechEd2013 技术大会,了解了 ...

  4. 【C++ 中文手册】即将完成

    [C++ 中文手册]即将完成 内容包含C++11,历时一年,日夜赶工,即将完成! 该参考手册主要由以下四部份内容组成: C++ 语言 C++ 继承了 C 语言 的大部分语法,并在其基础上修改或增加部分 ...

  5. FastDFS php API

    <?php if (!class_exists('FastDFS', false)) { define('FDFS_PROTO_PKG_LEN_SIZE', 8); define('FDFS_P ...

  6. 重拾C

    重拾C,一天一点点_10 来博客园今天刚好两年了,两年前开始学编程. 忙碌近两个月,项目昨天上线了,真心不容易,也不敢懈怠,接下来的问题会更多.这两天调试服务器,遇到不少麻烦. 刚出去溜达了一下,晚上 ...

  7. PureMVC(JS版)源码解析

    PureMVC(JS版)源码解析:总结   PureMVC源码中设计到的11个类已经全部解析完了,回首想想,花了一周的时间做的这点事情还是挺值得的,自己的文字组织表达能力和对pureMVC的理解也在写 ...

  8. ios学习笔记之UIControl解读

    UIControl,相信大家对其并不陌生吧,比如平常最常用的UIButton就是继承自UIControl的.按照惯例,还是先来看看为什么有UIControl这个类?什么时候用到它? 查下文档就可以看到 ...

  9. linux shell基础语法

    1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码 ...

  10. 使用ServletContextListener和HttpSessionListener两种监听器实现记录当前网站在线人数

    web.xml中配置: <listener>    <listener-class>com.mcm.listener.ServletContextListenerImpl< ...