oracle - 如何在 APEX ORACLE 中创建和使用多选列表?
问题描述
我有一个名为Employees 的表,其中包含Employee_id 和Employee_Name 列。现在我想在每个员工姓名前面创建一个带有复选框的页面,选择需要的那些,将它们存储到一个临时表中并使用它们进行进一步的操作。我面临的问题是如何创建该多选列表并将选择值存储在您的表中。是否有用于多选的项目?如果没有,我该怎么做?
解决方案
有Shuttle 项目。在左侧,您将显示所有员工的列表。项目按钮允许您将所有(或仅其中一些)移动到项目的右侧。提交页面后,员工 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;
推荐阅读
- amazon-web-services - 标记 CloudFormation 和底层资源
- winapi - 使用 XPath 查询节点时如何指定命名空间?
- python - SQLAlchemy 无法适应 TextField 的类型
- java - JPQL 将 List 添加到 HashMap 中,将 List 记录相乘
- amazon-s3 - 为每个 CKFinder 3 实例的 S3 存储桶设置公共密钥前缀
- python - 基本类型容器的返回值类型提示
- python - 用逗号和 2 位小数打印,带填充
- javascript - 带for循环的乘法表1-10
- c - 在 c printf 中无效使用 void 表达式
- dart - 在 Visual Studio 代码中调试飞镖