我正在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中的值是否包含在两列中。
答案 0 :(得分:0)
Didnt实际上找到了我想要做的事情,但是做了一些不同的事情来获得相同的结果。
最终在我的SQL查询中将所有这些替换为WHERE子句。