Oracle apex 如何使用APEX_APPLICATION.G_F01访问APEX_ITEM.TEXTAREA字段
我使用以下查询得到以下表格报告:Oracle apex 如何使用APEX_APPLICATION.G_F01访问APEX_ITEM.TEXTAREA字段,oracle-apex,Oracle Apex,我使用以下查询得到以下表格报告: select id, name, telephone, apex_item.checkbox2(1,id) as "Tick when Contacted", apex_item.text(20,my_date) as "Date Contacted", apex_item.textarea(30,my_comment,5,80) as "Comment" from my_table 此
select id,
name,
telephone,
apex_item.checkbox2(1,id) as "Tick when Contacted",
apex_item.text(20,my_date) as "Date Contacted",
apex_item.textarea(30,my_comment,5,80) as "Comment"
from my_table
此报告显示10条记录,其中驱动键是分配给F01的复选框
我的问题是,由于这是一个表格报告,使用Oracle APEX_APPLICATION.G_F01.COUNT-我如何访问textarea字段的值,其中“My_comment”是用户可在报告上输入的值,而不是来自数据库列/表
据我所见,这似乎是一个顺序问题,如果您输入的记录顺序不正确,则会丢失值
我只勾选了第1行、第3行和第5行的复选框,因此希望返回仅与这些选定行相关的textarea字段的值。是的,当表格表单包含复选框时,它会变得棘手。在您的示例中,g_f01将仅包含3个值为1、3、5的元素,但数组g_f30将包含10个元素 通常,在使用apex_项构建表格形式时,最好也使用apex集合:
apex_项。复选框2(1,seq_id)
for i in 1..apex_application.g_f01.count loop
apex_collection.update_member_attribute('MYCOLL', apex_application.g_f01(i),
50, 'Y');
end loop;
然后使用其他更改对其进行更新:
for i in 1..apex_application.g_f02.count loop
apex_collection.update_member_attribute('MYCOLL', apex_application.g_f02(i),
20, apex_application.g_f20(i));
apex_collection.update_member_attribute('MYCOLL', apex_application.g_f02(i),
30, apex_application.g_f30(i));
end loop;
最后,将相关更改应用于my_表:
for r in (select c002, c020, c030
from apex_collection
where collection_name = 'MYCOLL'
and c001 = 'Y' -- Checked rows only
)
loop
update my_table
set my_date = r.c020
, my_comment = r.c030
where id = r.c002;
end loop;
就这么简单 晶莹剔透;)我想在我的回答之后扁桃体有这个问题/困惑。我的第一个答案是错的,所以错了。并不是说我不知道这一点,我一定是判断失误了:我甚至测试了该死的代码,结果显示我错了!我现在修改了。但是,代码的最终结果不是与基于集合的答案相同吗?使用收藏真的会有很多好处吗?这里可能没有这么多好处。这只是我的默认设置:如果我使用apex_项目,那么我通常也使用集合!在这种情况下,你的方法会更简单,我的方法可能有点过头了。感谢你的回答Tony以及你的修改版本Tom。谢谢各位。我觉得只有我们三个人在使用Oracle ApEx。。。。