Oracle Apex 18.1交互式网格(IG)以编程方式设置filter? 自定义IG搜索

有没有办法通过Javascript或PL / SQL API在Oracle Apex中为IG设置filter?

做我的研究我偶然发现APEX IG Cookbook for 5.1.4或一些Blogposts 如何破解APEX交互式网格系列以使用Javascript自定义IG。 因此,设置类似于PL / SQL APEX_IR.ADD_FILTER Proceedure的filter,您可以在其中设置交互式报告(IR)的filter,列名称,运算符和filter值。

我想出了内部表的名称,如果设置了filter,则存储filter(IRfilter为APEX_APPLICATION_PAGE_IR_COND,IG为APEX_APPL_PAGE_IG_RPT_FILTERS),但实际上并不知道这是否有用。

使用apex.region("StaticRegionID").widget().toolbar("findElement","search_field").val("SearchTextValue"); apex.region("StaticRegionID").widget().interactiveGrid("getActions").invoke("search"); apex.region("StaticRegionID").widget().toolbar("findElement","search_field").val("SearchTextValue"); apex.region("StaticRegionID").widget().interactiveGrid("getActions").invoke("search"); 可以设置搜索值并执行搜索操作,但无法设置运营商/filter类型(EQ,NEQ,LT,LTE,GT,GTE,LIKE,NLIKE,N,NN,C,NC, IN,NIN)

到目前为止,我还没有找到一种在libaries\apex\widget.interactiveGrid.js自定义搜索操作的好方法,或者在调用搜索操作之前设置正确的参数以添加filter。

有谁知道如何做到这一点?

我刚刚解决了我的问题。 在libaries\apex\widget.interactiveGrid.js有一个名为addFilter的方法,可以使用filter对象和选项对象作为参数简单地调用它。 当与其他Inputfields的值结合使用时,这非常有用。

例:

 apex.region("YourStaticRegionID").widget().interactiveGrid("addFilter", { type: 'column', columnType: 'column', columnName: 'YourColumnName', operator: 'EQ', value: $v2('P2_NEW'), isCaseSensitive: false });