Oracle apex Oracle Apex-在网格中设置计算

Oracle apex Oracle Apex-在网格中设置计算,oracle-apex,Oracle Apex,我有一个固定行的交互式网格。 我需要按顺序计算 因此,源查询是: select kpi,monthly,yearly from kpi where project_id = :P1_PROJECT_ID; 它在网格中看起来像: 所以,KPI损益将由用户输入,但对于总额,我需要使用自动计算字段的公式 公式为:损益*100 因此,当用户在利润中输入20,在亏损中输入10时,应计算为200 因此,对于每月,应采取以下措施: Profit(KPI)/Loss(KPI)*100 同样,对于年度栏:

我有一个固定行的交互式网格。 我需要按顺序计算

因此,源查询是:

select kpi,monthly,yearly from kpi where project_id = :P1_PROJECT_ID;

它在网格中看起来像:

所以,KPI损益将由用户输入,但对于总额,我需要使用自动计算字段的公式

公式为:损益*100

因此,当用户在利润中输入20,在亏损中输入10时,应计算为200

因此,对于每月,应采取以下措施:

Profit(KPI)/Loss(KPI)*100
同样,对于年度栏:

Profit(KPI)/Loss(KPI)*100

如何实现这一点?

在IG for change事件的Amount列上创建一个动态操作。创建一个真正的动作作为设置值。将类型设置为PL/SQL表达式。将PL/SQL表达式指定为:AMOUNT。提交项目金额。设置受影响项目的Px\U金额。然后创建另一个true操作以执行JavaScript代码,并在其中添加以下代码:

var model = apex.region("igitems").widget().interactiveGrid("getViews", "grid").model;
var n_amt, n_totamt = 0;
col_amt = model.getFieldKey("AMOUNT");
model.forEach(function(igrow) {
    n_amt = parseInt(igrow[col_amt], 10);
    if (!isNaN(n_amt)) {
        n_totamt += n_amt;
    }
});
apex.item("Px_AMOUNT").setValue(n_totamt);