oracle 如何清除/重置行过滤器Apex

bpzcxfmw  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(101)

我有一个交互式报表,我想以编程方式重置行筛选器。
Filter
我想知道这是否可能,无论是动态的还是通过其他手段。
apex.region(“IR”).widget().interactiveGrid(“getActions”).invoke(“reset-report”);

apex.region(“IR”).call(“getActions”).invoke(“reset-report”);
但这两个都引用了一个报告,这是一个行过滤器?
我能够做到这一点来自另一个链接的网页与以下内容。link reset
但我认为这将是更好地通过一个页面加载,以涵盖所有其他网页,没有链接?
在头显之前尝试了这个,没有运气:
Pre-Rendering Process
Process settings
发现了一个新问题,该问题与单击分页上的下一个箭头按钮有关,这确实重置了过滤器。如果我们保留当前的page_id,则只需要重置过滤器。例如,我们在page_id 4上,我们点击下一步按钮来查看IR中的所有数据,只有当我们离开page_id 4时,我们才需要重置过滤器。

h43kikqp

h43kikqp1#

交互式报表(IR)区域和交互式网格(IG)区域是具有非常不同的体系结构的两个组件。IR是一个很多“老”(在APEX 3.2中引入),是更多的“基于服务器”,并没有一个客户端模型(和相应的JavaScript编程选项),IG有。您在问题中显示的IG JavaScript调用永远不会对IR起作用,因为它没有任何客户端架构来监听这些操作。
最初,重置页面过滤器的唯一方法是通过URL进行重置。但是,在APEX 5中添加了API APEX_IR,因此可以在页面进程中的页面加载时清除或重置报告过滤器:例如:

DECLARE
  l_region_id apex_application_page_regions.region_id%TYPE;
BEGIN
  SELECT region_id 
    INTO l_region_id
    FROM apex_application_page_regions 
   WHERE application_id = :APP_ID and page_id = :APP_PAGE_ID and static_id = 'emp';
    APEX_IR.CLEAR_REPORT(
        p_page_id   => :APP_PAGE_ID,
        p_region_id => l_region_id,
        p_report_id => NULL);
 END;

上面的代码需要进入页面进程,假设IR的静态ID为emp

相关问题