壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11284|回复: 20

偶的PL/SQL报表程序格式

  [复制链接]
发表于 2005/4/2 12:55:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在ERP的报表开发中,可以用PL/SQL和Report开发,我在公司做过N个报表,90%的报表都是用PL/SQL开发的,PL/SQL功能强大,灵活处理。经过一段时间的总结我总结可用PL/SQL开发报表的一些经验,现在分享给大家。

1.一个报表一个PL/SQL包,包名的命名规范为 cux_ar01_report(其中cux为客户化开发,ar01为AR模块中的第一个报表,Report代表第一个报表)
2.在print函数中进行输出。
3.cursor的定义放在包体的最前面。
4.do函数为该函数的入口地址
5.屏蔽不在包体外调用的函数声明。
6.入口函数的特点为:前两个的定义必须为errbuf OUT VARCHAR2, retcode OUT NUMBER,否则报错。

procedure do(errbuf OUT VARCHAR2, retcode OUT NUMBER);
create or replace package cux_other01_report is
  -- Author  : Wanjun Hu
  -- Created : 2004-7-9 下午 01:44:57
  -- Purpose : other01 用户,职责表
  procedure do(errbuf OUT VARCHAR2, retcode OUT NUMBER);
end cux_other01_report;
create or replace package body cux_other01_report is
  cursor cursor_user_role is
    select c.user_name           as login_name,
           d.full_name           as employee_name,
           f.name                as department_name,
           a.user_id             as user_id,
           a.responsibility_id   as responsibility_id,
           b.RESPONSIBILITY_NAME as RESPONSIBILITY_NAME
      from FND_USER_RESP_GROUPS         a,
           FND_RESPONSIBILITY_VL        b,
           fnd_user                     c,
           hr_employees                 d,
           per_assignments_f            e,
           hr_all_organization_units_tl f
     where a.user_id = c.user_id
       and c.employee_id = d.employee_id
       and c.employee_id = e.PERSON_ID
       and e.ORGANIZATION_ID = f.organization_id
       and a.responsibility_id = b.RESPONSIBILITY_ID
       and sysdate > e.EFFECTIVE_START_DATE
       and sysdate < e.EFFECTIVE_END_DATE
     order by c.description, c.user_name, a.responsibility_id
   
    ;
  -- Author  : Wanjun Hu
  -- Created : 2004-8-24 下午 01:47:23
  -- Purpose : 在控制台输出和在报表中输出
  procedure print(content varchar2) is
  begin
    dbms_output.put_line(content);
    fnd_file.put_line(fnd_file.output, content);
  end print;
  procedure do(errbuf OUT VARCHAR2, retcode OUT NUMBER) is
    p_row_cursor_user_role cursor_user_role%rowtype;
  begin
  
    open cursor_user_role;
    loop
      --循环
      fetch cursor_user_role
        into p_row_cursor_user_role;
      EXIT WHEN cursor_user_role%NOTFOUND OR cursor_user_role%NOTFOUND IS NULL;
      print(p_row_cursor_user_role.login_name || ',' ||
            replace(p_row_cursor_user_role.employee_name, ',', '') || ',' ||
            p_row_cursor_user_role.department_name || ',' ||
            p_row_cursor_user_role.user_id || ',' ||
            p_row_cursor_user_role.responsibility_id || ',' ||
            p_row_cursor_user_role.RESPONSIBILITY_NAME);
   
    end loop;
  
    close cursor_user_role;
  
  end do;
end cux_other01_report;


[upload=pck]viewFile.asp?ID=4[/upload]

NnYivhWg.pck

2.2 KB, 下载次数: 125, 下载积分: 努力值 -5 点

偶的PL/SQL报表程序格式

发表于 2005/4/4 14:54:18 | 显示全部楼层
我也是用pl/sql开发报表,很少用report
发表于 2005/4/16 08:17:34 | 显示全部楼层
有些复杂的东东,还是得用report
发表于 2005/5/5 08:55:34 | 显示全部楼层
学习一下,难怪那些顾问都没有写report了,明白一些了。
发表于 2005/6/30 14:07:59 | 显示全部楼层
顶一下,想问一下,我用以上的方式可以输入HTML格式和文本格式的报表,在owa_util.mime_header('application/vnd.ms-excel',true),输入EXCEL报表时出错,不知道是什么原因?
发表于 2005/7/2 11:07:00 | 显示全部楼层
有谁知道解决办法吗?自己顶一下!
 楼主| 发表于 2005/7/2 11:29:07 | 显示全部楼层
以下是引用szleejun在2005-6-30 14:07:59的发言:

顶一下,想问一下,我用以上的方式可以输入HTML格式和文本格式的报表,在owa_util.mime_header('application/vnd.ms-excel',true),输入EXCEL报表时出错,不知道是什么原因?

输出以逗号分割的csv文件就能用excel打开阿。
发表于 2005/7/2 18:13:26 | 显示全部楼层
以下是引用纵横四海在2005-7-2 11:29:07的发言:
输出以逗号分割的csv文件就能用excel打开阿。
&gt;


没错这样可以,但是用户在使用的时候必须先保存成TXT文件,然后在用EXCEL打开。我想在报表输入的时候,真接用EXCEL打开。(如ERP中的导出功能,导出TSV文件时,可直接供用户保存,或打开那样的效果)


[此贴子已经被作者于2005-7-2 18:15:10编辑过]

发表于 2009/2/5 11:35:28 | 显示全部楼层
1# 纵横四海
熟悉一下
发表于 2009/11/5 08:27:47 | 显示全部楼层
我都是不用report开发的,都是用PL/SQL做成HTML格式输出!这样的报表灵活性大,report太死板了,很多报表没法做到!
发表于 2009/11/5 11:24:25 | 显示全部楼层
我也是用pl/sql开发报表,很少用report
================================
很显然你开发的报表电子档的居多套表的很少
发表于 2009/11/19 08:04:33 | 显示全部楼层
report学习中
发表于 2009/11/23 12:55:34 | 显示全部楼层
我想问一下,erp forms是用pkg建立的,现在想在forms上加一个打印按钮,点击之后将数据输出到report报表上,可pkg里的sql语句是包含变量的,不能用来建report吧?
那我怎么用forms里的数据建report,?
公司要求,可以帮忙吗?
发表于 2009/11/23 13:19:45 | 显示全部楼层
..................
发表于 2010/1/31 22:06:44 | 显示全部楼层
都报表啊.我这咋只做CSV呢.
发表于 2010/3/9 23:14:05 | 显示全部楼层
很好,很实用
发表于 2010/8/19 17:26:03 | 显示全部楼层
在学习 pl/sql来开发报表
刚刚开始。。。。。
发表于 2011/1/4 13:37:41 | 显示全部楼层
谢谢谢谢享
发表于 2011/11/27 03:52:19 | 显示全部楼层
来看看,复习复习!!!
发表于 2012/2/29 15:03:34 | 显示全部楼层
很好,很实用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 01:21 , Processed in 0.019832 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表