|
    
- UID
- 8
- 帖子
- 4323
- 精华
- 225
- 积分
- 18796
- 人气值
- 15267 点
- 努力值
- 29314 点
- 推广注册人数
- 183 个人
- 阅读权限
- 200
- 性别
- 男
- 在线时间
- 2847 小时
- 注册时间
- 2005-3-30
- 最后登录
- 2008-12-5
   ![双子座[05月21-06月21] 双子座[05月21-06月21]](images/common/medal/820054291413.jpg)   
|
楼主
发表于 2005-11-11 08:51
| 只看该作者
本文为一位huajhua朋友提供下面是早些时候写的,内容都是我“师傅”教的;更高级的报表相关技术问题最近正在整理,不日将和大家分享。向系统注册报表的时候,参数是无法根据顺序自动对应,需要我 们指定Token,即报表的参数名称;而对于Procudure是可以根据 位置自动对应的,即使定义的参数名称和Procedure参数名称不 一样。这个可以这样理解,Procudure的参数是明确的,参数有 多少个、顺序如何是由Procedure明确定义的;而对于报表来说 ,参数非常多,如果传了某个参数,就用该参数,否则Report用 本身的默认值,没有顺序和个数的强制要求;另外procedure有 且只有两个out put(return_code说明:0/success,1/warning ,2/error)参数,其他的in参数可以自动根据顺序对应定义executable,相当于开发人员告诉系统管理员有这个功能可 以用,这个和定义form是一样的;注意report名字不用rtf后缀 ,procedure的格式为“包名.procedure”;上传到服务器的报表 后缀要小写,不然会报找不到文件输出到log用fnd_file.put_line(fnd_file.log,msg),输出到 out put用fnd_file.put_line(fnd_file.output,msg)定义Program的时候,日期值集要用fnd_standard_date;对应的 ,在Procedure和Report里面用Varchar2,然后自己转换,示例 代码如下l_end_date := trunc(to_date( p_end_date,'YYYY/MM/DD HH24:MI:SS')) + 1 - 1/(24 * 3600 );对于数据库中的日期字段,尤其是Transaction Date,不要用 trunc,这样会导致无法使用该日期的索引,一般是对参数进行 必要的处理,如上述的加1天减1秒定义Table类型的值集的时候,有三个字段其中value和Id都为值 ,Id的优先级高于Value,但一般我们只定义Value关联子集定义的语法为where field_name = $FLEX$. value_set_name;当然要求两个子集都在参数里面注意父Field不要紧贴Child Group的循环框,否则该父Field会 显示在Child Group的循环框内部。我在字符模式下做Summary域 ,它紧靠Child Group的最下面边框,最后该Summary域就显示在 Child Group里面,覆盖Child Group的内容。如果出现错位情况 ,可以加一个框套住Father域1 inch = 72 points;设计字符模式的报表,假如设置了width 为x,Character Mode Report Width为y,那么,x * 72 / y最 好为整数,这只是我个人的感觉。比如A4横向,x为11,y为132 ;Height的设置也需要符合这个要求。为方便字符模式报表元素真正对齐到网格snap to grid,可以在 rulers中把grid spacing、number of snap points per grid spacing都设为1,这个很重要,可以省去我们无谓的对齐工作量 。不管怎么设,必须在开始设计layout之前设置;如果在设计 layout之后更改,会造成已经做好的Field没有对齐到网格。Oracle默认没有进行Application用户初始化,所以没有环境变量,需要建一个用户参数 P_CONC_REQUEST_ID/Number/20,在Before Report触发器里加 SRW.USER_EXIT('FND SRWINIT');,在After Report触发器里加 SRW.USER_EXIT('FND SRWEXIT');帐户范围值集参考GL_SRS_LEDGER_FLEXFIELD
__________________技术为本.业务为纲文化为本.管理为纲huajhua@hotmail.com,但我不回邮件
由 huajhua 于 05-10-27 23:38 最后编辑 |
|