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

如何在交互式报表中根据页面对象值修改行背景色

this is my report screen

需求说明

程序中有一个隐藏页面对象,点击订单报表任意行时,该对象会获取对应订单ID并更新订单详情表(功能正常)。现需根据该页面对象的订单ID,修改报表中对应ID行的背景色(如页面对象值为2时,高亮订单ID为2的行)。

实现方案

1. 给报表行添加标识

在订单报表的行渲染时,给每一行的<tr>标签添加自定义属性,绑定订单ID:

<tr data-order-id="#ORDER_ID#">
  <!-- 报表列内容 -->
</tr>

注:#ORDER_ID#替换为你报表中订单ID的实际字段变量。

2. 监听页面对象值变化并高亮行

使用JavaScript监听隐藏页面对象的数值变化,动态切换行的高亮状态。假设隐藏页面对象为P1_HIDDEN_ORDER_ID,报表表格类名为.order-report:

// 监听页面对象值变更
apex.item('P1_HIDDEN_ORDER_ID').on('change', function() {
  const targetId = this.getValue();
  
  // 清除所有行的高亮样式
  document.querySelectorAll('.order-report tr[data-order-id]').forEach(row => {
    row.classList.remove('highlight-row');
  });
  
  // 高亮目标行
  if (targetId) {
    const targetRow = document.querySelector(`.order-report tr[data-order-id="${targetId}"]`);
    targetRow?.classList.add('highlight-row');
  }
});

// 页面加载时初始化高亮(若页面对象已有值)
document.addEventListener('DOMContentLoaded', function() {
  const initialId = apex.item('P1_HIDDEN_ORDER_ID').getValue();
  if (initialId) {
    const targetRow = document.querySelector(`.order-report tr[data-order-id="${initialId}"]`);
    targetRow?.classList.add('highlight-row');
  }
});

3. 定义高亮样式

在页面CSS中添加高亮的样式规则:

.highlight-row {
  background-color: #e6f7ff !important; /* 可根据需求调整颜色 */
}

注:请将代码中的P1_HIDDEN_ORDER_ID、.order-report替换为你项目中的实际名称。

内容的提问来源于stack exchange,提问作者0ptimus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:33:38