Oracle Apex 5.1中用单选按钮组传递指定参数至其他页面的方法
实现Oracle APEX 5.1单选按钮组传递动态参数的方案
嘿,这个需求在APEX 5.1里完全可以搞定,我给你一步步拆解:
1. 先搞定单选按钮组的创建
在你的页面上新增一个单选按钮组类型的页面项,建议命名成P1_RATE_TYPE(根据你的实际页面编号调整就行):
- 显示标签可以设成「选择费率类型」,让用户一眼明白用途
- 去「列表值」里加两个选项:
- 显示值填
Monthly,返回值设为MONTHLY(大小写统一就行,后面保持一致) - 显示值填
Yearly,返回值设为YEARLY
- 显示值填
2. 处理动态费率值的传递(两种方式任选)
因为要根据用户选的类型,传递对应的Monthly_rate或Yearly_rate,这里有两种常用的实现方式:
方式一:用隐藏项存好要传递的费率值
- 先加一个隐藏页面项,比如
P1_SELECTED_RATE - 给这个隐藏项设置计算规则:
- 计算时机选「提交后 - 计算」
- 计算类型选「PL/SQL表达式」,代码写这个:
CASE :P1_RATE_TYPE WHEN 'MONTHLY' THEN :P1_MONTHLY_RATE WHEN 'YEARLY' THEN :P1_YEARLY_RATE END
这里的P1_MONTHLY_RATE和P1_YEARLY_RATE是你当前页面上绑定表字段的项(就是显示对应费率的那些项,肯定已经存在啦)
方式二:直接在跳转分支里动态取值
如果不想多搞一个隐藏项,也可以直接在跳转分支里处理:
3. 设置页面跳转的分支
接下来创建一个分支(比如绑定到「确认」按钮上,用户点按钮就跳转):
- 分支类型选「转到页面」,选好你要跳的目标页面编号
- 在「设置项」区域,添加三个要传递的参数:
- 目标页面的Product_id项(比如
P2_PRODUCT_ID),源值填:P1_PRODUCT_ID(当前页面的Product_id项) - 目标页面的费率类型项(比如
P2_RATE_TYPE),源值填:P1_RATE_TYPE - 目标页面的费率值项(比如
P2_RATE_VALUE),源值用这个PL/SQL表达式:
- 目标页面的Product_id项(比如
CASE :P1_RATE_TYPE WHEN 'MONTHLY' THEN :P1_MONTHLY_RATE WHEN 'YEARLY' THEN :P1_YEARLY_RATE END
小提示
- 确保你当前页面已经正确显示了
Product_id、Monthly_rate、Yearly_rate的值哦(比如通过报表的链接列绑定,或者表单项直接关联表字段) - 如果是从报表行里触发的操作,记得先把选中行的Product_id传到页面项里,再走上面的步骤
这样设置完之后,用户选好Monthly/Yearly,点提交按钮,对应的三个值就妥妥传到目标页面啦!
内容的提问来源于stack exchange,提问作者Munir
相关产品推荐
相关产品推荐

