Oracle Apex 18.1交互式网格(IG)是否以编程方式设置过滤器?自定义IG搜索

时间:2018-08-05 18:07:12

标签: javascript jquery plsql oracle-apex

是否可以通过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中的搜索操作或在调用搜索操作以添加过滤器之前设置正确的参数。

有人知道该怎么做吗?

1 个答案:

答案 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的文本输入字段中键入的搜索词。