是否可以通过Javascript或PL / SQL API在Oracle Apex中为IG设置过滤器?
在做研究时,我偶然发现了APEX IG Cookbook for 5.1.4 或一些Blogpost How to hack APEX interactive grid series,用于使用Javascript自定义IG。因此,设置类似于PL/SQL APEX_IR.ADD_FILTER Proceedure的过滤器,您可以在其中为交互式报表(IR)设置过滤器的列名,运算符和过滤器值 应该是可能的。
我想出了内部表的名称,如果设置了过滤器,则将它们存储在内部表中(IR过滤器为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");
可以设置Searchvalue并执行搜索操作,但不能设置运算符/过滤器类型(EQ,NEQ,LT,LTE,GT,GTE,LIKE,NLIKE,N,NN,C,NC, IN,NIN)
到目前为止,我还没有找到一种好的方法来自定义libaries\apex\widget.interactiveGrid.js
中的搜索操作或在调用搜索操作以添加过滤器之前设置正确的参数。
有人知道该怎么做吗?
答案 0 :(得分:5)
我刚刚解决了我的问题。 addFilter
中有一个称为libaries\apex\widget.interactiveGrid.js
的方法,可以使用过滤器对象和选项对象作为参数来简单地调用它。
当与其他输入字段的值结合使用时,这真的很有用。
示例:
apex.region("YourStaticRegionID").widget().interactiveGrid("addFilter", {
type: 'column',
columnType: 'column',
columnName: 'YourColumnName',
operator: 'EQ',
value: $v2('P2_NEW'),
isCaseSensitive: false
});
上面的示例中使用$v2 API来获取用户在名为P2_NEW的文本输入字段中键入的搜索词。