以下是一些示例,向您展示如何在 Oracle Apex 中循环遍历交互式网格记录。
要使用 JavaScript 获取交互式网格记录,首先,我们需要为交互式网格报表指定静态 ID。为此,请单击您的交互式网格,然后在“高级”部分中,指定静态 ID,如下图所示,我定义了“ iemp ”:

现在,您必须通过遍历交互式网格记录来选择要读取所有行的事件。例如,您可以在交互式网格的任何列上创建动态操作并选择事件 Get Focus 或 Lose Focus等。
为了演示这个示例,我使用了一个按钮并在按钮单击事件上创建了一个动态操作来执行 JavaScript 代码。单击按钮,我将遍历交互式网格的所有记录并打印控制台日志。
下面是一个示例,其中我将遍历交互式网格的所有记录并打印 FRIST_NAME 的列值:
示例 1:遍历所有记录并打印列值
var model = apex.region("igemp").widget().interactiveGrid("getViews", "grid").model;
model.forEach(function(igrow) {
console.log(igrow[model.getFieldKey("FIRST_NAME")]);
});
输出:

示例 2:遍历交互式网格记录并获取变量中的列值
在以下示例中,它将获取变量中的 FIRST_NAME 和 LAST_NAME 列值,然后将打印在控制台日志上。
var model = apex.region("igemp").widget().interactiveGrid("getViews", "grid").model;
var v_fname, v_lname;
v_fname = model.getFieldKey("FIRST_NAME");
v_lname = model.getFieldKey("LAST_NAME");
model.forEach(function(igrow) {
console.log(igrow[v_fname] +" "+ igrow[v_lname]);
});
输出:
Neena Kochhar
Lex De Haan
Valliru Pataballa
Alexanderia Hunold
Bruce Ernst
示例 3:循环遍历记录并对列值求和
在以下示例中,它将计算 SALARY 列的总数,然后将打印在控制台日志上。
var model = apex.region("igemp").widget().interactiveGrid("getViews", "grid").model;
var n_sal, n_totsal = 0;
col_salary = model.getFieldKey("SALARY");
model.forEach(function(igrow) {
n_sal = parseInt(igrow[col_salary], 10);
if (!isNaN(n_sal)) {
n_totsal += n_sal;
}
});
console.log(n_totsal);
您可以在 Oracle Apex 的页面上获取项目中的值。例如,将以下 JavaScript 代码行添加到上述代码的底部,以获取项目 P2_TOTSAL 中的总工资值:
$s ( 'P2_TOTSAL' , n_totsal );
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧