1- For SubGrid
write the following JS code in the page load of CRM form:
function SubGridOnload() {
//debugger;
var grid = Xrm.Page.ui.controls.get('SubGrid_Name')._control;
var sum = 0.00;
if (grid.get_innerControl() == null) {
setTimeout(subGridOnload, 1000);
return;
}
else if (grid.get_innerControl()._element.innerText.search("Loading") != -1) {
setTimeout(subGridOnload, 1000);
return;
}
var ids = grid.get_innerControl().get_allRecordIds();
var cellValue = "";
for (i = 0; i < ids.length; i++) {
if (grid.get_innerControl().getCellValue('cit_monthlyamount', ids[i]) != "") {
cellValue = grid.get_innerControl().getCellValue('Filed_To_Sum', ids[i]);
cellValue = (cellValue.substring(4)); //.replace(".00", "");
var number = Number(cellValue.replace(/[^0-9\.]+/g, ""));
sum = parseFloat(sum) + parseFloat(number);
}
}
Xrm.Page.getAttribute("Field_To_Set_The_Sum").setValue(sum.toString());
}
2- For Home Grid:
function GetFieldSum() {
//debugger;
var sum = 0.00;
var MonthlyAmountField_index = 0;
if (window.document.getElementById('gridBodyTable') != null) {
var gridBar = window.document.getElementById('gridBodyTable');
if (gridBar != null && gridBar != "undefined") {
var headers = gridBar.getElementsByTagName('TH');
for (var index = 0; index < headers.length; index++) {
var header = headers[index];
switch (header.innerText) {
case "Monthly Amount":
MonthlyAmountField_index = index;
break;
default:
break;
}
}
}
if (MonthlyAmountField_index != 0) {
//Get the Grid records
var cellValue = "";
var GridCtrl = window.document.getElementById('gridBodyTable');
for (var i = 1; i < GridCtrl.rows.length; i++) {
var cellObj = GridCtrl.rows[i].cells[MonthlyAmountField_index];
if (cellObj != null) {
cellValue = cellObj.innerText;
cellValue = (cellValue.substring(4));
var number = Number(cellValue.replace(/[^0-9\.]+/g, ""));
sum = parseFloat(sum) + parseFloat(number);
}
}
}
}
var ItemsSelectedInfo=window.document.getElementById('crmGrid_ItemsSelectedInfo');
if (ItemsSelectedInfo != null) {
var FieldDataSum = window.document.getElementById('crmGrid_FieldDataSum');
if (FieldDataSum == null) {
var label = document.createElement('span');
label.id = "crmGrid_FieldDataSum";
label.style.backgroundColor = 'yellow'
label.innerHTML = " <b>Total=</b>" + sum.toString();
ItemsSelectedInfo.appendChild(label);
}
//alert(sum);
}
}
ليست هناك تعليقات:
إرسال تعليق