Note: You need two grid regions
1. Main Grid Region
2. Modal Grid Region for Data Selection
Step: 1
=====
Select the Main Grid Region, then Create Custom Button.
Grid Static ID: detailsid
So, Go to Region --> Attributes.
Initialization JavaScript Function:
function(config) {
let $ = apex.jQuery,
toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
toolbarGroup = toolbarData.toolbarRemove("actions3");
toolbarData.push(
{
groupTogether: false,
align: "start",
controls: [
{
type: "BUTTON",
action: "saveaction",
id: "saveid",
label: "Choose Request Order",
hot: true
}
]
}
);
config.initActions = function (actions) {
actions.add({
name: "saveaction",
action: function () {
let agnCom = $v('P31_ASSIGEN_COMPANY_ID');
if (agnCom) {
apex.region('Show_modal').refresh();
openModal('Show_modal'); // Static ID for input modal region
} else {
apex.message.alert('At first select Agent Company!');
}
},
});
}
config.toolbarData = toolbarData;
return config;
}
Step: 2
=====
Create A new Modal Grid Region for Data selection.
Grid Static ID: Show_modal
Create a Custom Button.
So, Go to Region --> Attributes.
Initialization JavaScript Function:
function(config) {
let $ = apex.jQuery,
toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
toolbarGroup = toolbarData.toolbarRemove("actions2");
toolbarGroup = toolbarData.toolbarRemove("actions3");
toolbarData.push(
{
groupTogether: false,
align: "start",
controls: [
{
type: "BUTTON",
action: "details_action",
id: "details_action_id",
label: "Submit",
hot: true
}
]
}
);
config.initActions = function (actions) {
actions.add({
name: "details_action",
action: function () {
f_po_details_populate(); // function call from global variable
},
});
}
config.toolbarData = toolbarData;
return config;
}
Go to Function and Global Variable Declaration:
// for submit button click, then put data Target Main region
function f_po_details_populate() {
let gridView = apex.region("Show_modal").widget().interactiveGrid("getViews").grid; //Input Modal region static id
let records = gridView.getSelectedRecords();
let model = gridView.model;
let widget2 = apex.region('detailsid').widget(); // Target main region static id
let grid2 = widget2.interactiveGrid('getViews', 'grid');
let model2 = grid2.model;
if (records.length > 0) {
$.each(records, function (i, r) { // loop start modal grid data
meta = model.getRecordMetadata(model.getRecordId(r))
if (!meta.agg) {
let v_id = model.getValue(r, 'ID'); //Input Modal grid pk id
let v_req_number = model.getValue(r, 'REQ_NUMBER');
let v_sim_operator_id = model.getValue(r, 'SIM_OPERATOR_ID');
let v_approved_qty = model.getValue(r, 'APPROVED_QTY');
model2.insertNewRecord(); //model2=Target main region
id = model2._data[0][0];
let record = model2.getRecord(id);
meta2 = model2.getRecordMetadata(model.getRecordId(record));
if (!meta.agg) {
model2.setValue(record, "SIM_REQ_DTL_ID", v_id);
model2.setValue(record, "REQ_NUMBER", v_req_number);
model2.setValue(record, "OPERATOR_NAME", v_sim_operator_id);
model2.setValue(record, "QTY", v_approved_qty);
}
}
});
$("#" + "Show_modal").dialog("close"); // for closing Input modal dialog
} else {
apex.message.alert("Please select at least one record.");
}
}