1. 우선 버튼 클릭 이벤트에 IG에서 선택된 Row를 추출하여 페이지 아이템에 가지고 있고 request ID와 함께 submit 처리
var ig$ = apex.region("myStaticIGPOMST").widget();
var grid = ig$.interactiveGrid("getViews","grid");
var model = grid.model;
var selectedRecords = grid.view$.grid("getSelectedRecords");
var record1 = selectedRecords[0];
if( typeof record1 === 'undefined' || record1 === null || selectedRecords.length == 0){
apex.message.clearErrors();
apex.message.showErrors([{
type: "error",
location: ["page"],
message: "처리 전에 대상 내역을 먼저 체크하십시오.",
unsafe: false
}
]);
return false;
}
var vConfirm = confirm("선택한 것들 '주문대기' 처리하시겠습니까?");
if (!vConfirm) return false;
$s("P7_SELECTED_ROWS", "");
var selRecords = {"rows": []};
var selRecordsJSON;
$.each(selectedRecords, function(i, r) {
selRecords.rows.push({"PO_ID": grid.model.getValue(r, "PO_ID")});
});
selRecordsJSON = JSON.stringify(selRecords);
apex.page.submit({
request: "BTN_ODR",
set: {
"P7_SELECTED_ROWS": selRecordsJSON
},
showWait: true
});
2. 프로세스에서 해당 PL/SQL 처리
declare
....
l_values apex_json.t_values;
l_row_count PLS_INTEGER;
begin
IF :REQUEST != 'BTN_ODR' THEN RETURN; END IF;
apex_json.parse(p_values => l_values, p_source => :P7_SELECTED_ROWS);
l_row_count := apex_json.get_count(p_path => 'rows', p_values => l_values);
FOR i IN 1..l_row_count LOOP
l_poid := null;
l_poid := TO_NUMBER(apex_json.get_varchar2(p_path => 'rows[%d].PO_ID', p0 => i, p_values => l_values));
......
END LOOP;
end;
참고
https://fos.world/ords/f?p=10000:2020:::NO:::
https://srihariravva.blogspot.com/2019/02/interactive-grid-bulk-operation.html
http://robertsondas.com/apexor//f?p=116:700::::::
http://orclking.blogspot.com/2020/11/save-selected-interactive-grid-records.html
https://srihariravva.blogspot.com/2019/02/interactive-grid-bulk-operation.html
:REQUEST
https://community.oracle.com/tech/developers/discussion/4315418/how-to-get-request-name-of-the-clicked-submit-button-when-clicked-using-javascript-or-jquery
댓글 없음:
댓글 쓰기