交互式网格中的默认排序顺序

Default Sort Order in Interactive Grid

我有一个交互式网格,我希望网格在顶部显示最新的日期记录。但是,Interactive Grid 不支持 SQL.

中的排序方式

有什么方法可以默认应用这些排序,而不是用户需要自己对这些报告进行排序?

此外,作为开发人员,我不想使用“保存报告”,因为我们的应用程序中有 400 多个报告。有没有可编程的方法来实现这个?

手动,您可以:

  • 打开 Oracle APEX Builder 并确保您以开发人员身份登录
  • 运行浏览器中带有交互式网格的页面并使用相同的凭据登录
  • 在一列(或多列)上应用排序
  • 点击'Actions'->'Report'->'Save'
  • 您应该会看到确认信息“为所有用户保存默认报告”

以编程方式,您不能:

在 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

交互式网格重新加载。

注意:要确保你是登录开发者模式,否则不会显示其他用户

您可以使用 WITH 子句从 IG 中“隐藏”ORDER BY 子句。

假设您的 select 是:

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;

您可以找到更多示例 here