2

P1_checkbox在 Oracle APEX 中创建了一个项目,使用LOV(select ename, empno from emp WHERE ename LIKE 's%';)它提供了多个复选框。
当我选中这些框时,我想INSERT将选中的框数据放入另一个表中"emp_selected"

然后,当我再次登录应用程序时,应用程序现在应该根据插入表中的数据以及表"emp_selected"中未选中的框"emp" 以及当我取消选中一些预选的复选框并选中新复选框时勾选(选中)复选框,应在 中相应更新"emp_selected"

我的 Oracle APEX 版本是 4.2。

4

2 回答 2

2

带有多个复选框的顶点复选框会将其状态保存为所有选定值用冒号相互连接,例如One:Two:Three.
所以你必须分离这些值,循环它们,然后保存它们。
您需要正确配置您的复选框源。
查看我设置的示例页面(apex_demo/demo)

我所有的设置也在那个页面上。为了这个例子,我使用一个顶点集合来模拟一个存储值的表。原理是完全相同的——您只需要根据您的选择来适应您的餐桌。

复选框 LOV SQL:

select ename, empno from emp

复选框源设置:

来源:Always - SQL Query 返回冒号分隔值

select c001
from apex_collections
where collection_name = 'CHECKBOX_EXAMPLE'

这将采用所有选定的值并用冒号将它们连接起来。复选框将采用这些值并将它们标记为被选中。

提交后流程:

DECLARE
    l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
  apex_collection.create_or_truncate_collection('CHECKBOX_EXAMPLE');
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P37_CHECKBOXES);
    FOR z IN 1..l_vc_arr2.count LOOP
        apex_debug.message(l_vc_arr2(z));
        apex_collection.add_member(p_collection_name => 'CHECKBOX_EXAMPLE', p_c001 => l_vc_arr2(z));
    END LOOP;
END;
于 2015-04-16T09:43:57.987 回答
0

如果要在特定检查事件上插入数据,则可以使用 Ajax 回调和按需运行流程。它将从 JavaScript 代码中获取调用。你可以参考这个博客:http ://warp11.nl/2011/04/execute-page-process-with-ajax-callback/

于 2015-04-15T08:01:05.193 回答