Oracle Apex 如何根据当前时间自动设置复选框的选中值
Oracle Apex 按时间段自动设置班次复选框实现方案
前提确认
你已配置的P4_TIME_RECORDED字段默认值SQL是正确的,可在页面加载时返回24小时制格式为hh:mm的当前时间:
select to_char(systimestamp,'hh24:mm') as timestamp from dual
动态动作配置步骤
- 触发时机选择页面加载后(After Refresh),如果P4_TIME_RECORDED字段会被页面其他操作修改,可额外增加触发事件为P4_TIME_RECORDED的「更改」事件,保证时间修改时班次自动同步。
- 动作类型选择「执行JavaScript代码」,填入以下代码:
// 读取已获取的当前时分值 const timeVal = apex.item('P4_TIME_RECORDED').getValue(); // 拆分时分转为数值计算总分钟数,简化区间判断 const [hour, minute] = timeVal.split(':').map(Number); const currentTotal = hour * 60 + minute; // 班次A时间区间:07:00(420分钟)~17:50(1070分钟) const aStart = 420; const aEnd = 1070; // 给复选框赋值 if (currentTotal >= aStart && currentTotal <= aEnd) { apex.item('P4_SHIFT').setValue('A'); } else { apex.item('P4_SHIFT').setValue('B'); }
可选配置
如果你的P4_SHIFT复选框为允许多选的组,将setValue的参数改为数组格式即可,例如apex.item('P4_SHIFT').setValue(['A'])。
可以在动态动作的「受影响元素」栏选择P4_SHIFT字段,进一步提升代码执行效率。
内容的提问来源于stack exchange,提问作者DeltaD32
相关产品推荐
相关产品推荐

