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

时间:2018-11-03 14:04:55

标签: oracle oracle-apex

我已使用下面的代码通过动态操作成功实现了班车列表

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 个答案:

答案 0 :(得分:0)

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

下一步是将它们取回。为此,

  • 导航到穿梭物品的 source 属性
  • 将其类型设置为“ SQL查询(返回冒号分隔的值)
  • SQL查询应如下所示:

    select listagg(col2, ':') within group (order by null)
    from xxtest
    where ... --> include condition, if there is any - I believe it should
    
  • 将“已使用”属性设置为“始终替换会话状态下的任何现有值

运行页面;现在,穿梭物品的右侧应已填充。

where子句开始:我不知道做自己的工作的目的是什么,但是-如果您不区分存储在xxtest表中的行,则全部用户将使用相同的记录集并覆盖彼此的数据。如果xxtest.col1代表用户名(因此不是:P14_NEW,而是:APP_USER),则应在WHERE子句中使用它。否则,请考虑这样做。