JavaScript无法解释的失败CRM 2013

时间:2016-11-11 10:58:30

标签: javascript function dynamics-crm-2013

我将以下内容应用为CRM 2013表单的库

    function calcServicePriceTotal() {
alert("Start");//----------HERE
if (document.getElementById("Services")) {
        alert("InsideIf");  //----------HERE
    var grid = document.getElementById("Services").control;
        alert("ThisFar?");//----------HERE
    var ids = grid.Control.get_allRecordIds()
        alert("ThisFar2?");//----------HERE
    for (i = 0; i < ids.length; i++) {
            alert("InsideFor");//----------HERE
       var cellValue = grid.control.getCellValue('iss_salesprice', ids[i]);
       var number = Number(cellValue.replace(/[^0-9\.]+/g, ""));
       sum = sum + number;
   }
   Xrm.Page.data.entity.attributes.get("ava_tempgrossvalue").setValue(sum);
   alert("Done");//----------HERE
}
else {
    alert("Else");//----------HERE
    setTimeout("calcServicePriceTotal();", 2500);
}
}

出于某种原因,我到了alert("ThisFar?")行,但没有其他事情发生。

这是否意味着var ids = grid.Control.get_allRecordIds()存在问题?我不知道为什么我至少没有看到&#34; ThisFar2&#34;。

任何人都能看到明显的东西吗?

1 个答案:

答案 0 :(得分:0)

    function calcServicePriceTotal() {
    if (document.getElementById("Services")) {
        var grid = document.getElementById("Services").control;
        var ids = grid.get_allRecordIds()
        var sum = 0
        for (i = 0; i < ids.length; i++) {
           var cellValue = grid.getCellValue('iss_salesprice', ids[i]);
           var number = Number(cellValue.replace(/\D/g, ''));
           number = number/100;
           sum = sum + number;
       }
       Xrm.Page.data.entity.attributes.get("iss_value").setValue(sum);
    }
    else {
        setTimeout("calcServicePriceTotal();", 1500);
    }
}

最终工作解决方案