Apex IR 多选批量处理后页面局部刷新

数据源sql

  1. 创建复选框

apex_item文档

1
2
3
4
5
6
7
8
9
10
11
12
select EMPNO,
ENAME,
APEX_ITEM.CHECKBOX2(1,EMPNO) as CHECKBOX2,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO,
DNAME,
LOC
from EMP_DEPT_V
  1. 设置全选

CHECKBOX2列 列名标题设置为
<input type="checkbox" onclick="javascript:$f_CheckAll(this, this.checked, $('[name=f01]'));">

隐藏一切用户操作并取消转义

设置Ajax回调

  1. 创建Ajax回调处理名字GET_ID_INTO_COLL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
declare
l_exists boolean;
begin
/*
l_exists := APEX_COLLECTION.COLLECTION_EXISTS(
p_collection_name => 'USER_CHOOSE_DATA_ID');
if not l_exists then
APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name => 'USER_CHOOSE_DATA_ID'
);
end if;
*/
-- 清空
APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name => 'USER_CHOOSE_DATA_ID'
);
-- 插入前台传的值
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT
LOOP
APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'USER_CHOOSE_DATA_ID',
p_c001 => APEX_APPLICATION.G_F01(i));
end loop;
-- 响应前台的请求
apex_json.open_object; -- {
apex_json.close_all; -- }


end;

设置动态操作

  1. 创建批量处理按钮设置重定向弹框页并设置两个动态事件(关闭对话框刷新,点击事件)

官网文档

参考博客文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 获取选中的数据 并写入列表
var f01_arr = [];
jQuery("input[name=f01]:checked").each(
function (i) {
f01_arr[i] = $(this).val();
}
)
// 同步请求后台将 选中的ID插进集合
apex.server.process("GET_ID_INTO_COLL", {
f01: f01_arr
}, {async: false, // 一定要关闭异步
success: function( data ) {
// do something here
},
error: function( jqXHR, textStatus, errorThrown ) {
// handle error
}
}
);

弹框页设置

  1. 查询选中的数据

    select C001
    from APEX_COLLECTIONs where collection_name =’USER_CHOOSE_DATA_ID’;

  2. 页项

根据自己的业务要求 此处省略

  1. 批量处理

根据自己的业务要求 此处省略

  1. 设置对话框关闭处理