如何在 Oracle Apex 19.1 交互式网格中排序

How to sort in Oracle Apex 19.1 Interactive Grid

我在 18.c 平台上使用 Oracle Apex 19.1。 我有一个包含两个区域的页面:1) Interactive Grid 和 2) Interactive Report 我使用交互式网格来显示生产者名称列表。当用户 select 使用其中一个名称时,交互式报告会刷新并显示分配给该生产者的事件。我使用动态操作来更新交互式报告。 这一切都很好,除了交互式网格中的列表。它似乎按 table 的 PRIM_KEY 顺序显示名称,我想按姓氏对交互式网格进行排序。 IG 的源代码不接受 Order By 条款。

Select ac.first_name || ' ' || ac.last_name PRODUCER 
From aff_contact ac, aff_contact_role acr
Where ac.prim_key = acr.contact_fkey
And acr.role = 'Producer'
;

问题是,IG 工具栏的操作/数据/排序中的列名称从未填充。我想知道 Select 语句中的双列是否有问题,所以我用一个更简单的 Source:

查询来测试它
Select last_name 
From aff_contact
;

仍然没有生成 select 的列进行排序。我收到如下所示的屏幕:

Column select 字段没有可下拉的内容。这对原始查询和简化查询都适用。 如何让 IG 根据 LAST_NAME 字段排序?还有另一种方法可以实现这个目标吗? 感谢您观看此内容。

进一步检查后,似乎可以选择宽度 <= 99 的 VARCHAR2 列作为排序或控制中断。宽度 >= 100 的 VARCHAR2 列在交互式网格中不可用于排序或控制中断。

为了识别报告来源中的字段,我使用了以下语法: cast( first_name as varchar2(32)) "FIRST_NAME", cast( last_name as varchar2(32)) "LAST_NAME"

避免默认列宽。

按列排序:

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

交互式网格重新加载。

注意:确保列排序活动。确保你是登录开发者模式,否则不显示其他用户