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

Oracle APEX动态动作实现:页面1表单字段填充页面2表单字段

实现Oracle APEX跨页面表单字段自动填充的方案

方法一:表单提交后通过分支传参(最简便直接)

这是最适合你的场景的方案,提交页面1后直接跳转并填充页面2字段:

  • 编辑页面1,找到分支选项卡,添加新分支
  • 分支触发条件设为「处理成功后」(对应CREATE按钮的表单提交成功事件)
  • 分支类型选择「转到页面」,目标页面选择页面2
  • 在「设置项」区域添加配置:
    • 名称:P2_AID
    • 值:P1_ACCOUNT_NUM
  • 保存分支设置,用户提交页面1表单后会自动跳转到页面2,P2_AID将被自动填充为页面1输入的账户编号

方法二:利用会话状态+动态动作(适合非即时跳转场景)

如果用户提交页面1后不立即进入页面2,后续访问页面2时自动填充:

  1. 确认页面1的P1_ACCOUNT_NUM在提交后保存到会话状态:
    编辑P1_ACCOUNT_NUM页面项,在「会话状态」属性中设置「提交时保存值」为「是」(默认表单提交会自动保存,若未开启需手动设置)
  2. 编辑页面2,添加动态动作:
    • 触发条件:「页面加载时」
    • 动作类型:「设置值」
    • 目标项:P2_AID
    • 设置类型:「PL/SQL表达式」
    • 表达式::P1_ACCOUNT_NUM
  3. 只要用户会话未失效,后续进入页面2时P2_AID会自动读取页面1提交的账户编号值

方法三:自定义DML逻辑写入会话(适合复杂业务场景)

如果需要在保存账户信息的同时强制设置P2_AID的会话值:

  • 编辑页面1的表单DML处理(对应CREATE按钮的INSERT操作)
  • 在处理的「成功后PL/SQL」区域添加代码:
    APEX_UTIL.SET_SESSION_STATE('P2_AID', :P1_ACCOUNT_NUM);
    
  • 若账户编号是数据库序列自动生成的,替换为:NEW.ACCOUNT_NUM(从刚插入的记录中获取主键值)
  • 配合页面2的页面加载动态动作,即可在进入页面2时自动填充字段

注意事项

  • 确保P2_AID页面项的「值保护」属性设为「否」,否则无法通过分支或动态动作修改其值
  • 若使用序列生成账户编号,需确保获取的是实际插入到数据库的编号值,而非页面输入的临时值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:12:07