技术开发 频道

ORACLE ERP开发基础之Oracle Report基础

  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中是交叉报表。

2
相关文章