Oracle APEX 根据表匹配结果跳转对应页面的功能实现咨询
Oracle APEX 按钮条件跳转功能实现步骤
1. 前置准备
- 在P2000_Patient页面新增一个隐藏的数值类型页项P2000_ID_EXISTS,用于存储ID校验结果,不需要显示给用户。
- 新增按钮,按钮动作选择「动态动作」,触发事件绑定为「点击」。
2. 配置服务器端ID校验逻辑
给上述动态动作新增第一个动作,类型选择执行服务器端代码,按如下规则配置:
- 服务器端代码输入(将
SYMPTOM_CRITERIA替换为你实际的目标表名):
DECLARE l_count NUMBER; BEGIN SELECT COUNT(*) INTO l_count FROM SYMPTOM_CRITERIA WHERE criteria_id = :P2000_Criteria_id; :P2000_ID_EXISTS := CASE WHEN l_count > 0 THEN 1 ELSE 0 END; END;
- 「要提交的项」字段填
P2000_Criteria_id,保证当前输入的ID值能传到后台 - 「要返回的项」字段填
P2000_ID_EXISTS,保证校验结果能返回到前端
3. 配置条件跳转分支
在「执行服务器端代码」动作后新增两个重定向动作,分别对应两种跳转场景:
分支1:ID存在跳转P2002
- 动作类型选择「重定向到页面」
- 触发条件配置:
- 条件类型:项 = 值
- 项:P2000_ID_EXISTS
- 值:1
- 目标页面选择P2002_Symptoms,按需配置需要传递的参数(比如把P2000_Criteria_id传给P2002的对应页项)
分支2:ID不存在跳转P2001
- 动作类型选择「重定向到页面」
- 触发条件配置:
- 条件类型:项 = 值
- 项:P2000_ID_EXISTS
- 值:0
- 目标页面选择P2001_Episodes,按需配置参数即可
可选补充
如果需要避免空值查询,可以在动态动作最前面加一个「验证」动作,条件设置为P2000_Criteria_id 不为空,校验不通过时抛出提示,阻止后续逻辑执行。
内容的提问来源于stack exchange,提问作者user13768246
相关产品推荐
相关产品推荐

