如何仅使用 sql 在 apex oracle 的交互式网格中实现选择列表以及 oracle APEX 中可用的内容?

Posted

技术标签:

【中文标题】如何仅使用 sql 在 apex oracle 的交互式网格中实现选择列表以及 oracle APEX 中可用的内容?【英文标题】:How can I implement a select list in apex oracle's interactive grid using only sql and what's available in oracle APEX? 【发布时间】:2021-06-02 13:29:16 【问题描述】:
ID Material Material_Num User Assign User
1 stick 1111 Billy Bob "select list of users"
2 stone 1112 Jane Doe "select list of users"
3 rock 1113 John Deer "select list of users"
4 slab 1114 "select list of users"
5 brick 1115 "select list of users"

会有一个保存按钮,它将使用分配用户列中的值更新用户列。如果选择列表可以合并到用户列下并保持更新的值就更好了。

这些是我到目前为止所采取的步骤:

    向页面添加了交互式网格。 创建了一个查询来填充交互式网格。
SELECT DISTINCT
       MD.ID,
       MD.MATERIAL,
       MD.MATERIAL_NUMBER,
       FIRST_NAME || ' ' || LAST_NAME USER,
       USER AS DISPLAY_VALUE
  FROM MATERIAL_DATA MD
 INNER JOIN MATERIAL_OWNER_DATA MOD
       ON MD.USER = MOD.OWNER
    添加了一个名为“保存交互式网格数据”的过程以使网格可编辑 在交互式网格中添加了分配用户列。 使 assign_user 列可编辑并将其更改为选择列表。
SELECT
    T1.DISPLAY_VALUE as DISPLAY_VALUE
FROM (
        ( SELECT
            TM.FIRST_NAME || ' ' || TM.LAST_NAME as DISPLAY_VALUE,
            upper(TM.NUMBER) as RETURN_VALUE,
            1 as ORD
        FROM 
            TEAM_MEMBERS TM
        WHERE
            TM.NUMBER IS NOT NULL
            AND TM.BOOL = 'Y'
        )
        UNION ALL
        ( SELECT
            'Not Required' as DISPLAY_VALUE,
            'Not Required' as RETURN_VALUE,
            0 as ORD
        FROM DUAL
        )
    ORDER BY 3, 1
) T1

    将 assign_user 列添加到我的交互式网格的 select 语句中。

到目前为止,我还没有看到将选择列表添加到网格的分步方法。我可能过度简化了我的过程,但这是我描述它的最佳方式。如果回答这个问题太麻烦,也可以提供一个好的来源的链接。

我的公司不允许使用 css 或 javascript,因此必须严格使用 sql 以及 apex_oracle 中已有的内容来完成。

【问题讨论】:

如果您发布“我得到的具体错误是 display_value 不在源数据中,所以关于我如何尝试执行此操作的某些内容是错误的,这可能会有所帮助。 " @Littlefoot 我更新了我的问题,但我还是新手。所以很难为我的具体问题添加上下文。我认为很可能我错过了一个简单的实施步骤,但我不知道所有步骤是什么。 好吧,LoV 查询必须恰好包含两个值:显示值(例如“名称”)和返回值(例如“ID”)。我不知道您的查询是否包含该内容。 在 apex.oracle.com 上创建一个临时工作区并在 emp/dept 架构上使用一个非常简单的测试用例来说明您的问题可能会很有用。然后,您可以在此处共享测试用户的凭据。 你的 apex 版本是什么? 【参考方案1】:

您发布的第二个查询应该是

SELECT t1.display_value, t1.return_value FROM (...) t1 

(至少在我看来是这样)。

【讨论】:

以上是关于如何仅使用 sql 在 apex oracle 的交互式网格中实现选择列表以及 oracle APEX 中可用的内容?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Apex:如何将表单中的数字字段限制为仅允许数字?

仅显示项目的 Oracle APEX 格式掩码

如何防止sql注入oracle apex

交互式网格:仅使用不基于表的 PL/SQL 处理

如何从 Windows 批处理执行驻留在 Oracle APEX 上的 SQL 脚本

不能在 sql 查询 APEX ORACLE 中使用绑定变量作为表名