CRM 的通用JS函数库
/*-说明:通用JS函数库//tab键从左到右。windows onload时调用 functionTabOrderLefttoRight() {for (var i = 0; i < crmForm.all.length; i++) {var element =crmForm.all[i];if (element.tabIndex && element.tabIndex != "0") {if (element.className == 'ms-crm-Hidden-NoBehavior')continue;if (element.tagName == 'A') {if (element.className != 'ms-crm-InlineTabHeaderText')continue; }element.tabIndex= 10000 + (i * 10); } } }/*根据实体主键值(entityGuid)查询指定实体(entityName)的一条记录 如:var resultObject=retrieveSingleEntity(ODataPath,"Account",accountid); var retrieved = resultObject.response; var statusText = resultObject.statusText;*/retrieveSingleEntity= function(ODataPath, entitySchemaName, entityGuid) {var retrieveReq = newXMLHttpRequest();//实体名称区分大小写,查询地址http://CRM应用服务器IP/CRM组织名/XRMServices/2011/OrganizationData.svc retrieveReq.open("GET", ODataPath + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set(guid'" + entityGuid + "')", false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); retrieveReq.send();var resultObject = newObject(); resultObject.statusText= null; resultObject.response= null;if (retrieveReq.statusText == "OK") { //OK为查询成功,否则查询异常 resultObject.statusText = "OK"; resultObject.response=JSON.parse(retrieveReq.responseText).d; }else{ resultObject.response=retrieveReq.responseText; }returnresultObject; }/*根据ODATA参数查询指定实体(entityName)的多条记录 如:var select=name,accountnumber; var filter=statecode/Value eq 0; var orderby=accountid; var expand=""; var top=2; var skip=2; var resultObject=retrieveMultipleEntity(ODataPath,"Account", select, filter, orderby, expand, top, skip); var retrieved = resultObject.response; var statusText = resultObject.statusText;*/ functionretrieveMultipleEntity(ODataPath, entitySchemaName, select, filter, orderby, expand, top, skip) {var retrieveParams = "";if (typeof (select) != "undefined" && select != null && select != "") { retrieveParams= retrieveParams + "&$select=" +select; }if (typeof (filter) != "undefined" && filter != null && filter != "") { retrieveParams= retrieveParams + "&$filter=" +filter; }if (typeof (orderby) != "undefined" && orderby != null && orderby != "") { retrieveParams= retrieveParams + "&$orderby=" +orderby; }if (typeof (expand) != "undefined" && expand != null && expand != "") { retrieveParams= retrieveParams + "&$expand=" +expand; }if (typeof (top) != "undefined" && top != null && top != "") { retrieveParams= retrieveParams + "&$top=" +top; }if (typeof (skip) != "undefined" && skip != null && skip != "") { retrieveParams= retrieveParams + "&$skip=" +skip; }if (retrieveParams != "" && retrieveParams != null) { retrieveParams= retrieveParams.substring(1, retrieveParams.length); }var retrieveReq = newXMLHttpRequest(); retrieveReq.open("GET", ODataPath + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set?" + retrieveParams, false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); retrieveReq.send();var resultObject = newObject(); resultObject.statusText= null; resultObject.response= null;if (retrieveReq.statusText == "OK") { //OK为查询成功,否则查询异常 resultObject.statusText = "OK"; resultObject.response=JSON.parse(retrieveReq.responseText).d; }else{ resultObject.response=retrieveReq.responseText; }returnresultObject; }/*创建一条实体实例记录 var AccountObject=new Object(); AccountObject.name="CRM客户"; var resultObject=createRecord(serverUrl,"Account",AccountObject); var retrieved = resultObject.response; var statusText = resultObject.statusText;*/ functioncreateRecord(serverUrl, entitySchemaName, entityObject) {var createReq = newXMLHttpRequest(); createReq.open("POST", serverUrl + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set", false); createReq.setRequestHeader("Accept", "application/json"); createReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); createReq.send(JSON.stringify(entityObject));var resultObject = newObject(); resultObject.statusText= null; resultObject.response= null;if (createReq.statusText == "Created") { //Created为创建成功,否则创建异常 resultObject.statusText = "OK"; resultObject.response=JSON.parse(createReq.responseText).d; }else{ resultObject.response=createReq.responseText; }returnresultObject; }/*更新一条实体实例记录 var entityGuid="00000000-0000-0000-0000-000000000000"; var AccountObject=new Object(); AccountObject.name="CRM客户"; var resultObject=updateRecord(serverUrl,"Account",entityGuid,AccountObject); var retrieved = resultObject.response; var statusText = resultObject.statusText;*/ functionupdateRecord(serverUrl, entitySchemaName, entityGuid, entityObject) {var resultObject = newObject(); resultObject.statusText= null; resultObject.response= null;if (entityGuid != null && entityGuid != "") {var updateReq = newXMLHttpRequest(); updateReq.open("POST", serverUrl + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set(guid'" + entityGuid + "')", false); updateReq.setRequestHeader("Accept", "application/json"); updateReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); updateReq.setRequestHeader("X-HTTP-Method", "MERGE"); updateReq.send(JSON.stringify(entityObject));resultObject.statusText=updateReq.statusText;if (updateReq.statusText == "Unknown") { //Unknown为更新成功,否则更新异常 resultObject.statusText = "OK"; }else{ resultObject.response=updateReq.responseText; } }else{ alert("updateRecord requires the entityGuid parameter!"); resultObject.statusText= "Failed"; }returnresultObject; }/*删除一条实体实例记录 var resultObject=deleteRecord(serverUrl,"Account","00000000-0000-0000-0000-000000000000"); var retrieved = resultObject.response; var statusText = resultObject.statusText;*/ functiondeleteRecord(serverUrl, entitySchemaName, entityGuid) {var deleteReq = newXMLHttpRequest(); deleteReq.open("POST", serverUrl + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set(guid'" + entityGuid + "')", false); deleteReq.setRequestHeader("Accept", "application/json"); deleteReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); deleteReq.setRequestHeader("X-HTTP-Method", "DELETE"); deleteReq.send();var resultObject = newObject(); resultObject.statusText= null; resultObject.response= null;if (deleteReq.statusText == "Unknown") { resultObject.statusText= "OK"; //Unknown为删除成功,否则删除异常 } else{ resultObject.response=deleteReq.responseText; }returnresultObject; }/*查询自定义的多语言文本(languageCode:语言代码 purposeType:用途类型[10:脚本 20:插件 30:门户系统 40:自定义页面 50:自定义Web Service] 应用模块:applyModule) 如:var select=name,accountnumber; var filter=statecode/Value eq 0; var orderby=accountid; var expand=""; var top=2; var skip=2; var listLangText=getMultiLangTextList(ODataPath,2052, 10 ,"account");*/ functiongetMultiLangTextList(ODataPath, languageCode, purposeType, applyModule) {var retrieveParams = "$select=new_code,new_text" + "&$filter=new_language_code eq " +languageCode+ " and new_purposetype/Value eq " +purposeType+ " and new_applymodule eq '" + applyModule + "'";var retrieveReq = newXMLHttpRequest(); retrieveReq.open("GET", ODataPath + "/XRMServices/2011/OrganizationData.svc/new_multi_language_mappingSet?" + retrieveParams, false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); retrieveReq.send();var resultObject = newObject(); resultObject.statusText=retrieveReq.statusText; resultObject.response= null;if (resultObject.statusText == "OK") { //OK为查询成功,否则查询异常 resultObject.response =JSON.parse(retrieveReq.responseText).d; }else{ resultObject.response=retrieveReq.responseText; }returnresultObject; }/*判断当前用户是否拥有指定的安全角色 如:var blnCheckResult=checkUserHasRole(serverUrl, "系统管理员");*/ functioncheckUserHasRole(serverUrl, roleName) {var Path = serverUrl + "/XRMServices/2011/OrganizationData.svc/RoleSet?$filter=";var currentUserRoles =Xrm.Page.context.getUserRoles();for (var i = 0; i < currentUserRoles.length; i++) { Path+= "RoleId eq (guid'" + currentUserRoles[i] + "') or "; } Path= Path.substring(0, Path.length - 3);var retrieveReq = newXMLHttpRequest(); retrieveReq.open("GET", Path, false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); retrieveReq.send();var retrieved =JSON.parse(retrieveReq.responseText).d;if (retrieved != null && retrieved.results.length > 0) {for (var j = 0; j < retrieved.results.length; j++) {if (roleName ==retrieved.results[j].Name) {return true; } } }return false}/*判断指定用户是否拥有指定的安全角色 如:var blnCheckResult=checkUserHasRole(serverUrl, "系统管理员","D8AB5312-0744-E211-BA39-00155D002F0D");*/ functioncheckUserHasRoleById(serverUrl, roleName, userId) {var filter_userid = "SystemUserId eq guid'" + userId + "'";var resultObject = retrieveMultipleEntity(serverUrl, "SystemUserRoles", null, filter_userid, null, null, null, null);var retrieved =resultObject.response;var statusText =resultObject.statusText;if (statusText == "OK" && retrieved != null && retrieved.results != undefined && retrieved.results.length > 0) {var filter_roleIds = "";for (var i = 0; i < retrieved.results.length; i++) { filter_roleIds+= "RoleId eq (guid'" + retrieved.results[i].RoleId + "') or "; } filter_roleIds= filter_roleIds.substring(0, filter_roleIds.length - 3);if (filter_roleIds != "") {var retrieveRole = retrieveMultipleEntity(serverUrl, "Role", "Name", filter_roleIds, null, null, null, null);if (retrieveRole.statusText == "OK" && retrieveRole.response != null && retrieveRole.response.results != null && retrieveRole.response.results != undefined && retrieveRole.response.results.length > 0) {for (var j = 0; j < retrieveRole.response.results.length; j++) {if (roleName ==retrieveRole.response.results[j].Name) {return true; } } } } }return false}/*获取用于OData查询的日期时间类型字段的查询条件的值,返回UTC日期时间 参数说明:date:日期时间类型的变量,如var nowDate=new Date(),nowDate可作为参数值*/ functiongetODataUTCDateFilter(date) {varmonthString;var rawMonth =date.getUTCMonth().toString();if (rawMonth.length == 1) { monthString= "0" +rawMonth; }else{ monthString=rawMonth; }vardateString;var rawDate =date.getUTCDate().toString();if (rawDate.length == 1) { dateString= "0" +rawDate; }else{ dateString=rawDate; }var DateFilter = "datetime\'"; DateFilter+= date.getUTCFullYear() + "-"; DateFilter+= monthString + "-"; DateFilter+=dateString; DateFilter+= "T" + date.getUTCHours() + ":"; DateFilter+= date.getUTCMinutes() + ":"; DateFilter+= date.getUTCSeconds() + ":"; DateFilter+=date.getUTCMilliseconds(); DateFilter+= "Z\'";returnDateFilter; }/*获取用于OData查询的日期时间类型字段的查询条件的值,返回Local日期时间 参数说明:1.date:日期时间类型的变量,如var nowDate=new Date(),nowDate可作为参数值 2.timePoint:具体的时间点,如10:00:00(10点整)、10:30:00(10点30分)*/ functiongetODataDateFilter(date, timePoint) {varmonthString;var rawMonth = (date.getMonth() + 1).toString();if (rawMonth.length == 1) { monthString= "0" +rawMonth; }else{ monthString=rawMonth; }vardateString;var rawDate =date.getDate().toString();if (rawDate.length == 1) { dateString= "0" +rawDate; }else{ dateString=rawDate; }varhoursString;var rawHours = date.getHours() - 8; //CRM数据库中保存的时间为操作系统时间减8小时 hoursString = "0" +rawHours.toString(); hoursString= hoursString.substr(hoursString.length - 2, 2);varminutesString;var rawMinutes =date.getMinutes(); minutesString= "0" +rawMinutes.toString(); minutesString= minutesString.substr(minutesString.length - 2, 2);varsecondsString;var rawSeconds =date.getSeconds(); secondsString= "0" +rawSeconds.toString(); secondsString= secondsString.substr(secondsString.length - 2, 2);var filterDateString = date.getFullYear() + "-" + monthString + "-" +dateString;var filterTimeString = "";if (timePoint != null && timePoint != "" && typeof (timePoint) != "undefined") {var timeHour = parseInt(timePoint.substr(0, 2)) - 8; //CRM数据库中保存的时间为操作系统时间减8小时 var timeHourString = "0" +timeHour.toString(); timeHourString= timeHourString.substr(timeHourString.length - 2, 2); filterTimeString= timeHourString + timePoint.substr(2, timePoint.length); }else{ filterTimeString= hoursString + ":" + minutesString + ":" +secondsString; }var DateFilter = "datetime\'"; DateFilter+=filterDateString; DateFilter+= "T"; DateFilter+=filterTimeString; DateFilter+= "Z\'";returnDateFilter; }/*日期增加函数 如:增加一天dateAdd("d",1,new Date())、减少一天dateAdd("d",-1,new Date())*/ functiondateAdd(strInterval, addNum, baseDate) {var dtTmp = newDate(baseDate);if (isNaN(dtTmp)) dtTmp = newDate();switch(strInterval) {case "s": return new Date(Date.parse(dtTmp) + (1000 *addNum));case "n": return new Date(Date.parse(dtTmp) + (60000 *addNum));case "h": return new Date(Date.parse(dtTmp) + (3600000 *addNum));case "d": return new Date(Date.parse(dtTmp) + (86400000 *addNum));case "w": return new Date(Date.parse(dtTmp) + ((86400000 * 7) *addNum));case "m": return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) +addNum, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());case "y": return new Date((dtTmp.getFullYear() +addNum), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); } }/*更改功能区Ribbon按钮的状态(启用或禁用):如 SetRibbonState(3, "否决", true); 参数说明:index:按钮在功能的位置(从0开始) text:按钮上的文字说明 disabled:是否禁用(禁用:true 启用:false)*/ functionsetRibbonState(index, text, disabled) { Concurrent.Thread.create(function(i, t, d) {while ($('.ms-cui-tabContainer a', parent.document).eq(i).find("span").eq(2)[0].innerText !=t) {}if ($('.ms-cui-tabContainer a', parent.document).eq(i).find("span").eq(2)[0].innerText ==t) { $('.ms-cui-tabContainer a', parent.document).eq(i).children().attr("disabled", d); $('.ms-cui-tabContainer a', parent.document).eq(i).attr("disabled", d); } }, index, text, disabled); }/*设置功能区Ribbon按钮的样式:SetRibbonStyle(3, "否决", "display: none;"); 参数说明:index:按钮在功能的位置(从0开始) text:按钮上的文字说明 style:css样式属性及属性的值*/ functionsetRibbonStyle(index, text, style) { Concurrent.Thread.create(function(i, t, d) {while ($('.ms-cui-tabContainer a', parent.document).eq(i).find("span").eq(2)[0].innerText !=t) {}if ($('.ms-cui-tabContainer a', parent.document).eq(i).find("span").eq(2)[0].innerText ==t) { $('.ms-cui-tabContainer a', parent.document).eq(i).children().attr("style", d); $('.ms-cui-tabContainer a', parent.document).eq(i).attr("style", d); } }, index, text, style); }//信息提醒:如NotificationAlert("Warning", "警告:系统中该样品库存数量已经不足!"); functionnotificationAlert(AlertType, AlertString, PageType, DisplayTime) {if (typeof (PageType) == undefined || PageType == null) { PageType= "Form"; }varnotificationsArea;if (PageType == "HomeGrid") { notificationsArea= document.getElementById('crmAppMessageBar'); //主界面(HomeGrid)为crmAppMessageBar } else{ notificationsArea= document.getElementById('crmNotifications'); //表单界面(Form)为crmNotifications }if (notificationsArea == null) { alert('未能找到提醒信息显示控件,请联系系统管理员咨询!');return; } hideNotification(PageType);if (AlertType == "Critical") { notificationsArea.AddNotification('mep1', 1, 'source', AlertString); AlertType= "None"; }else if (AlertType == "Warning") { notificationsArea.AddNotification('mep2', 2, 'source', AlertString); AlertType= "None"; }else if (AlertType == "Info") { notificationsArea.AddNotification('mep3', 3, 'source', AlertString); AlertType= "None"; }else{ notificationsArea.SetNotifications(null, null); AlertType= "None"; }if (typeof (DisplayTime) == undefined || DisplayTime == null || DisplayTime == "" || DisplayTime < 5000) DisplayTime = 5000; setTimeout("hideNotification('" + PageType + "');", DisplayTime); }//隐藏CRM提示区域 functionhideNotification(PageType) {varnotificationsArea;if (PageType == "HomeGrid") { notificationsArea= document.getElementById('crmAppMessageBar'); //主界面(HomeGrid)为crmAppMessageBar } else{ notificationsArea= document.getElementById('crmNotifications'); //表单界面(Form)为crmNotifications }//notificationsArea.style.display = 'none'; notificationsArea.SetNotifications(null, null); }/*-获取服务器时间-*/ functiongetServerDate() {varxmlHTTPRequest;if(window.ActiveXObject) { xmlHTTPRequest= new ActiveXObject("Microsoft.XMLHTTP"); }else if(window.XMLHttpRequest) { xmlHTTPRequest= newXMLHttpRequest(); }else{ xmlHTTPRequest= new ActiveXObject("Msxml2.XMLHTTP"); } xmlHTTPRequest.open('HEAD', '/?_=' + (-new Date), false); xmlHTTPRequest.send(null);var serverDate = new Date(xmlHTTPRequest.getResponseHeader('Date'));returnserverDate; }/*修改Lookup选择窗口的URL参数的值 begin*/ //禁用选择视图功能:document.getElementById("LookupFieldName").setAttribute("disableViewPicker", "1"); functionmodifiedLookupParameter(fieldName, parameterName, parameterValue) { document.getElementById(fieldName).setAttribute(parameterName, parameterValue); }/*获取指定文本框控件下的指定的html元素 如:var new_accountid_d_div = getLookupQuickFindElement("new_accountid", "div");*/ functiongetLookupQuickFindElement(crmFieldName, tagName) {//var contentIframe = top.document.getElementById("contentIFrame"); var oLookupTextControl = document.getElementById(crmFieldName + "_d");var lookupitem =oLookupTextControl.getElementsByTagName(tagName);if (lookupitem.length > 0) {return lookupitem[0]; } }/*自动展开表单中,对指定lookup字段模糊快速查找后的下拉列表 如:showLookupQuickFindList("new_accountid");*/ functionshowLookupQuickFindList(crmFieldName) {var lookupitem_span = getLookupQuickFindElement(crmFieldName, "span");if (lookupitem_span != undefined && lookupitem_span != null) {var lookupitem_img = lookupitem_span.getElementsByTagName("img");if (lookupitem_img.length > 0 && lookupitem_img[0].getAttribute("imageSrc") == "/_imgs/error/notif_icn_warn16.png") { lookupitem_span.click(); } }}/*获取查找类型字段值的对象(适用于表单) 如:var entityReferent=getEntityReferenceObject(accountid,"account","CRM客户");*/ functiongetEntityReferenceObject(id, entityType, name) {var lookupReference =[]; lookupReference[0] ={}; lookupReference[0].id =id; lookupReference[0].entityType =entityType; lookupReference[0].name =name;returnlookupReference; }//禁用表单字段 functiondisabledControls() {var controls =Xrm.Page.ui.controls.get();for (var i incontrols) {var control =controls[i];if (control.getDisabled() == false) { control.setDisabled(true); } } }//禁用子网格 functiondisableSubGrid(subGridName) {try{var subGrid = document.getElementById(subGridName + "_span");if(subGrid) { subGrid.disabled= true; } }catch(e) { } }/*将当前鼠标焦点移除到CrmForm(表单主体)之外 如:setFormFieldsBlur(); 此方法通常用于Ribbon控件的onclick事件中*/ functionsetFormFieldsBlur() {var fixedControl = top.document.getElementById("helponthispage"); //关于此页面的帮助 if (fixedControl == undefined || fixedControl == null) { fixedControl= top.document.getElementById("minimizeribbon"); //隐藏功能区 } fixedControl.focus(); }/*设置指定节(section)下的所有字段是否只读(sectionControl:节控件对象 blnIsDisabled:设置是否只读[true:只读 false:可编辑]) 如:var sectionControl=Xrm.Page.ui.tabs.get("tab_general").sections.get("section_general"); setSectionFieldsStatus(sectionControl,true);*/ functionsetSectionFieldsStatus(sectionControl, blnIsDisabled) {if (!sectionControl.getVisible() || sectionControl.controls.get() == null) return;for (var i = 0; i < sectionControl.controls.get().length; i++) {var fieldControl =sectionControl.controls.get()[i];if(fieldControl.getVisible()) { fieldControl.setDisabled(blnIsDisabled); } } }/*设置指定节(section)下的所有字段置空(sectionControl:节控件对象) 如:var sectionControl=Xrm.Page.ui.tabs.get("tab_general").sections.get("section_general"); resetSectionFieldsValue(sectionControl);*/ functionresetSectionFieldsValue(sectionControl) {if (!sectionControl.getVisible() || sectionControl.controls.get() == null) return;for (var i = 0; i < sectionControl.controls.get().length; i++) {var fieldControl =sectionControl.controls.get()[i];if(fieldControl.getVisible()) {if (fieldControl.getControlType().toLowerCase() != "subgrid") {var field =fieldControl.getAttribute(); field.setValue(null); } } } }/*设置指定节(section)下的所有字段是否只读,且置空字段的值(sectionControl:节控件对象 blnIsDisabled:设置是否只读[true:只读 false:可编辑]) 如:var sectionControl=Xrm.Page.ui.tabs.get("tab_general").sections.get("section_general"); setSectionFieldsStatusAndReset(sectionControl,true);*/ functionsetSectionFieldsStatusAndReset(sectionControl, blnIsDisabled) {if (!sectionControl.getVisible() || sectionControl.controls.get() == null) return;for (var i = 0; i < sectionControl.controls.get().length; i++) {var fieldControl =sectionControl.controls.get()[i];if(fieldControl.getVisible()) { fieldControl.setDisabled(blnIsDisabled);//设置字段只读 var fieldControlType =fieldControl.getControlType().toLowerCase();if (fieldControlType == "standard" && fieldControlType != "subgrid" && fieldControlType != "iframe") {var field =fieldControl.getAttribute(); field.setValue(null); //置空字段的值 } } } }/*设置指定选项卡(tab)下的所有字段是否只读,且置空字段的值(sectionControl:节控件对象 blnIsDisabled:设置是否只读[true:只读 false:可编辑]) 如:var tabControl=Xrm.Page.ui.tabs.get("tab_general"); setTabFields(tabControl,10,true);*/ functionsetTabFields(tabControl, setTypeCode, value) {if (tabControl.sections != null && tabControl.sections.get() != null && tabControl.sections.get().length > 0) {for (var i = 0; i < tabControl.sections.get().length; i++) {var sectionControl =tabControl.sections.get()[i];switch(setTypeCode) {case 10: //设置是否只读 setSectionFieldsStatus(sectionControl, value);break;case 20: //置空字段的值 resetSectionFieldsValue(sectionControl);break;case 30: //设置是否只读,且置空字段的值 setSectionFieldsStatusAndReset(sectionControl, value);break; } } } }/*临时记录字段的值(一般在OnLoad和OnChange事件中调用):fieldName为CRM字段名,fieldValue为要设置的字段的值 如:var new_accountid = Xrm.Page.getAttribute("new_accountid"); setPreValueForField(new_accountid.getName(), new_accountid.getValue());*/ functionsetPreValueForField(fieldName, fieldValue) {var pre_fieldname_valuecontrol = document.getElementById("pre_" + fieldName + "_value");if (pre_fieldname_valuecontrol != undefined && pre_fieldname_valuecontrol != null) { pre_fieldname_valuecontrol.value=fieldValue; }else{var fieldName_c = document.getElementById(fieldName + "_c"); fieldName_c.innerHTML= fieldName_c.innerHTML + "<input type='hidden' id='pre_" + fieldName + "_value' value='" + fieldValue + "' />"; } }/*获取字段的前一次录入的值:fieldName为CRM字段名 如:var new_accountid = Xrm.Page.getAttribute("new_accountid"); new_accountid.setValue(getPreValueForField(new_accountid.getName()));*/ functiongetPreValueForField(fieldName) {var pre_fieldname_valuecontrol = document.getElementById("pre_" + fieldName + "_value");returnpre_fieldname_valuecontrol.value; }/*验证电话号码的合法性 var telephoneNo="1234565890"; var blnIsTelNoValid=checkTelNoValidation(telephoneNo);*/ functioncheckTelNoValidation(telephoneNo) {var reg_number = /^[0-9]\d*$/; //数字 if (telephoneNo != null && !reg_number.exec(telephoneNo)) {return false; }return true; }var G_LIST_MULTI_LANG_TEXTS = null;//初始化取得多语言数据/*查询自定义的多语言文本(languageCode:语言代码 purposeType:用途类型[10:脚本 20:插件 30:门户系统 40:自定义页面 50:自定义Web Service] 应用模块:applyModule) iniMultiLangTexts(ODataPath,2052, 10 ,"account");*/ functioniniMultiLangTexts(_ODataPath, _languageCode, _purposeType, _applyModule) {var langText = "";if (_applyModule == "") { alert("多语言数据取得出错!When the multi-language data get, system error");return; } retrieveReq=getMultiLangTextList(_ODataPath, _languageCode, _purposeType, _applyModule);if (retrieveReq.statusText != "OK") { alert("多语言数据取得出错!When the multi-language data get, system error" + "(" + retrieveReq.response + ")"); result= null;return ""; }else{ G_LIST_MULTI_LANG_TEXTS= newObject();for (var i = 0; i < retrieveReq.response.results.length; i++) { langText=retrieveReq.response.results[i]; G_LIST_MULTI_LANG_TEXTS[langText.new_code]=langText.new_text; } } }//根据代码取得多语言//初始化iniMultiLangTexts后,直接调用//getMultiLangTexts("alert_new_system_err") functiongetMultiLangTexts(_new_code) {var rtnvalue = "";if (G_LIST_MULTI_LANG_TEXTS != null) { rtnvalue=G_LIST_MULTI_LANG_TEXTS[_new_code]; }returnrtnvalue; }/*获取查找类型字段值的对象(适用于表单) 如:var entityReferent=getEntityReferenceObject(accountid,"account","CRM客户");*/ functiongetEntityReferenceObject(id, entityType, name) {var lookupReference =[]; lookupReference[0] ={}; lookupReference[0].id =id; lookupReference[0].entityType =entityType; lookupReference[0].name =name;returnlookupReference; }
CRM 的通用JS函数库相关推荐
- 我的js函数库(持续更新)
常用js初始化函数 function id(obj) {return document.getElementById(obj); } function bind(obj, ev, fn) { if ( ...
- 诊断CAPL自动化(2)—— 封装了诊断发送的通用CAPL函数库
- 【java学习之路】(javaWeb篇)006.构造函数、JQuery函数库
构造函数 概述:在JavaScript语言当中也有所谓构造函数[constructor],JS当中构造函数要符合如下两个特征: 函数名字首个英文字母一般需要大写[不是决定形因素] 构造函数务必.必须. ...
- 翻译连载 | 附录 C:函数式编程函数库-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
为什么80%的码农都做不了架构师?>>> 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...
- js的常用封装函数库之Number操作
js的常用封装函数库之Number操作: /* * 函数功能:Number */class NumberFn {/*随机数范围*/random (min, max) {if (arguments.le ...
- 推荐一个js常用工具函数库
etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools 通过es6模块引入,如import _ from "etools";cons ...
- 推荐一个js常用工具函数库etools
etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools 通过es6模块引入,如import _ from "etools";cons ...
- time.js 时间函数库
最近自己写了个时间函数库,虽然还不算完善,但是我能想到的功能基本都实现了.感兴趣的可以看下. 使用 npm install time-operation --save 复制代码 文档 一.工具方法 函 ...
- 前端常用Utils工具函数库合集
前端常用Utils工具函数库合集 在开发中,我们经常会将一些常用的代码块.功能块进行封装,为的是更好的复用.那么,被抽离出来独立完成功能,通过API或配置项和其他部分交互,便形成了插件. 函数库 Lo ...
最新文章
- JVM堆老年代分配比例
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin.password
- NET问答: 如果动态构建 Query 查询 EntityFramework
- 【渝粤教育】国家开放大学2018年春季 7403-21T素质与思想政治教育 参考试题
- pythondatetime_Date
- 计算机数码频道策划方案,艺人策划方案电脑基础知识IT计算机专业资料-艺人策划方案.pdf...
- 31个用来测试你网站各项性能的免费在线工具
- 编译源码时出现 Checking API: checkapi-last (unknown): error 17解决方法
- JavaScript中的数据结构及实战系列(1):队列
- EditPlus 3.7 中文版已经发布
- 单职业传奇私脱机辅助制作视频教程
- PPT文件太大了怎么压缩
- python爬取京东商品图片_爬取京东和天猫下载商品图片
- 计算机电源可调电阻,电脑ATX电源改0V-30V可调电源,电流7A
- flea-cache使用之Redis集群模式接入
- win10网络共享需要凭据的解决办法
- 14.0高等数学五- 函数的幂级数展开(泰勒级数或者麦克劳林级数)
- 古典概型几何概型伯努利概型条件概率
- 贝叶斯与朴素贝叶斯入门及实战
- 只要不上网,pc机就不会感染计算机病毒,计算机考试试题训练
热门文章
- CIFAR-10数据集(介绍、下载读取、可视化显示、另存为图片)
- 利用auto.js实现FIFAol3手机端截卡器功能
- 农家小炒肉的做法步骤
- Java毕设项目疫情期间中小学生作业线上管理系统设计与实现(java+VUE+Mybatis+Maven+Mysql)
- 【STM32F429开发板用户手册】第41章 STM32F429的LTDC应用之LCD汉字显示和2D图形显示
- 移动互联网商业发展前景广阔-CNNIC 高级分析师 喻重光
- C++的文件操作open与close
- java防sql注入 策略_java防止sql注入
- 用Python实现接口自动化测试并保存测试结果
- iscsi(共享存储)详细带图说明:iscsi服务器配置、iscsi客户端配置