/*-说明:通用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函数库相关推荐

  1. 我的js函数库(持续更新)

    常用js初始化函数 function id(obj) {return document.getElementById(obj); } function bind(obj, ev, fn) { if ( ...

  2. 诊断CAPL自动化(2)—— 封装了诊断发送的通用CAPL函数库

  3. 【java学习之路】(javaWeb篇)006.构造函数、JQuery函数库

    构造函数 概述:在JavaScript语言当中也有所谓构造函数[constructor],JS当中构造函数要符合如下两个特征: 函数名字首个英文字母一般需要大写[不是决定形因素] 构造函数务必.必须. ...

  4. 翻译连载 | 附录 C:函数式编程函数库-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...

    为什么80%的码农都做不了架构师?>>>    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...

  5. js的常用封装函数库之Number操作

    js的常用封装函数库之Number操作: /* * 函数功能:Number */class NumberFn {/*随机数范围*/random (min, max) {if (arguments.le ...

  6. 推荐一个js常用工具函数库

    etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools 通过es6模块引入,如import _ from "etools";cons ...

  7. 推荐一个js常用工具函数库etools

    etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools 通过es6模块引入,如import _ from "etools";cons ...

  8. time.js 时间函数库

    最近自己写了个时间函数库,虽然还不算完善,但是我能想到的功能基本都实现了.感兴趣的可以看下. 使用 npm install time-operation --save 复制代码 文档 一.工具方法 函 ...

  9. 前端常用Utils工具函数库合集

    前端常用Utils工具函数库合集 在开发中,我们经常会将一些常用的代码块.功能块进行封装,为的是更好的复用.那么,被抽离出来独立完成功能,通过API或配置项和其他部分交互,便形成了插件. 函数库 Lo ...

最新文章

  1. Heartbeat双机热备配置
  2. “轻雀会议”跨越社交的“云沟通”
  3. 常考数据结构与算法-NC105 二分查找-II
  4. 算法提高课-图论-有向图的强连通分量-AcWing 367. 学校网络:强连通分量、tarjan算法
  5. ecs服务器内网连接_让不同地域云服务器ECS和云数据库内网互通
  6. hdu2709 Sumsets 递推
  7. 5G精华问答 | 5G的关键无线技术是啥?
  8. 如何删除office2007、以及安装新版本office
  9. QString string int double char 相互转化
  10. android 颜色0x00,Android 状态栏颜色兼容方案
  11. Linux下passwd和shadow文件内容详解
  12. 笔试题: 数据库 已看1 一些关键的sql语句练习 和选择题 有用 sql语句练习 挺好...
  13. 软件项目管理(SPM)课程总结及感想
  14. 开源机器人项目Hands Free
  15. Spring Boot + WebSocket实现网页在线实时聊天
  16. 讨论BUCK、BOOST、BUCK-BOOST电路CCM模式下的设计参数计算
  17. #151: 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-x...
  18. C语言:二进制转换十进制
  19. Set集合:求交集、并集和差集
  20. 亚商投资顾问 早餐FM/1116全球6G发展大会开幕

热门文章

  1. 398 获取class的对象
  2. Linux ❉ 权限位rwx
  3. 关于linux的rwx
  4. 计算公鸡母鸡小鸡数量
  5. 玩转wordcloud
  6. BitXHub中继链
  7. 什么是MRO?哪家企业好?
  8. Nginx教程(系统详细)
  9. java中foreach的用法
  10. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十三章:计算着色器(The Compute Shader)...