Report 基础

Report页面设置

    "主体区段" 设置页面大小;

  

 

数据模型、固定框、循环框

 

    1.0数据模型与循环框的层次

 

 

    1.1布局原则 一般布局方法是先画固定框,然后在其内套入:1.表头固定框,2.表数据源循环框

 

 

    最外层的固定框属性设置

   

 

    注:最外层固定框的“打印对象在”必须设置为“第一页”

 

    表头固定框属性设置:

 

  注:表头的“打印对象在”必须设置为“全部页”

 

    表数据源属性设置:

  

 

    1.2实现自动分页。

        当记录总数不只一页时,要实现自动分页,必须将最外层的固定框或循环框“打印对象在”设置为“第一页”

 

 

    实现记录汇总行动态伸缩

 

 

 

    查询视图无数据

  如果确认SQL语句确有数据,则有可能是OU的设置的问题。

  在报表的Before Parameter Form触发器加入初始化条件。

  function BeforePForm return boolean is

  begin

  APPS.FND_GLOBAL.apps_initialize(

  user_id =>APPS.FND_GLOBAL.

  user_id, resp_id =>APPS.FND_GLOBAL.resp_id,

  resp_appl_id =>APPS.FND_GLOBAL.resp_appl_id );

  return (TRUE);

  end;

 

 

    Report数据域

  Oracle Report引用数据模型的数据源,有二种方式。

     1.较常规的做法。直接使用工具栏上的“域”标签,然后设置相应数据源

     2.使用“文本”标签,然后用“&”进行引用。 (在PL/SQL中引用报表域文本的值,只需在PL/SQL直接引用域对应源字段名称即可(无须加组名))。

 

 

    Report汇总项

  Report的汇总项比较灵活,在不同的组其汇总规则是可以多变的。这也会隐藏一些不易发现的问题。 比如,下面这个数据源分为三个组。

  

 

  这个数据源大量使用了汇总项,但汇总项的默认汇总规则是基于整个数据源的,也是就说汇总项是基于整个REPORT的。如图所示:

 

  

  这也是会造成错误的原因,因为我们在使用汇总项,会自以认为REPROT会帮我们处理好这个汇总规则。可事实却相反。这个汇总项的“重设于”属性就是汇总规则。显然处于分组的汇总“重设于”应该基于相应的组。

  

    Report动态条件查询

  如果一条SQL的查询条件是动态的,SQL语句本身是无法做到这个功能。在JAVA中常见的做法进行这字符串拼接来达到这一功能。在Report也差不多,在触发器事件中进行字符串拼接。

  1、 增加一个报表用户参数p_batch_id_char 、p_batch_id_temp

  2、 在报表After Parameter Form触发器,加入字符串拼接条件

  function AfterPForm return boolean is

  begin

  if nvl(:p_batch_id_char,'A')='A' then –通过条件,来进行字符串拼接。

  :p_batch_id_temp := 'and 1=1' ;

  else

  :p_batch_id_temp := 'and to_char(m.fee_batch_id) in ('|| :p_batch_id_char ||')' ;

  end if;

  return (TRUE);

  end;

  3、 在数据模型的SQL语句中加入刚才拼接的字符串。

  Select * from table_name where &p_batch_id_temp

  注:是用“&”,不是PL/SQL中的“||”。

    矩阵报表

  矩阵报表,不要被Oracle的概念给忽悠了。其实就是crystalreport中是交叉报表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值