Oracle Apex 商机表单文本框点击时自动填充当前日期方案咨询
该需求在Oracle Apex中完全可行
你提到的“点击备注文本框才自动填入当前日期”的逻辑,属于Apex原生动态动作的典型应用场景,不需要引入外部插件或者复杂定制开发,按下面的步骤配置就能快速实现:
具体配置步骤
- 先打开对应商机表单的编辑页面,在组件树里找到你用来录入自由备注的文本项,给它设置一个辨识度高的静态ID,比如
P2_OPP_REMARK,后续所有触发逻辑都会绑定这个ID。 - 在页面左侧的动态动作面板,新建一条动态动作:
- 事件类型选择聚焦(Focus),触发对象直接选中刚才的备注文本项,这个配置刚好匹配“用户点击文本框准备录入时触发逻辑”的要求。
- 不需要配置任何客户端/服务器端的条件判断前置,直接给动态动作添加第一个执行操作,操作类型选“设置值”。
- 配置“设置值”操作的参数:
- 值的来源优先选PL/SQL表达式,避免用户本地设备时间不准导致日期偏差,表达式内容根据你需要的日期格式写,比如想要
2024-05-20 14:30格式就写TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI') - 目标元素选中刚才的备注文本项,记得勾选“执行时等待PL/SQL完成”的选项,保证日期值能正确从服务器端拿到。
- 值的来源优先选PL/SQL表达式,避免用户本地设备时间不准导致日期偏差,表达式内容根据你需要的日期格式写,比如想要
- 补充优化逻辑:如果不希望用户后续编辑已有备注时被重复弹出的日期打断,可以给这条动态动作加一个执行条件,选JavaScript表达式类型,填入
$v("P2_OPP_REMARK") === "",实现“只有输入框为空时才自动填日期”的效果。
可调整的衍生配置
- 如果你希望自动填入的日期是作为备注内容的开头,而不是清空原有内容覆盖,只需要把设置值的表达式改成“当前日期拼接原有备注内容”的逻辑:
TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' ' || :P2_OPP_REMARK就行。 - 注意不要把触发事件选成页面加载,那样会在用户还没点输入框的时候就把日期填进去,完全不符合需求的触发时机。
内容的提问来源于stack exchange,提问作者Mali Shariat
相关产品推荐
相关产品推荐

