带有多个复选框的顶点复选框会将其状态保存为所有选定值用冒号相互连接,例如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;