Dynamics 365 实现文本字段自定义多选查找类型

1.页面加载添加代码

SetCrmLookupInfo("new_internal_participant", "new_internal_participant_id", "equipment", "multi", null);

2.多选操作

function SetCrmLookupInfo(displayField, hideField, logicalName, lookupStype, filterXml) {

    window.parent.$("#" + displayField)
        .keydown(function (event) {
            return false;
        });
    window.parent.$("#" + displayField)
        .mousedown(function (event) {
            return false;
        });

    if (!Xrm.Page.ui.controls.get(displayField).getDisabled() && window.parent.$("#" + displayField) != null)
        window.parent.$("#" + displayField).unbind("click").click(function () { OpenCrmLookupInfo(displayField, hideField, logicalName, lookupStype, filterXml) });

}
function OpenCrmLookupInfo(displayField, hideField, logicalName, lookupStype, filterXml) {
    var savedValue = Xrm.Page.data.entity.attributes.get(hideField).getValue();

    var result = OpenLookupInfo(savedValue, logicalName, lookupStype, filterXml, function (result) {
        if (result != undefined && result != null) {

            var to = [];
            console.log(items);
            if (result.items != undefined && result.items != null) {
                if (result.items.length > 0) {
                    if (result != "") {
                        var fieldtxt = new Object();
                        var itemstxt = new Array();

                        var items = result.items;
                        var returntxt = "";
                        for (var i = 0; i < items.length; i++) {
                            var item = new Object();
                            item.id = items[i].id;
                            item.category = items[i].category;
                            item.type = items[i].type;
                            item.typename = items[i].typename;
                            item.name = items[i].name;
                            itemstxt.push(item);
                            to.push({ entityType: logicalName, name: items[i].name, id: items[i].id });
                            //returntxt += JSON.parse(items[i].keyValues)[displayEntityField].value + " ;";
                            returntxt += items[i].name + " ;";
                        }
                        fieldtxt.items = itemstxt;
                        //Xrm.Page.data.entity.attributes.get(displayField).setValue(to);
                        Xrm.Page.data.entity.attributes.get(displayField).setValue(returntxt);
                        Xrm.Page.getAttribute(displayField).setSubmitMode("always");
                        Xrm.Page.data.entity.attributes.get(hideField).setValue(JSON.stringify(fieldtxt));
                        Xrm.Page.getAttribute(hideField).setSubmitMode("always");
                        //$("#gw_approveuser_text").val(result);
                    }
                } else {
                    Xrm.Page.data.entity.attributes.get(displayField).setValue("");
                    Xrm.Page.getAttribute(displayField).setSubmitMode("always");
                    Xrm.Page.data.entity.attributes.get(hideField).setValue("");
                    Xrm.Page.getAttribute(hideField).setSubmitMode("always");
                }

                if (savedValue != Xrm.Page.data.entity.attributes.get(hideField).getValue()) {
                    Xrm.Page.getAttribute(hideField).fireOnChange();
                    Xrm.Page.getAttribute(displayField).fireOnChange();
                }
            }
        }
    });

}

function OpenLookupInfo(savedValue, logicalName, lookupStype, filterXml, callback) {
    var obj = new Object();
    obj.additionalFetchFilter = filterXml;
    obj.additionalFetchFilterTypes = "";
    obj.customViews = null;
    obj.availableViews = null;
    obj.items = new Array();
    if (savedValue != null && savedValue != "") {
        var mObj = JSON.parse(savedValue);
        if (mObj != null && mObj.items != undefined && mObj.items != null) {
            for (var i = 0; i < mObj.items.length; i++) {
                mObj.items[i].getAttribute = function (attrName) {
                    if (attrName == "oid") {
                        return this.id;
                    }
                    if (attrName == "category") {
                        return this.category;
                    }
                    if (attrName == "otype") {
                        return this.type;
                    }
                    if (attrName == "otypeName") {
                        return this.typename;
                    }
                };
                mObj.items[i].textContent = mObj.items[i].name;
                mObj.items[i].innerText = mObj.items[i].name;
            }
            obj.items = mObj.items;
        }
    }
    var typeCode = Xrm.Internal.getEntityCode(logicalName);
    var strURL = Xrm.Page.context.prependOrgName("/_controls/lookup/lookupinfo.aspx?AllowFilterOff=0&DefaultType=" + typeCode + "&DisableQuickFind=0&DisableViewPicker=0&IsInlineMultiLookup=0&LookupStyle=" + lookupStype + "&ShowNewButton=0&ShowPropButton=0&browse=false&dType=1&mrsh=false&objecttypes=" + typeCode);
    var oUrl = Mscrm.CrmUri.create(strURL);
    var dialogwindow = new window.parent.Mscrm.CrmDialog(oUrl, obj, 552, 552, false, false, "status:no;", null);
    dialogwindow.setCallbackReference(callback);
    dialogwindow.show()
    return "";
}

 

posted @ 2024-07-16 08:59  没有钱了怎么办  阅读(87)  评论(0)    收藏  举报