【问题标题】:Change Pagination with out refresh que Select更改分页而不刷新队列选择
【发布时间】:2021-07-28 17:20:02
【问题描述】:

我有一个问题,我需要在经典报表中使用分页,但它不能在数据库上进行新的选择,它必须只做一次来获取数据,之后我需要使用分页而不输出刷新数据。我试图禁用部分页面刷新,但如果我这样做了。它不再起作用了。当我单击它时,我尝试创建一个按钮来刷新报告,但它也不起作用enter image description here

【问题讨论】:

  • 我不清楚你在这里要求什么。浏览器和数据库之间必须有刷新/查询——浏览器不能存储整个结果集以方便分页。

标签: pagination oracle-apex refresh oracle-apex-5.1


【解决方案1】:

您只描述了问题,而不是整个场景,所以我在下面描述的内容可能不是最佳的。 如果您只想运行一次 select 语句,则可以将查询结果存储在集合中 (apex_collection API),然后在集合上创建经典报告。

这样,初始查询的结果将存储在会话状态中,并且可以通过从APEX_COLLECTIONS 中选择来访问。您可以对结果集进行分页,而无需重新执行查询。

EMP 表示例:

  1. 创建预呈现页面进程以使用源填充集合:
DECLARE
  l_query VARCHAR2(4000);
Begin
  IF APEX_COLLECTION.COLLECTION_EXISTS (p_collection_name => 'EMP') THEN
    APEX_COLLECTION.DELETE_COLLECTION (p_collection_name => 'EMP');
  END IF;
    l_query := q'!
select EMPNO,
       ENAME,
       JOB,
       MGR,
       HIREDATE,
       SAL,
       COMM,
       DEPTNO
  from EMP!';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
        p_collection_name => 'EMP', 
        p_query => l_query);
END;
  1. 再次创建经典报表 APEX_COLLECTIONS
SELECT C001 AS EMPNO,
       C002 AS ENAME,
       C003 AS JOB,
       C004 AS MGR,
       C005 AS HIREDATE,
       C006 AS SAL,
       C007 AS COMM,
       C008 AS DEPTNO
  FROM apex_collections 
 WHERE collection_name = 'EMP';

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 2014-06-24
    • 2016-09-03
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    相关资源
    最近更新 更多