Oracle APEX - 交互式网格设置
Posted
技术标签:
【中文标题】Oracle APEX - 交互式网格设置【英文标题】:Oracle APEX - Interactive Grid Set-Up 【发布时间】:2019-07-25 17:18:37 【问题描述】:我在 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 表:
部门代码部门名称
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 列中,然后我想要该行的 Dept_Name 列在 IG 中自动填充 Logistics(此数据是从 DEPT 表中提取的)以及 EMP 表中该行的 Dept_Name 列以包含 Logistics。
所以最终的结果是:
EMP 表:
First_Name Last_Name Dept_Code Dept_Name
John Smith 5678 Logistics
Jane Doe
IG:
First_Name Last_Name Dept_Code Dept_Name
John Smith 5678 Logistics
Jane Doe
有人知道最好的设置方法吗?
谢谢。
【问题讨论】:
【参考方案1】:一种选择是创建一个返回部门名称的函数(代码是参数),例如
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
转到列的属性并 - 对于 dept_name
(由函数返回) - 将 query only 属性设置为 yes(您会在“源”属性组)。
应该可以的。
【讨论】:
以上是关于Oracle APEX - 交互式网格设置的主要内容,如果未能解决你的问题,请参考以下文章
Oracle APEX 交互式网格:如何使用 PLSQL 访问内容?
穿梭列上的 Oracle APEX 交互式网格过滤器 APEX 19.2