如何根据oracle apex中另一列的值使列只读

问题描述 投票:0回答:1

我在oracle apex中基于员工表创建了可编辑的交互式网格。在 IG 中,我有多个列,例如 ename、salary 和 comm。我想根据薪水的值动态地使 comm 列只读。例如,如果工资列中的值为 2000 或更少,则通讯列应变为只读。我已经编写了代码来实现此功能,但代码没有按我想要的方式工作。让我与你分享代码

  var salValue = apex.region("mygrid").call.getSelectedRecords()\[0\].get("SAL");

var commColumnId = "COMM"; // COMM 列的静态 ID 或列名

// Get the interactive grid model

var igModel = apex.region("mygrid").call.model;

// 迭代网格模型中的每一行 igModel.forEach(函数(记录) { var commCell = record.getCellValue(commColumnId);

// Check if SAL value is <= 2000
if (salValue <= 2000) {
    // Set COMM column to readonly
    commCell.attributes.readOnly = true;
} else {
    // Set COMM column to editable
    commCell.attributes.readOnly = false;
}

});

// 刷新交互式网格以应用更改 apex.region("mygrid").call.refresh(); 第一行返回错误不是函数

oracle-apex dynamic-programming interactive-grid
1个回答
0
投票

创建一个函数并传递工资作为参数,并根据条件返回 Y 或 N,然后转到交互式网格列属性只读选择表达式,然后使用函数 this 'Y' =is_readonly(:salary);

© www.soinside.com 2019 - 2024. All rights reserved.