oracle - Oracle APEX - 交互式网格设置
问题描述
我在 Google Chrome 上使用 Oracle APEX 18.2.0.00.12,我对使用以下要求设置交互式网格的最佳/首选方法有疑问:
注意:为了简化问题,我将使用假表名和表列名来表示问题。
我有一个类似于以下内容的 EMP 表:
First_Name Last_Name Dept_Code Dept_Name
John Smith
Jane Doe
在这个表中,有几行数据,但只有 First_Name 和 Last_Name 列中的数据。Dept_Code 和 Dept_Name 列中没有数据。
我还有一个如下所示的 DEPT 表:
Dept_Code Dept_Name
1234 金融
5678物流
在这个表中,有几行数据,并且数据存在于两列中。
我想基于包含该表中所有列的 EMP 表设置一个交互式网格,但 Dept_Name 列将是仅显示。因此,对 IG 的查询将类似于
SELECT *
FROM EMP;
问题:我希望用户能够在 IG 的 Dept_Code 列中输入员工的部门代码。当用户单击保存时,我希望将部门代码保存在该行的 EMP 表的 Dept_Code 列中,并使用该行的 IG 的 Dept_Name 列自动填充 DEPT 表中的相应部门名称。然后我希望将该部门名称保存在 EMP 表的该行的 Dept_Name 列中。
例如,IG 看起来像:
First_Name Last_Name Dept_Code Dept_Name
John Smith
Jane Doe
如果用户在 IG 中输入 5678 作为 John Smith 的 Dept_Code 然后单击保存,我希望将 5678 保存在 EMP 表中该行的 Dept_Code 列中,然后我希望 IG 中该行的 Dept_Name 列使用 Logistics 自动填充(此数据是从 DEPT 表中提取的)以及 EMP 表中该行的 Dept_Name 列以包含 Logistics。
所以最终的结果是:
电磁脉冲表:
First_Name Last_Name Dept_Code Dept_Name
John Smith 5678 Logistics
Jane Doe
伊格:
First_Name Last_Name Dept_Code Dept_Name
John Smith 5678 Logistics
Jane Doe
有谁知道设置它的最佳方法?
谢谢你。
解决方案
一种选择是创建一个返回部门名称的函数(代码是参数),例如
create or replace function f_dept_name (par_dept_code in dept.dept_code%type)
return dept.dept_name%type
is
retval dept.dept_name%type;
begin
select dept_name
into retval
from dept
where dept_code = par_dept_code;
return retval;
end;
然后使用这样的查询创建一个交互式网格:
select first_name,
last_name,
dept_code,
f_dept_name(dept_code) dept_name
from emp
转到列的属性和 - for dept_name
(由函数返回) - 将仅查询属性设置为是(您将在“源”属性组中找到它)。
那应该这样做。
推荐阅读
- c# - 不调用以元组为键的字典 GetHashCode
- scala - 如何从scala中的多个列表中制作元组
- sql - 无论不同的键(多对通配符)如何使用 SQL 从 Json 中提取所有值?
- angularjs - 如何循环遍历 CoffeeScript 中特定值的数组
- java - Java + Swing:有没有办法让“TitledBorder”不可见?
- javascript - Is there a way to make just the first letter upper case which is the purpose of the code
- excel - 有没有更快的方法在 excel vba 中循环使用 ColorCounter?
- javascript - JQuery隐藏和淡入时丢失的滚动位置
- python - 如何使用正则表达式将字符串的开头(在某些用户指定的字符之前)放入组中?
- webforms - Web表单:无需刷新页面即可返回历史