Predefine Number wise Data/Row Insert in Interactive Grid (by Ajax Callback)

 


First Look at the picture.
I want to Data/Row Insert Predefine number-wise

==========================================

Step 1:
====

Create Two Interactive Grid Regions.
1. 
Predefine number Region. --- Static ID: Show_Dept
2. 
Predefine number Wise Data Insert Region. --- Static ID: details_add


Create a column in Predefine number Region 
(
column Name: DETAILS_ADD Static ID:  DETAILS_ADD ).

Type: Link
Target: URL
URL: javascript:f_insernumberwise('&ID.');
                  (Note- &ID. this is PK Id for another table FK)

Function and Global Variable Declaration:

function f_insernumberwise(v_id) {  // v_id = &ID. -- PK

    let reqDtl = v_id;

    apex.server.process("AJAX_INSERT", {

        x01: reqDtl

    }, {

        dataType: "json",

        success: (pdata) => {

            if (pdata.status == 200) {

                f_selectRecordCell("Show_Dept", v_id, DETAILS_ADD); // Region & Button/Column Static ID

                $s('P19_SIM_REQ_DTL_ID', v_id); //  PK ID put in Apex item

                apex.region('details_add').refresh(); // Approved details region open

                // $("#" + "details_add").dialog("open");

                openModal('details_add');                

                $("#details_add_ig_toolbar_search_field").focus(); // Select search ber when grid open

                //apex.region('details_add').widget().interactiveGrid('getViews', 'grid').model.clearChanges();

                //apex.region("details_add").refresh();

            }

            else {

                apex.message.clearErrors();

                apex.message.showErrors({ type: "error", location: "page", message: "Unable to add." + pdata.status, unsafe: false });

            }

        },

        error: (r) => { console.log(r) }

    })

}


function f_selectRecordCell(p_region_id, p_rec_id, p_column_name) {

    var ig = apex.region(p_region_id).widget().interactiveGrid("getViews", "grid");

    ig.view$.grid("gotoCell", p_rec_id, p_column_name);

}

Step 2:
=====

Create Ajax Callback Process.
Name: 
AJAX_INSERT
PLSQL Code:

DECLARE
    CURSOR C_COUNTDTL IS
           SELECT   COUNT (SIM_REQ_DTL_ID)     TOTAL_PREV_SIM
           FROM      SIM_REQ_ICCID
           WHERE    SIM_REQ_DTL_ID = APEX_APPLICATION.g_x01;

 R_COUNTDTL    C_COUNTDTL%ROWTYPE;

    CURSOR C_REQDTL IS

        SELECT ID,
               SIM_REQ_MST_ID,
               SIM_OPERATOR_ID,
               REQ_QTY,
               APPROVED_QTY,
               NVL (REQ_QTY, 0) - NVL (APPROVED_QTY, 0)     BALANCE
          FROM SIM_REQ_DTL
         WHERE ID =APEX_APPLICATION.g_x01;

  

    R_REQDTL     C_REQDTL%ROWTYPE;

BEGIN

      OPEN    C_COUNTDTL;
      FETCH   C_COUNTDTL     INTO   R_COUNTDTL;
      CLOSE   C_COUNTDTL;


      OPEN    C_REQDTL;
      FETCH   C_REQDTL          INTO   R_REQDTL;
      CLOSE   C_REQDTL;


    FOR i IN 1 .. NVL(R_REQDTL.APPROVED_QTY,0) - NVL (R_COUNTDTL.TOTAL_PREV_SIM, 0)  --- -1

    LOOP

        INSERT INTO SIM_REQ_ICCID
                                  (
                                   ID,
                                   SIM_REQ_MST_ID,
                                   SIM_REQ_DTL_ID,
                                   SIM_OPERATOR_ID,
                                   STATUS,
                                   COM_ID,
                                   CREATOR,
                                   CREATED_ON)

             VALUES          (
                                  SIM_REQ_ICCID_SEQ.NEXTVAL,
                                  R_REQDTL.SIM_REQ_MST_ID,
                                  R_REQDTL.ID,
                                  R_REQDTL.SIM_OPERATOR_ID,
                                  1,
                                 :GCOM_ID,
                                 :GUSER_ID,
                                  TO_CHAR (SYSDATE, 'DD-MON-RRRR HH24:MI:SS'));

    END LOOP;

 COMMIT;

    APEX_JSON.OPEN_OBJECT;
    APEX_JSON.WRITE ('status', 200);
    APEX_JSON.CLOSE_ALL;

EXCEPTION
    WHEN OTHERS    THEN
        APEX_JSON.OPEN_OBJECT;
        APEX_JSON.WRITE ('status', SQLERRM);
        APEX_JSON.CLOSE_ALL;

END;

Data Inserted

Post a Comment

Previous Post Next Post