我有一个交互式网格,我希望网格在顶部显示最新的日期记录。但是,Interactive Grid 不支持 SQL 中的 Order by。
有什么方法可以让我默认应用这些排序,而不是用户需要自己对这些报告进行排序?
此外,我不想作为开发人员使用“保存报告”,因为我们的应用程序中有超过 400 个报告。有没有一种可编程的方法来实现这个?
您可以使用
WITH
子句从 IG 中“隐藏”ORDER BY
子句。
假设您的选择是:
select emp_id, name, date from employees
并且您想在交互式网格的 SQL 中使用
order by
子句,只需将其复制到以下内容中即可:
WITH my_sel AS
(SELECT emp_id, name, date
FROM employees
ORDER BY date DESC)
SELECT emp_id, name, date
FROM my_sel;
更多示例此处。
要处理非表情况(视图、集合、json_table...)的数据操作,请更改交互式网格的进程“区域名称 - 保存交互式网格数据”,并在此过程的设置下选择“PL/SQL 代码” 作为 “目标类型”,然后将类似这样的内容放入:
IF :apex$row_status = 'I' THEN
-- your insert statements
INSERT INTO employees(emp_id, name, date)
VALUES (:EMP_ID, :NAME, :DATE); -- names of IG columns
ELSIF :apex$row_status = 'U' THEN
-- your update statements
UPDATE employees
SET name = :NAME,
date = :DATE
WHERE emp_id = :EMP_ID;
ELSIF :apex$row_status = 'D' THEN
-- your delete statements
DELETE employees
WHERE emp_id = :EMP_ID;
END IF;
确保在构成数据集唯一键的列上启用主键。否则它不会定位正确的行。各种案件都可以这样处理。
手动,您可以:
以编程方式,您不能:
在 APEX 20.1 中,有一个可用的 PL/SQL API,APEX_IG。但目前它不包含您正在寻找的功能..
新功能可能会在 APEX 的未来版本中添加,但这只是猜测,肯定不是您现在可以使用的功能。
按列排序:
01. Click the Actions menu, select Data, then Sort. The Sort dialog appears.
02. In the Sort dialog: Select a column, the sort direction (Ascending or Descending), and the null sorting behavior (Default, Nulls Always Last, or Nulls Always First).
a. Column - Select a column.
b. Direction - Select Descending or Ascending.
c. Nulls - Select First or Last.
03. To add another sort rule, click the Add button (+).
04. Click Save.
05. Click Report
06. Click Save
交互式网格重新加载。
注意:要确保您是登录开发者模式,否则无法显示其他用户