You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle Apex中按日期列实现报表分页切换?

Oracle Apex实现按日期切换展示每日任务数据的方案

原表结构与数据

+--------------+--------------+---------------+
| TaskName     | Validated_By | Creation_Date |
+--------------+--------------+---------------+
| Task A       | Jim          | 12/1/2022     |
| Task B       | John         | 12/1/2022     |
| Task C       | Jill         | 12/1/2022     |
| Task D       | John         | 11/30/2022    |
| Task E       | John         | 11/30/2022    |
| Task F       | Bill         | 11/30/2022    |
| Task G       | Goerge       | 11/29/2022    |
| Task H       | George       | 11/29/2022    |
+--------------+--------------+---------------+

需求说明

创建Classic/Interactive Report,默认展示最新日期的任务数据,通过点击日期旁的</>箭头,切换展示前一天/后一天的对应数据。

实现方案

Oracle Apex没有完全匹配该需求的一键式内置功能,但可通过组合现有组件快速实现,以下是两种可行方案:

方案一:Classic Report + 页面项 + 动态操作

  1. 创建页面项

    • 添加页面项P1_CURRENT_DATE,类型设为Date Picker,默认值设为(SELECT MAX(Creation_Date) FROM your_table)(替换your_table为实际表名),可设置为隐藏项。
  2. 编写Classic Report查询
    报表SQL如下:

    SELECT TaskName, Validated_By
    FROM your_table
    WHERE TRUNC(Creation_Date) = TRUNC(:P1_CURRENT_DATE)
    
  3. 添加日期切换控件
    在报表上方新建HTML区域,内容为:

    <button type="button" onclick="apex.submit('PREV_DATE')">&lt;</button>
    <span style="margin: 0 10px;">#P1_CURRENT_DATE#</span>
    <button type="button" onclick="apex.submit('NEXT_DATE')">&gt;</button>
    
  4. 配置提交分支

    • 创建分支,当提交请求为PREV_DATE时,执行PL/SQL赋值:
      :P1_CURRENT_DATE := :P1_CURRENT_DATE - 1;
      
      分支类型选择Redirect to Page in this Application,目标页面为当前页,勾选Clear Cache并指定报表区域。
    • 同理创建NEXT_DATE分支,执行赋值:
      :P1_CURRENT_DATE := :P1_CURRENT_DATE + 1;
      
  5. 可选:添加数据存在验证
    为避免切换到无数据的日期,可添加验证规则,检查SELECT COUNT(*) FROM your_table WHERE TRUNC(Creation_Date) = TRUNC(:P1_CURRENT_DATE)是否大于0,若不满足则提示并回滚日期值。

方案二:Interactive Report实现

  1. 创建Interactive Report
    初始SQL查询包含TaskName、Validated_By、Creation_Date,默认筛选最新日期的数据(可通过添加初始筛选条件实现)。

  2. 添加日期控制项

    • 添加页面项P1_SELECTED_DATE,类型为Date Picker,默认值设为最新日期。
    • 在报表工具栏或上方添加</>按钮,绑定动态操作:
      • 点击<按钮:执行PL/SQL赋值:P1_SELECTED_DATE := :P1_SELECTED_DATE - 1;,然后刷新报表。
      • 点击>按钮:执行PL/SQL赋值:P1_SELECTED_DATE := :P1_SELECTED_DATE + 1;,然后刷新报表。
  3. 调整报表显示
    隐藏Creation_Date列,通过HTML区域展示当前选中日期与切换按钮,调整样式匹配需求。


内容的提问来源于stack exchange,提问作者User104163

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:12:26