Oracle APEX 19.2 如何将页面4的PN列值设为区域Header标题
Oracle APEX 19.2 动态绑定区域Header实现方案
前置说明
你不需要修改已编写的Header静态HTML/CSS结构,仅需要补充动态值绑定逻辑即可,以下是三种常见场景的实现方法:
场景1:PN列对应当前页面的页面项(如P4_PN,常见于表单页、详情页)
直接使用APEX原生静态替换语法实现:
- 打开目标区域的「Header and Footer」配置面板
- 将Header文本中需要展示PN值的位置替换为
&P4_PN.,注意语法首尾的&和半角句号不可省略 - 保存页面后运行,Header会自动读取P4_PN项的实时值渲染,原有CSS样式完全兼容
若P4_PN为页面加载后异步赋值的项,需在P4_PN的「Advanced」设置中关闭「Escape Special Characters」,同时给Header外层元素添加自定义类
dynamic-region-header,配合P4_PN值变更的动态动作触发局部刷新即可。
场景2:PN列是交互式报表/交互式网格的查询列,需取选中行的PN值作为Header
通过动态动作实现值绑定:
- 给Header中的标题展示标签添加自定义ID,示例:
<h2 id="pn-region-header" class="你原有样式类">你原有静态内容</h2> - 给报表/网格组件添加对应触发事件的动态动作:
- 交互式网格:触发事件选「Selection Change [Interactive Grid]」
- 交互式报表:触发事件选「Row Selection Change [Interactive Report]」
- 动态动作的True动作为「Set Value」,参数配置:
- 「Set Type」选「JavaScript Expression」
- 表达式按组件类型填写:
- 交互式网格:
apex.region("你的IG组件静态ID").widget().interactiveGrid("getViews", "grid").getSelectedRecords()[0][PN列的查询别名] - 交互式报表:
$('tr.a-IRR-selected td[headers="PN列的列ID"]').text()
- 交互式网格:
- 「Affected Elements」选择「DOM Object」,填写之前定义的ID
pn-region-header
- 保存页面运行,选中对应行时Header会自动更新为当前行的PN列值
场景3:需取报表查询返回的首个PN值作为区域默认Header
直接修改区域的Title属性即可:
- 打开区域的「Title」设置,类型选择「PL/SQL Function Body」
- 填入对应查询逻辑,示例:
DECLARE v_pn VARCHAR2(255); BEGIN SELECT PN INTO v_pn FROM 你的业务表 WHERE 你的页面过滤条件 FETCH FIRST 1 ROW ONLY; RETURN '当前展示数据:' || v_pn; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN '暂无匹配数据'; END;
配置完成后需要在「Used Columns」栏添加你查询用到的业务表列,避免权限校验报错。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

