【问题标题】:Oracle APEX Interactive Grid custom action database updateOracle APEX 交互式网格自定义操作数据库更新
【发布时间】:2019-04-10 15:28:12
【问题描述】:

我有一个交互式网格,上面定义了自定义操作。我要做的是遍历网格,获取所有选定的记录,然后遍历记录并更新每个记录的单个数据库字段,将其设置为 0。

我正在使用以下代码循环记录,获取记录 ID:

view=apex.region("myGrid").widget().interactiveGrid("getViews","grid");

if (view.supports.edit)
{
    model=view.model;
    records=view.getSelectedRecords();
    if(records.length>0)
    {
        for(i=0;i< records.length; i++)
       {

            $record_id= model.getValue(records[i], "RECORD_ID");
            //update the database here UPDATE TABLE1 SET Flag=0 WHERE RECORD_ID=$record_id
        }
    }
}

从这里执行更新的最佳方式是什么?

【问题讨论】:

  • 表格与交互式网格中使用的表格是否不同?
  • 在交互式网格中我使用了多个表格

标签: oracle-apex oracle-apex-5.1


【解决方案1】:

有一个非常相似的情况。我想通过一个 IG 并为每个选定的记录更改一列。我设置了一个在按钮上触发的动态操作,并让它运行以下 Javascript,并在 javascript 之后为提交页面设置了另一个 tru 操作,否则您仍然需要手动保存。这是我的解决方案:

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

希望这会有所帮助,我发现的很多解决方案都不适合我,这个有效(我在 18.2 上)

【讨论】:

  • 如果我的 IG 是从集合中填充的,那会起作用吗?
  • 此方法只更改IG中的值,只要它们被标记为可编辑。您的保存可能不起作用,但您可以为此编写一个自定义 plsql 过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多