20230114 - IG 선택된 여러 Row에 대한 PL/SQL 프로세스 처리

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


댓글 없음:

댓글 쓰기

20250202 - IG 다운로드 버튼 바로 보이기

JS initialization Code : function (config) {     var $ = apex.jQuery,         toolbarData = $.apex.interactiveGrid.copyDefaultToolbar(),  ...