Oracle APEX_ITEM API用法和问题

问题描述 投票:0回答:1

我有以下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条记录。

我不确定我错过了什么,或者我是否完全得到了关于使用这两个占位符项的原始选择错误?

sql plsql oracle-apex
1个回答
1
投票

在你的评论中你说

我可以使用apex_item.text api,其中源不是来自底层的oracle表吗?

现在我读到:

我可以生成此报告,并将我的apex_item字段的默认值设置为我的2页项目的默认值。

是。您可以。这就是我认为你最初的意思,它是有道理的,因为这些项目无论如何都是隐藏的。请确认以下内容: 如果您的意思是该值未在页面加载时放在报表项中: 如果包含隐藏项目的区域位于包含报告的区域之下,请使用项目移动您的区域,或使用您的报告在区域上方创建新区域。 上面和下面我在谈论他们在表单结构中的位置。如果使用组件视图轻松查看,请切换到树视图。 我的猜测是项目(及其来源)之前被处理,因此在报告呈现开始之前具有有效的会话状态。

© www.soinside.com 2019 - 2024. All rights reserved.