将所选记录的列值更新为sysdate的按钮

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

我有一个包含一堆记录的交互式网格,并且我想在页面上设置一个按钮,以更改当前所选所有记录中的一列。

运行APEX 5.1,IG有一整列,我只想更改其中一列,但是在一整行上,所以我确实需要一个按钮。该表上的主键由5个字段组成。

我真的不太了解Javascript,所以我不知道出了什么问题或如何最好地解决它。

我在单击按钮时设置了一个动态动作来执行Javascript,并且所选元素是名为config的区域。

var g = apex.region('config').widget().interactiveGrid('getViews','grid');  
var r = g.getSelectedRecords();  
for(i = 0; i < r.length; i++) {   
g.model.setValue(r[i], 'EFCTV_END_DT', 'sysdate');
}

其中EFCTV_END_DT是列名,而sysdate是该列需要更新到的值。

运行此代码后,出现此错误:

Ajax调用返回了服务器错误ORA-20987:APEX-ERR-1002在应用程序“ 220”中找不到项目“ C100812889833598308”的项目ID。 -意外错误,无法在应用程序或页面级别上找到项目名称。为。

有人可以帮我实现这个吗?

oracle-apex oracle-apex-5.1
1个回答
0
投票

找到了解决此问题的方法:

APEX并未确定sysdate的含义。

将Javascript代码更改为:

var g = apex.region('config').widget().interactiveGrid('getViews','grid');  
var r = g.getSelectedRecords();  
var monthNames =["JAN","FEB","MAR","APR",
                      "MAY","JUN","JUL","AUG",
                      "SEP", "OCT","NOV","DEC"];
var today = new Date();
var dd = today.getDate();
var mm = monthNames[today.getMonth()];
var yyyy = today.getFullYear();
today = dd+'-'+mm+'-'+yyyy;
for(i = 0; i < r.length; i++) { 
    g.model.setValue(r[i],'EFCTV_END_DT',today);
}

现在,它正在按预期方式工作。

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