我在Oracle APEX中使用P1_checkbox
创建了一个项目LOV(select ename, empno from emp WHERE ename LIKE 's%';)
,它提供了多个复选框。
当我勾选这些复选框时,我想将INSERT
复选框数据放入另一个表格"emp_selected"
。
然后,当我再次登录应用程序时,应用程序现在应该根据插入到表"emp_selected"
中的数据以及表"emp"
中未选中的框以及何时勾选(选中)复选框我取消选中一些预先选中的复选框并选中新复选框,应在"emp_selected"
中相应更新。
我的Oracle APEX版本是4.2。
答案 0 :(得分:2)
带有多个复选框的顶点复选框将保存其状态,因为所有选定值都用冒号连接在一起,例如One:Two:Three
。
因此,您必须分离这些值,循环它们并保存它们
您需要正确配置您的复选框来源
See the sample page I set up(apex_demo / demo)
我的所有设置都在该页面上。为了示例,我使用apex集合来模拟存储值的表。原理完全相同 - 您只需要根据自己的选择适应您的桌面。
Checkboxes LOV SQL:
select ename, empno from emp
复选框来源设置:
来源:始终 - SQL查询返回冒号分隔值
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;
答案 1 :(得分:0)
如果要在特定检查事件上插入数据,则可以使用“按需运行”进程使用Ajax回调。这将从JavaScript代码调用。 您可以参考此博客:http://warp11.nl/2011/04/execute-page-process-with-ajax-callback/