IG清除过滤器并设置新的过滤器

时间:2019-04-11 12:21:22

标签: javascript oracle-apex

我正在APEX 18.2中设置一个页面,其中包含一个IG。我可以从菜单正常进入此页面,或者如果按下按钮,则可以将其设置为从其他站点进入此页面。如果按下该按钮,则第一个站点上的隐藏项目也将设置为一个值,我想清除所有当前过滤器,并在两列之一中为该值设置一个新过滤器。

我已经检查了所有可以在网上找到的内容,但是官方的JSDoc并没有提供所需的方法,其他资源也未包含我所需要的全部内容。

Oracle Apex 18.1 Interactive Grid (IG) Setting filters programmatically? Customizing IG Search 到目前为止,这是我拥有的用于设置过滤器的最佳资源,但是它仅对一个列进行过滤,这是他描述的第一种方法对我不起作用,但出现了错误。

我还找到了一些清除过滤器的代码,但是它实际上是重置报告,如果它确实起作用,它将对我有用,但是触发错误的时间只有一半。实际上得到了ORA-2291,我不知道它是关于什么的。我有时有时也找不到数据

我用于设置过滤器的代码与第一个链接基本相同:

apex.region("MY_IG").widget().interactiveGrid("addFilter", {
  type: 'column',
  columnType: 'column',
  columnName: 'COLUMN_NAME',
  operator: 'C',
  value: $v2('PAGE_ITEM'),
  isCaseSensitive: false
});

但这会将过滤器应用于单个列。我想将其设置为两列,或者如果不可能的话将其设置为任何地方。

我用于清除过滤器/重置报告的代码:

 apex.region("MY_IG").call("getActions").invoke('reset-report');

我希望触发这些代码块的动态操作清除所有过滤器,并设置一个新的过滤器,以评估PAGE_ITEM中的值是否包含在两列中。

1 个答案:

答案 0 :(得分:0)

Didnt实际上找到了我想要做的事情,但是做了一些不同的事情来获得相同的结果。

最终在我的SQL查询中将所有这些替换为WHERE子句。