ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 6iReport开发整理总结(转载)

6iReport开发整理总结(转载)

原创 Linux操作系统 作者:jarli 时间:2019-07-17 15:09:02 0 删除 编辑
6iReport开发整理总结

1.向系统注册报表的时候,参数是无法根据顺序自动对应,需要我们指定Token,即报表的参数名称;
而对于Procudure是可以根据位置自动对应的,即使定义的参数名称和Procedure参数名称不一样。
这个可以这样理解,Procudure的参数是明确的,参数有多少个、顺序如何是由Procedure明确定义的;
而对于报表来说 ,参数非常多,如果传了某个参数,就用该参数,否则Report用本身的默认值,没有顺序和个数的强制要求;
另外procedure有且只有两个out put(return_code说明:0/success,1/warning ,2/error)参数,并且这两个参数一定在前面,其他的in参数可以自动根据顺序对应,若in参数为varchar型定义时候不能限制其长度。

2.定义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)

3.定义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秒

4.定义Table类型的值集的时候,有三个字段其中value和Id都为值,Id的优先级高于Value,但一般我们只定义Value 关联子集定义的语法为where field_name = $FLEX$. value_set_name;

5.当然要求两个子集都在参数里面注意父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没有对齐到网格。

报表里面好像没有环境变量,需要建一个用户参数 P_CONC_REQUEST_ID/Number/20,
在Before Report触发器里加 SRW.USER_EXIT('FND SRWINIT');
在After Report触发器里加 SRW.USER_EXIT('FND SRWEXIT');

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/41594/viewspace-50550/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2003-03-27

  • 博文量
    227
  • 访问量
    162906