sql - 了解 Oracle Apex_Application.G_Fnn 以及如何使用它

标签 sql oracle11g oracle-apex

我对 Oracle apex_application.gfnn 的工作方式以及它是否仅适用于 Oracle ApEx 中的标准 SQL 报告或仅适用于 SQL(可更新报告,即表格形式)感到非常困惑。

基本上,我正在尝试使用此示例 SQL 实现以下目标,这只是一个标准 SQL 报告,但我不确定使用此类型或报告是否可以实现我要实现的目标,即:

select id,
       name,
       telephone,
       apex_item.checkbox2(10,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

基于上述 SQL,假设此 SQL 查询返回 10 行。现在使用复选框作为我的驾驶 ID,我勾选所有奇数记录/行的复选框,即第 1、3、5、7、9 行,对于这些行中的每一行,我还输入日期值 (f20) 和注释(f30)

记住这一点,然后我想创建一个页面进程,当用户按下“保存”按钮时调用该进程,该进程将遍历这些选中的行并存储每条记录、我的日期和我的评论,但仅存储我的行选择了。

因此,基于上述内容,我希望我的表中有 5 个新闻行,其中包含以下列:
ID      MY_DATE      MY_COMMENT
1       26/08/2012   Comment A
3       27/08/2012   Comment B
5       28/08/2012   Comment C
7       29/08/2012   Comment D
9       30/08/2012   Comment E

不幸的是,我不确定如何使用 apex_application.G_F10.COUNT 来实现这一点。 .

我希望能够为我勾选复选框的每一行访问这些数组元素 (f20) 和 f(f30) 中的每一个的内容。

这是可能的还是我误解了 apex_application.G_Fnn 的工作原理?如果这是不可能的,我怎么能做到这一点?我需要表格报告吗?

最佳答案

你很亲近。

select apex_item.checkbox2(10, empno) select_me,
apex_item.text(20, empno) empno,
apex_item.text(30, ename)||apex_item.hidden(50, empno) ename
from emp

我正在连接隐藏的项目,因为我不希望它在它自己的列中。布局困惑。
此外,由于复选框的工作方式,隐藏项目在那里。复选框只为选中的项目提交它们的值。这意味着数组 10 有 3 个值。其他数组仍将包含所有行的值。
这就是为什么我再次添加了隐藏的 empno:这样我们就可以将选中的值与其他行进行匹配。

在提交过程中:
DECLARE
   v_empno emp.empno%TYPE; 
   v_ename emp.ename%TYPE;
BEGIN
   --f10: checkbox
   --f20: empno
   --f30: ename
   --f50: empno again
   for i in 1..apex_application.g_f10.count
   loop
      for j in 1..apex_application.g_f50.count loop
         if apex_application.g_f10(i) = apex_application.g_f50(j) 
         then         
            -- access values for the selected rows in the other arrays
            v_empno := apex_application.g_f20(j);
            v_ename := apex_application.g_f30(j);

            apex_debug_message.log_message('Employee: '||v_empno||' - '||v_ename);
         end if;
      end loop;
   end loop;
END;

运行页面,启用调试,选择记录 2、4 和 6,提交。

record selection and query output

调试输出:

debug output: BLAKE, JONES, FORD

您现在需要做的就是将您的处理置于该循环中。

关于sql - 了解 Oracle Apex_Application.G_Fnn 以及如何使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12142143/

相关文章:

mysql - 如何过滤表并连接结果

sql - PLSQL - 字符串中所有字符的计数

java - 症状及其疾病数据库设计

sql - Oracle合并而不是插入?

plsql - ORA-06502 之后如何在 Oracle 11g PL/SQL 中将 VARCHAR2 转换为 BLOB

database - APEX_UTIL.GET_SINCE 关闭 6 分钟

oracle-apex - 如何以编程方式将记录添加到 APEX 交互式网格?

javascript - 如何使用 Ajax 在 Oracle APEX 表格表单上逐行执行验证?

sql - 使用索引优化SQLite3上的SQL查询

java - jsp中分页公告板的sql