Oracle APEX中如何将页面值传递给inline dialog实现搜索功能
Oracle APEX inline dialog参数传递解答
inline dialog完全支持传递当前页面已录入内容作为查询参数,实现逻辑比modal dialog更简单,不需要配置跨页面参数传递规则。
常规实现步骤
- 正常在当前页面创建inline dialog类型的区域,在区域内添加搜索结果展示用的报表/列表组件
- 编辑结果组件的查询SQL,直接将当前页面的录入项作为绑定变量写入查询条件即可,比如当前页有录入项
P1_EMP_NAME,SQL可直接写:SELECT emp_id, emp_name, dept_name FROM emp WHERE emp_name LIKE '%' || :P1_EMP_NAME || '%' - 给触发打开inline dialog的按钮绑定动态动作,按顺序添加两个动作:
- 刷新inline dialog内的结果组件,刷新时APEX会自动读取当前页面录入项的最新值代入绑定变量完成查询
- 执行打开inline dialog操作,打开后即可看到符合当前查询条件的结果
特殊场景自定义传值方案
如果需要在传参前对参数做拼接、转换等自定义处理,可以用JS动态赋值的方式实现:
先在inline dialog区域内添加隐藏项,比如
P1_INLINE_QUERY_PARAM,在打开dialog的动态动作中先添加「执行JavaScript代码」动作,写入自定义处理逻辑:// 示例:将当前页面多个录入项拼接为一个查询条件传入dialog const param1 = apex.item("P1_INPUT1").getValue(); const param2 = apex.item("P1_INPUT2").getValue(); apex.item("P1_INLINE_QUERY_PARAM").setValue(param1 + '-' + param2);后续dialog内的查询逻辑直接引用绑定变量
:P1_INLINE_QUERY_PARAM即可。
内容的提问来源于stack exchange,提问作者user111
相关产品推荐
相关产品推荐

