Oracle Apex 动态复制表格形式条目
Posted
技术标签:
【中文标题】Oracle Apex 动态复制表格形式条目【英文标题】:Oracle Apex dynamically copy tabular form entry 【发布时间】:2020-09-09 08:18:26 【问题描述】:我使用的是 Oracle Apex 19.1 我有如下表格形式:
当用户单击下面的按钮时,我想将第一天(“Lun. 07 Sept.”)的条目复制到一周的其他日子。 到目前为止,我已经创建了一个关于点击的动态操作,它执行以下 PL/SQL:
BEGIN
FOR i IN 1..htmldb_application.g_f01.count LOOP
htmldb_application.g_f02(i) := htmldb_application.g_f01(i);
htmldb_application.g_f03(i) := htmldb_application.g_f01(i);
htmldb_application.g_f04(i) := htmldb_application.g_f01(i);
htmldb_application.g_f05(i) := htmldb_application.g_f01(i);
END LOOP;
COMMIT;
END;
然而,当我点击按钮时,什么也没有发生。知道我在做什么错吗?我应该改用 javascript 吗?
我验证了,每个选择列表的html id确实是f01_0001
、f01_0002
等(以第一列为例)。
【问题讨论】:
请注意,现在有很多版本都将表格形式标记为旧版,并且从 APEX 20 开始正式弃用。 Oracle 建议切换到交互式网格。 @ThomasTschernich 我知道,但我目前正在开发一个在 apex 4.2 上开发的应用程序,我刚刚将它升级到 19.1,但我暂时不会改变事情的完成方式。只有新页面/报告将是交互式的。感谢您的建议 【参考方案1】:我应该改用 JavaScript 吗?
这是正确的。 htmldb_application.g_f02(i) 项仅在提交页面时可用。并且是为了更新数据库而不是更新 DOM 元素。
这可能会有所帮助
var f01arr = document.getElementsByName("f01");
var f02arr = document.getElementsByName("f02");
var f03arr = document.getElementsByName("f03");
var f04arr = document.getElementsByName("f04");
var f05arr = document.getElementsByName("f05");
for (i = 0; i < f01arr.length; i++)
f02arr[i].value = f01arr[i].value;
f03arr[i].value = f01arr[i].value;
f04arr[i].value = f01arr[i].value;
f05arr[i].value = f01arr[i].value;
【讨论】:
我不知道 pl/sql 仅在提交时执行。我明白为什么我需要使用 javascript。这就像一个魅力,谢谢。 我们可以在动态操作中执行 pl/sql 代码,但是 htmldb_application.g_f02(i) 在页面提交之前这些代码不可用。编辑答案以上是关于Oracle Apex 动态复制表格形式条目的主要内容,如果未能解决你的问题,请参考以下文章