【CRM】在筛选子网格的时候报错Cannot read property 'SetParameter' of undefined

最近接到一个开发任务,需要在主档上筛选子网格,但是在写的过程中有个有意思的bug,特意记录一下:

1、使用常规方法获取子网格

使用微软官方代码获取子网格会报错Cannot read property ‘SetParameter’ of undefined,不清楚是不是当前版本的CRM不支持的原因

//获取子网格
var subgrid = Xrm.Page.getControl("new_purchase_order_id").getGrid();

错误图片

2、使用非常规方法获取子网格

当使用非常规方法获取子网格时,不会报错

//获取子网格
var subgrid = window.parent.document.getElementById("new_purchase_order_id");

正确图片

以下是完整代码:

//显示关联本记录的LC付款方式的且【业务审批表】.{审核状态}==“审核中”或“已审核”的业务审批单,即显示占用LC额度的订单
function filter_new_purchase_order() {
    //获取子网格
    var subgrid = window.parent.document.getElementById("new_purchase_order_id");
    //var subgrid = Xrm.Page.getControl("new_purchase_order_id").getGrid();
    if (subgrid == null) {
        setTimeout(function () {
            filterSubGrid();
        }, 2000); //如果为空再加载
        return;
    }

    //获取所对应的信用证号
    var new_name = rtcrm("#new_name").val();
    var new_letter_credit = rtcrm.retrieve("new_letter_credits?$filter=new_name eq " + "'" + new_name + "'", false);
    var new_letter_credit_id = new_letter_credit.value[0].new_letter_creditid.replace("{", "").replace("}", "");

    //构造fetch查询
    var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>\
                            <entity name='new_purchase_order'>\
                                <attribute name='new_purchase_orderid' />\
                                <attribute name='new_name' />\
                                <attribute name='createdon' />\
                                <order attribute='new_name' descending='false' />\
                                <filter type='and'>\
                                    <condition attribute='new_approvalstatus' operator='in'>\
                                        <value>2</value>\
                                        <value>3</value>\
                                    </condition>\
                                </filter>\
                                <link-entity name='new_lc_for_order' from='new_purchase_order_id' to='new_purchase_orderid' alias='aa'>\
                                    <filter type = 'and'>\
                                        <condition attribute='new_letter_credit_id' operator='eq' value='"+ new_letter_credit_id + "' />\
                                    </filter>\
                                </link-entity>\
                            </entity>\
                        </fetch>";

    //执行筛选逻辑
    subgrid.control.SetParameter("fetchXml", fetchXml);
    subgrid.control.refresh();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值