BIP报表条件筛选器搜索功能查询不到结果

使用Oracle BI Publisher报表系统开发报表的时候,将一个查询条件筛选器指定为“菜单”,就是那种可以使用搜索功能的条件类型,如下图1所示:

“菜单”类型的筛选条件

图1:“菜单”类型的筛选条件

如上图1,进入“搜索”功能,如下图2所示:

搜索功能

图2:搜索功能

如上图2,根据图1中的部分结果可以看出,包含300的结果是肯定存在的,但是图2中点击搜索却根本找不到结果,并且输入任何条件都没有返回结果。

那么,对于上面这个问题,是由于什么原因呢,可以查看这个条件的数据来源取值SQL是怎么写的,由于版权问题,上面的图片是随便截的,所以跟下面的代码并不匹配,下面的代码比较有参考意义,如果代码按照下面这样写就会出现上面的问题,代码如下:

SELECT s.supplier || '-' || s.sup_name,
       s.supplier
  FROM sups s
 WHERE s.supplier_parent IS NOT NULL
 ORDER BY s.supplier

看上面的代码,会发现返回结果会是两个字段,第一个字段是由supplier和sup_name拼接而成的,第二个字段是supplier,其中第一个字段是会显示给用户看到的,第二个字段是真正传递给后台的值,所以通过第一个字段是说明,第二个字段是编码。

那么,想要解决上面的问题,只要给上面这段代码的每个字段取个别名就好了,第二个字段是一个单字段,所以会默认别名为supplier;而第一个字段是拼接而成,无法默认一个别名,所以需要人工指定一个,否则就会出现上面的问题,修改后的代码如下:

SELECT s.supplier || '-' || s.sup_name sup_name,
       s.supplier supplier
  FROM sups s
 WHERE s.supplier_parent IS NOT NULL
 ORDER BY s.supplier

当然,如果不用拼接的话,直接用下面的代码也是OK的:

SELECT s.sup_name,
       s.supplier
  FROM sups s
 WHERE s.supplier_parent IS NOT NULL
 ORDER BY s.supplier

上面的这段代码人工定义不定义别名无所谓,因为它会默认是sup_name和supplier,就这样,改了以后,问题就解决了!

本文标题:BIP报表条件筛选器搜索功能查询不到结果

本文链接:http://yedward.net/?id=168

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章