oracle - 如何在 APEX ORACLE 中创建和使用多选列表?

标签 oracle oracle-apex oracle-apex-5 oracle-apex-5.1

我有一个名为Employees 的表,其中包含Employee_id 和Employee_Name 列。现在我想在每个员工姓名前面创建一个带有复选框的页面,选择需要的页面,将它们存储到一个临时表中并使用它们进行进一步的操作。我面临的问题是如何创建多选列表并将选择值存储在表中。是否有用于多选的项目?如果没有,我该怎么做?

最佳答案

这是类车项目 .在左侧,您将显示所有员工的列表。项目按钮允许您将所有(或仅部分)移动到项目的右侧。提交页面后,员工 ID 列表以冒号分隔值的形式存储到表列中,例如

6547:8879:5587:9987

这是一种简单的方法。但是,一旦您必须对这些值进行实际操作,就必须将它们拆分为行。不过也不是问题。这是一个查询:
SQL> with emps (shuttle_item) as
  2    (select '6547:8879:5587:9987' from dual)
  3  select regexp_substr(shuttle_item, '[^:]+', 1, level) one_item
  4  from emps
  5  connect by level <= regexp_count(shuttle_item, ':') + 1;

ONE_ITEM
---------------------------------------------------------------------
6547
8879
5587
9987

SQL>

或者,您可以创建一个表格形式,该表格还显示所有员工并在每一行的开头都有复选​​框。然后,您将创建一个进程,该进程在循环中将选定的值存储到您提到的临时表中。例如:
-- F01 = row selector. If you check 1st and 3rd row, f01.count = 2 (2 rows checked)
--       f01(1) = 1 (row #1), f01(2) = 3 (row #3)
-- F02 = EMP_ID. f02(1) = EMP_ID that belongs to employee in 1st row, 
--       f02(3) = EMP_ID that belongs to emplyee in 3rd row
declare
  l_id number;
begin
  for j in 1 .. apex_application.g_f01.count
  loop
    l_id := apex_application.g_f02(apex_application.g_f01(j));

    insert into temp_table (emp_id) values (l_id);
  end loop;
end;

关于oracle - 如何在 APEX ORACLE 中创建和使用多选列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50552062/

相关文章:

html - 如何获取图像或链接以显示在 Oracle APEX 交互式报告中?

oracle-apex - 对事件区域执行查询

sql - 在Oracle中获取插入行的ID,使用序列和触发器插入ID

mysql - 将报表的结果查询作为参数传递给钻取报表

oracle 在 OVERFLOW TRUNCATE 时缺少右括号

Oracle Apex - 引发虚拟列错误

oracle - 在 Linux 上使用 Oracle Apex 安装 RESTful 服务和 Tomcat 8

c# - 使用 C# 选择 oracle 日期列

database - 创建新的 Oracle Application Express (APEX)

css - 甲骨文顶点 5 : how do I remove spaces between rows and inside cells