在 Oracle APEX 中基于“行选择器”插入记录
Posted
技术标签:
【中文标题】在 Oracle APEX 中基于“行选择器”插入记录【英文标题】:Insert records based on "Row Selector" in Oracle APEX 【发布时间】:2018-03-02 08:20:12 【问题描述】:我在表格顶部创建了一个报告和表单。表单页面是“表格形式”,其中所有列都是可编辑的。在“表单”页面中,我有一个查找按钮。单击此按钮后,它将导航到新页面,该页面在视图顶部有一个带有“行选择器”的报告。
当用户可以选择行列表并单击提交时,选定的行应该插入到表格表单页面中。 你能解释一下我是如何做到这一点的吗?
【问题讨论】:
【参考方案1】:由于没有人回答您的问题(尚未),让我根据我目前的知识和经验说几句话。请注意,有人可能有其他更好的想法和意见。
在表格上创建表格形式,其来源是SELECT
语句。说你想选中某个报告页面上的行选择器复选框,然后这些值将被传输到另一个页面上的表格形式是make-a-wish语句。我会说这些值应该是INSERTED
到一个表中(在该表上创建表格形式),然后表格形式应该执行重新查询以获取这些行。
在报告中“检查行选择器复选框”并对这些行做“某事”:男孩,我不知道该怎么做。是的,我已经以表格形式操作了由我自己的复选框项目选择的行(注意区别:不是在报告中,而是在表格形式中),这比快乐更痛苦。
我建议您阅读以下 Patrick Wolf 的文章:Which Tabular Form Column is mapped to which Apex_Application.g_fxx array?。为什么?因为它解释了如何处理g_fxx array
。它是一种以表格形式操作值的方法。只是为了展示我在 4.x Apex 版本之一中使用的示例(不,我没有任何更新的代码),以便您了解它应该如何完成;这是一个在提交时触发的页面进程。
等等;这些是表格形式的项目
/* 01 - ID
02 - CB_NEDOSTATAK
03 - CB_HITNOST
04 - CB_OTKLONJEN
05 - NAPOMENA
*/
begin
for i in 1 .. apex_application.g_f01.count loop
update dg_pregled set
cb_nedostatak = case when apex_application.g_f02(i) = 1 or
apex_application.g_f03(i) = 1 then 1
else 0
end,
cb_hitnost = decode(apex_application.g_f03(i), 1, 1, 0),
cb_otklonjen = case when apex_application.g_f02(i) = 1 and
apex_application.g_f04(i) = 1 then 1
else 0
end,
napomena = apex_application.g_f05(i)
where id = apex_application.g_f01(i);
end loop;
end;
基本上,你会做这样的事情;而不是UPDATE
,你会做INSERT
。
正如我所说:这不一定是您问题的最佳解决方案,但这就是我可以说的。祝你好运!
【讨论】:
以上是关于在 Oracle APEX 中基于“行选择器”插入记录的主要内容,如果未能解决你的问题,请参考以下文章