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);