Oracle Apex 18 穿梭项目在右侧显示最后选择的值

Posted

技术标签:

【中文标题】Oracle Apex 18 穿梭项目在右侧显示最后选择的值【英文标题】:Oracle Apex 18 shuttle item show last selected values on right side 【发布时间】:2018-11-03 14:04:55 【问题描述】:

我已经使用下面的代码成功实现了穿梭列表

declare
    tab apex_application_global.vc_arr2;
begin
    tab := apex_util.string_to_table (:P14_NEW_1);
    for i in 1..tab.count loop
        insert into xxtest (COL1, COL2)
        values (:P14_NEW, tab(i));
    end loop;
    commit;
end;

问题是每次用户打开表单时,它都不会在右侧显示最后选择的值,我不明白这个逻辑如何在页面加载时将选定的项目显示为保存在表格中的右侧

【问题讨论】:

【参考方案1】:

您完成了工作的第一部分 - 将选定的值存储到表中。

下一步是取回它们。为了做到这一点,

导航到航天飞机项目的来源属性 将其类型设置为“SQL 查询(返回冒号分隔值)

SQL 查询应如下所示:

select listagg(col2, ':') within group (order by null)
from xxtest
where ... --> include condition, if there is any - I believe it should

将“Used”属性设置为“始终,替换会话状态中的任何现有值

运行页面;穿梭项目现在应该已填充到右侧。

截至where 子句:我不知道你在做什么的目的是什么,但是 - 如果你不区分存储到xxtest 表中的行,所有用户都将使用相同的记录集并覆盖彼此的数据。如果xxtest.col1 代表用户名(这样就不会是:P14_NEW 而是:APP_USER),你应该在WHERE 子句中使用它。否则,请考虑这样做。

【讨论】:

col1 是 deptno,我正在从 Dept Table 的选择列表中过滤穿梭项目,并将 Depno 存储到 col1 为:P14_NEW,,,根据您的建议,我现在在穿梭的右侧显示 depno itme 而不是部门名称 我正在刷新 Shuttle 项目,当 Select List of Departments 发生更改且未显示所选值时

以上是关于Oracle Apex 18 穿梭项目在右侧显示最后选择的值的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Apex:Shuttle 没有将价值放在右侧并提供 null

如何在交互式网格上显示所有数据,然后使用 oracle_apex 上的穿梭过滤器减少它?

Oracle Apex 4.1 复选框更新穿梭

穿梭列上的 Oracle APEX 交互式网格过滤器 APEX 19.2

如何在 Oracle Apex 中过滤给定单词的穿梭列表?

APEX 4.1 - 基于右面板填充数据库