Total Sum,Avg,Count Column Wise
Step: 1
=====
Create Interactive Grid and SQL Query Change for Automatic Total value show 0.
SQL Query:
select ID,
RETURN_BILL,
PRODUCT_ID,
QTY,
ENTRY_BY,
ENTRY_DATE,
UPDATE_BY,
UPDATE_DATE,
ANIMAL_TYPE,
AMOUNT,
'row-show' ROW_SHOW_HIDE
from PURCHASE_RETURN_DETAILS
where RETURN_BILL=:P28_RETURN_BILL
union all
select
-100 ID,
null RETURN_BILL,
null PRODUCT_ID,
null QTY,
null ENTRY_BY,
null ENTRY_DATE,
null UPDATE_BY,
null UPDATE_DATE,
null ANIMAL_TYPE,
null AMOUNT,
'row-hide' ROW_SHOW_HIDE
from dual;
Note: You can not hide ROW_SHOW_HIDE column. But you can do Custom Attributes --> readonly
------------------------------------------------------------
Select ROW_SHOW_HIDE Column and
Go to Column Initialization JavaScript Function
function(options) {
options.defaultGridColumnOptions = {
cellCssClassesColumn: "ROW_SHOW_HIDE"
}
return options;
}
Step:2
=====
Inline CSS:
tr:has(.row-hide){
display: none!important;
}
.a-GV-row.is-aggregate.a-GV-aggregate--SUM.is-grandTotal {
bottom: 0!important;
position: sticky!important;
z-index: 101;
}
Step:2
=====
Select Column Which Column (My column AMOUNT)
Column Initialization JavaScript Function:
function(options) {
options.defaultGridColumnOptions = {
aggregates: ["SUM"]
};
return options;
}
====Grand Total (Sum, Avg, Count) Show runtime in Apex Item=====
Step:1
=====
Select "Amount" Column in Grid Region.
Create Dynamic Action:
Event: Key Release
Action: Execute Javascript Code :
Code:
function getdefectqty() {
// 1. Save cursor position
let activeInput = document.activeElement;
let cursorPos = 0;
if (activeInput && activeInput.selectionStart !== undefined) {
cursorPos = activeInput.selectionStart;
}
let sumWrongInfo = 0;
let sumv_qty = 0;
let ig$ = apex.region("PRODUCT_GRID").widget();
let grid = ig$.interactiveGrid("getViews", "grid");
// 2. commit change (this causes jump)
grid.view$.grid("finishEditing");
let model = grid.model;
model.forEach(function (r) {
let meta = model.getRecordMetadata(model.getRecordId(r));
if (!meta.agg) {
let wrongInfo = model.getValue(r, "UNIT_PRICE") || 0;
sumWrongInfo += Number(wrongInfo);
let v_qty = model.getValue(r, "QUANTITY") || 0;
sumv_qty += Number(v_qty);
}
});
$s("P12801_TOTAL_AMOUNT", sumWrongInfo);
$s("P12801_QTY", sumv_qty);
// 3. Restore cursor position (IMPORTANT)
setTimeout(function () {
if (activeInput && activeInput.setSelectionRange) {
activeInput.focus();
activeInput.setSelectionRange(cursorPos, cursorPos);
}
}, 0);
}
getdefectqty();
Step:2
=====
Select Grid Region.
STATIC id: PRODUCT_GRID