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 ""; }
浙公网安备 33010602011771号