【问题标题】:return value than displayed value for a 'display only'page item in oracle apex 5.1返回值比 oracle apex 5.1 中“仅显示”页面项目的显示值
【发布时间】:2019-01-20 04:56:33
【问题描述】:

我可以有与“仅显示”页面项目的显示值不同的返回值吗?

我正在使用 Oracle APEX 5.1。我有一个“仅显示”页面项目,其来源是“sql 查询”(任何类似的都可以)。当查询结果为 null 时,我需要显示为 'Root' 。现在当我使用页面项进行其他计算时,我需要 null 值而不是显示值(即 'Root')。对于所有其他值(null 除外),我需要使用确切的值。

我们可以在 apex 中实现这一点吗?

【问题讨论】:

    标签: sql oracle oracle-apex oracle12c oracle-apex-5.1


    【解决方案1】:

    当使用Display only 类型的项目时,预计您将显示该项目的值(如果是null,则表示null,如果是Root,则表示Root)。

    你可以做的是:

    • 如果Root 在该列值中不存在,您可以在后面的计算中简单地处理当项目的值为Root 时的此类实例,例如DECODE(:P1_ITEM, 'Root',NULL, :P1_ITEM)。如果您的数据允许,这是最简单的方法,因为它不涉及其他对象。
    • 您可以创建第二个项目(键入hidden),这样您就有一个项目来显示您的值,而一个项目来存储您的真实值。然后你必须在你的 stored_value_item 上创建一个 dynamic action 来更改你的 display_value_item 并刷新它 on change of stored_value_item
    • 您可以将您的项目类型设为Select list,因为它允许您的项目具有不同的存储和显示价值。在这种情况下,您必须使用自定义 CSS 使项目箭头消失

    【讨论】:

    • 谢谢@Goran。但我有一种方法可以更轻松地做到这一点。
    【解决方案2】:

    这可以使用仅显示项的基于属性来实现。在这种情况下,将其设置为 PL/SQL 代码的输出,PL/SQL 代码为:

    htp.p(apex_escape.html(coalesce(:item_name), 'Root'));  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多