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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4275|回复: 9

请教一个比较急的问题-----在线等

[复制链接]
发表于 2007/5/8 15:12:30 | 显示全部楼层 |阅读模式

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

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

x
现在我有5个参数,每5个参数可以确定一个报表
比如现在我已做了10个报表传到服务器上,应该要写个PKG通过这5个参数来调用每个对应报表
请问如何实现,这个PKG怎么写,非常谢谢!
MSN:keconghua@hotmail.com
发表于 2007/5/8 15:24:24 | 显示全部楼层
fnd_request.submit_request可以用于报表调用。
第一个参数为:模块简称,比如AR
第二个参数为:你要调用的报表的简称。
第三个,四个参数为null,
第五个参数为false              


在用fnd_request.submit_request的时候,第五个参数用false,不要被参数名称误导;这个函数有105个参数,前面五个定义请求本身,后面100个是传递给请求的具体参数,都是Char类型,我们需要转换,默认值是chr(0),代表这个参数不用传递给调用的请求;在Package里面调用只需要传递需要的参数个数,因为它有默认值指示结束;在form里面则不行,要写满105个,而且我们参数结束之后要用一个chr(0)来表示结束
 楼主| 发表于 2007/5/8 15:37:17 | 显示全部楼层
具体是这样的:
我现在有六个参数,一个是PI单号,另外还有五个参数是用来确定跑哪个报表的(比如我向服务器上传了10个报表)
在ERP上当选中一个PI单号时,同时会带出另五个参数,点运行后,会根据这五个参数来确定调用对应的哪个报表,PI单号是报表参数,需传入的,而另五个参数是用来确定跑哪支报表的,请问版主用上面的方法怎么一步一步的去实现我这个功能呢
发表于 2007/5/8 16:30:04 | 显示全部楼层
写程序啊
eg.
  if parameter=value1 then
     fnd_request.submit_request(Report1);
  elsif parameter=value2 then
    fnd_request.submit_request(Report2);
  elsif...

--submit_request的具体参数见楼上说明
 楼主| 发表于 2007/5/10 15:50:43 | 显示全部楼层

我的PKG是这样写的,可是在ERP上执行时报表错,请指教!

create or replace package body BKOMRB003_PKG is
PROCEDURE BKOMRB003_SELECT
(
   errbuf            OUT VARCHAR2,
   retcode           OUT VARCHAR2,
   p_Return_Name_Id  OUT Number,
   p_No              IN VARCHAR2,
   p_Payment         IN VARCHAR2
   --p_Dingjin         IN VARCHAR2,
   --p_Customer        IN VARCHAR2,
   --p_Zhikou          IN VARCHAR2,
   --p_Pitype          IN VARCHAR2,
   --p_Newcompany      IN VARCHAR2
   
)is
begin
   if p_Payment='LC' then
   p_Return_Name_Id := fnd_request.SUBMIT_REQUEST('ONT',--应用模块的名称缩写,可以在System Administrator -> Application -> Register里面查到
                                                  'BKOMRB003-01',--应用程序的名称缩写 Application -> Concurrent -> Program
                                                   NULL,
                                                   NULL,
                                                   FALSE,--默认为 FALSE
                                                   p_No                                                   
                                                   );
   elsif p_Payment='TT' then
   p_Return_Name_Id := fnd_request.SUBMIT_REQUEST('ONT',--应用模块的名称缩写,可以在System Administrator -> Application -> Register里面查到
                                                  'BKOMRB003-02',--应用程序的名称缩写 Application -> Concurrent -> Program
                                                   NULL,
                                                   NULL,
                                                   FALSE,--默认为 FALSE
                                                   p_No
                                                   );
    end if;

  end ;
end BKOMRB003_PKG;
=====================================
ERROR:
**Starts**10-05-2007 15:45:54
FDPSTP 中出现 ORACLE 错误 6550

原因:由于 ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'BKOMRB003_SELECT' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
, FDPSTP 失败。
发表于 2007/5/10 16:48:14 | 显示全部楼层
p_Return_Name_Id  OUT Number  ??
请求里应该只有前两个需要用作输出参数,你的这个参数是什么意思?
 楼主| 发表于 2007/5/10 16:51:11 | 显示全部楼层
这个参数不是返回0,1之类的吗,0表示执行不成功,我也不知道这个是做什么用,我是看别人这样写,请问如何写呢
发表于 2007/5/10 16:56:04 | 显示全部楼层
你把存储过程中的这个参数注释掉试试看
发表于 2007/5/11 13:05:13 | 显示全部楼层
调用 'BKOMRB003_SELECT' 时参数个数或类型错误

已给出问题所在
按楼上说的试试
发表于 2007/5/12 09:22:19 | 显示全部楼层
這是個好功能,可是我怎麼用系統里面的這些FND_呢?有沒有一些文擋來介紹這些之類的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025/11/30 15:45 , Processed in 0.014090 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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