Oracle Apex 5.1:基于 LOV(值列表)的报告列显示返回值而不是显示值

Posted

技术标签:

【中文标题】Oracle Apex 5.1:基于 LOV(值列表)的报告列显示返回值而不是显示值【英文标题】:Oracle Apex 5.1: Report column based on LOV(List of values) showing returned value not display value 【发布时间】:2017-04-12 10:30:52 【问题描述】:

我创建了一个带有表单的交互式报告。在表格中,我有两个选择列表。第一个选择列表是在共享组件中定义的值列表。第二个选择列表是另一个值列表,它也在共享组件中定义,但此选择列表根据第一个选择列表中的选定项目填充其 LOV。

设选择列表的名称为:

    地区。 国家(取决于地区字段中的所选项目)。

现在,当我在表单中按下保存/创建按钮时,会在报告中创建一行。报告中的 Region 列和 Country 列都是“纯文本(基于值列表)”。但我看到的是 Region 列显示了 LOV 的正确显示值,但 Country 列显示了 LOV 的返回值。

我希望这两列都显示显示值而不是返回值。谁能帮我找到解决办法?

【问题讨论】:

【参考方案1】:

您是否在表单和交互式报告中使用相同的 LOV?如果是这样,并且在有条件的 LOV(国家)中,您引用了您的表单项(例如 PX_REGION),它将无法在 IR 中正常工作。可能 IR 正在显示返回值,因为选中了“显示额外值”选项。

如果是这种情况,我的建议是更改您的 IR,而不是“纯文本(基于值列表)”,您将其设为纯文本并将查询更改为 IR 查询中的内联查询以获得值你想展示。

如果您不想/喜欢将您的 LOV 查询放在不同的地方,我建议您使用 this approach shared by Nick Buytaert

希望这可以帮助您解决问题。

【讨论】:

你是对的@hmarques。我在表单和产生问题的 IR 中使用了相同的 LOV。我已阅读您的链接,当我需要表单中的多个条件 LOV 时,该链接非常有用。但我无法理解如何引用报告的列以将列值作为参数传递。现在,我创建了另一个 LOV,它列出了所有国家并从报告中的相应列中引用它。感谢您的大力帮助。 当您想在多个页面中使用条件 LOV 而不是在查询中使用时,共享链接非常有用。您的 IR 查询可以使用内联查询或创建函数来返回所需字段的描述值,例如 FUNCTION f_get_country (p_id IN country_table.id%TYPE) RETURN country_table.desc%TYPE AS v_country_desc country_table.desc%类型; BEGIN SELECT desc into v_country_desc from country_table where id = p_id;返回 v_country_desc;结束 fun_get_languages;注意:内联查询会有更好的性能。

以上是关于Oracle Apex 5.1:基于 LOV(值列表)的报告列显示返回值而不是显示值的主要内容,如果未能解决你的问题,请参考以下文章

交互式报表 Oracle Apex 5 上的 LOV

Oracle APEX 数据网格 LOV 在单击之前不显示显示名称

Oracle Apex - 逗号分隔的 LOV

Oracle Apex 根据 LOV 选择的值动态启用/禁用文本字段

在 oracle apex 20 中仅显示表中显示来自 LOV 的显示值而不是 id

Oracle Apex - 如何使用动态操作更新更改操作的值列表?