我有以下select语句,我将其用作标准报告:
select id,
name,
telephone,
apex_item.checkbox2(10,id) as "Tick when Contacted",
apex_item.text(20,:P2_DATE) as "Date Contacted",
apex_item.textarea(30,:P2_COMMENT,5,80) as "Comment"
from my_table
我的问题是,我不确定我是否正确执行此操作的区域是,如果此语句返回10行并且在这10行中,我只选择/检查5条记录,然后按提交按钮,为什么我的PL / SQL页面进程是否将选定的记录插入到另一个表中是不是拾取了:P2_DATE
和:P2_COMMENT
这些是页面上隐藏的项目而只是用作占位符而不是实际的列MY_TABLE?
我是正确地做了这个还是我需要使用apex集合?
这是我的页面流程的样子;这是对的吗?
DECLARE
v_row BINARY_INTEGER;
BEGIN
FOR i IN 1..APEX_APPLICATION.G_F10.COUNT LOOP
v_row := APEX_APPLICATION.G_F10(i);
INSERT INTO MY_OTHER_TABLE
( DATE_CONTACTED,
COMMENTS
)
VALUES ( APEX_APPLICATION.G_F20(v_row),
APEX_APPLICATION.G_F30(v_row)
);
END LOOP;
COMMIT;
END;
用户输入的报告示例如下:
ID/CHECKBOX DATE CONTACTED COMMENTS
=====================================================
1 21/08/2012 Comment 1
2 21/08/2012 Comment 2
3 21/08/2012 Comment 3
4 21/08/2012 Comment 4
5 21/08/2012 Comment 5
根据此报告,用户已手动输入这5条评论,我希望这5条记录插入到MY_OTHER_TABLE中,因为它们已经过检查。
不幸的是MY_OTHER_TABLE永远不会填充我已检查过的5条记录。
我不确定我错过了什么,或者我是否完全弄错了使用这两个占位符项的原始选择错误?
答案 0 :(得分:1)
在评论中你说
我可以使用apex_item.text api,其中源不是来自底层的oracle表吗?
现在我读到:
我可以生成此报告,并将我的apex_item字段的默认值设置为我的2个页面项目的字段。
是。您可以。这就是我认为你最初的意思,它是有道理的,因为这些项目无论如何都是隐藏的。请确认以下内容:
如果您的意思是该值未在页面加载时放在报表项中:
如果包含隐藏项目的区域位于包含报告的区域之下,请使用项目移动您的区域,或在报告区域上方创建新区域。
上面和下面我在谈论他们在表单结构中的位置。如果使用组件视图轻松查看,请切换到树视图
我的猜测是之前处理了项目(及其来源),因此在报告呈现开始之前具有有效的会话状态。