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

Oracle Apex 20.2生日日历按姓名搜索实现咨询

在Oracle Apex 20.2中实现生日日历的姓名搜索功能

核心实现逻辑

通过添加搜索过滤条件,结合你已有的选择列表和流程,将匹配姓名的生日数据展示在指定列表中,具体步骤如下:

一、添加姓名搜索组件

  • 文本搜索框:在生日日历所在页面新增一个文本字段(Item类型选Text Field),命名为P_[页面号]_NAME_SEARCH,提示文字设为“按姓名搜索”。
  • 关联选择列表:如果要和已创建的选择列表结合,修改选择列表的LOV查询,加入姓名模糊匹配逻辑:
    SELECT name AS display_value, id AS return_value
    FROM 你的生日数据表
    WHERE name LIKE '%' || :P_[页面号]_NAME_SEARCH || '%'
    ORDER BY name
    
    接着设置搜索文本字段的「提交时刷新」属性为该选择列表,实现输入姓名后自动过滤选择列表选项。

二、配置结果展示列表

以交互式列表为例(也可用经典报表):

  1. 在页面添加交互式列表,数据源选择你的生日数据表,SQL查询加入搜索过滤条件:
    SELECT id, name, birthday, 其他需要展示的字段
    FROM 你的生日数据表
    WHERE 1=1
      AND (:P_[页面号]_NAME_SEARCH IS NULL OR name LIKE '%' || :P_[页面号]_NAME_SEARCH || '%')
      -- 加入你已有选择列表的过滤条件,比如:AND department_id = :P_[页面号]_你的选择列表项
    ORDER BY birthday
    
  2. 配置列表布局,将姓名、生日等字段设置为显示项;设置列表的「刷新条件」为搜索字段或选择列表值变化时自动刷新。

三、调整现有流程

针对你已编写的流程,需同步更新逻辑:

  • 修改流程的触发条件,加入搜索字段的判断,比如::P_[页面号]_NAME_SEARCH IS NOT NULL OR :P_[页面号]_你的选择列表项 IS NOT NULL。
  • 流程中涉及数据查询的SQL语句,都要加入姓名模糊匹配条件,确保只处理搜索匹配的记录,例如:
    SELECT * FROM 你的生日数据表
    WHERE name LIKE '%' || :P_[页面号]_NAME_SEARCH || '%'
      AND birthday = TRUNC(SYSDATE) + :P_[页面号]_提前天数参数
    

四、优化用户体验

  • 给搜索文本字段开启「回车提交」,用户输入姓名后按回车即可触发搜索。
  • 设置列表的「无数据时显示」文本,比如“未找到匹配姓名的生日记录”,提升友好度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:45:05