Oracle APEX19动态动作:STATE=2时如何将Date Picker设为sysdate
Oracle APEX 19.2 触发Change事件给日期项赋值指定格式系统日期实现方法
第一步:配置动态动作触发规则
- 绑定动态动作到STATE对应的页面项,命名建议直接标记为
STATE值变更触发日期赋值方便后续维护 - 触发事件选择
Change,即项值变更时自动触发逻辑 - 客户端条件配置为
Item = Value,绑定项选你的STATE页面项,对比值填2,仅当STATE值为2时才执行后续赋值逻辑,其他取值下不触发任何操作。
第二步:配置赋值真动作(二选一即可)
方案1:PL/SQL表达式赋值(兼容性最优,推荐)
- 动作类型选择
Set Value - 赋值来源选
PL/SQL Expression - 表达式内容填写:
TO_CHAR(SYSDATE, 'dd/mm/yyyy')
- 受影响元素选择你的DATE类型Date Picker对应页面项
- 按需勾选Suppress Change Event:如果不需要日期项赋值后联动触发其他动态动作就勾选,不勾选不影响核心赋值效果
该方案直接在数据库侧完成日期格式化,完全匹配你要求的
dd/mm/yyyy格式,不会出现前端日期格式和组件配置不匹配导致的无效值报错,适配所有APEX内置日期组件逻辑。
方案2:前端JavaScript赋值(无往返提交,响应最快)
- 动作类型选择
Execute JavaScript Code - 代码区填入以下内容,注意把项名替换成你实际的Date Picker项名:
const now = new Date(); const day = String(now.getDate()).padStart(2, '0'); const month = String(now.getMonth() + 1).padStart(2, '0'); const year = now.getFullYear(); const sysdateFmt = `${day}/${month}/${year}`; // 调用APEX原生item API赋值,自动触发组件渲染更新 apex.item('PXXX_YOUR_DATE_ITEM').setValue(sysdateFmt);
- 受影响元素同样选择对应的Date Picker项即可
用该方案前要确认Date Picker项的「Display Format」属性已经设置为
dd/mm/yyyy,否则组件会把传入值识别为非法日期。
内容的提问来源于stack exchange,提问作者user9038848
相关产品推荐
相关产品推荐

