【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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章