Microsoft Dynamics CRM 4.0 JScript 通用公共方法
1.基本参数
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var CRM_FORM_TYPE_READ_ONLY = 3;
var CRM_FORM_TYPE_DISABLED = 4;
var CRM_FORM_TYPE_QUICK_CREATE = 5;
var CRM_FORM_TYPE_BULK_EDIT = 6;
2.基本方法
function FormSubmit(method, action) {
var frm = $("#form1")[0];
frm.method = method;
frm.action = action;
frm.submit();
}
3.CRM实体检索
RetrieveSingleEntity = function (entityName, entityId, columnSet) {
var soapNS = "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"";
var xsiNS = "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
var xsdNS = "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"";
var defaultNS = "xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\"";
var queryNS = "xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\""; var async = false;
var sMessage = BuildStart() + BuildBody(entityName, entityId, columnSet) + BuildEnd(); var oHttp = new ActiveXObject("Msxml2.XMLHTTP"); SendMessage(oHttp);
return BuildResult(oHttp); function SendMessage(oHttp) {
var url = "/mscrmservices/2007/crmservice.asmx";
oHttp.open("POST", url, async);
oHttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
oHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
oHttp.setRequestHeader("Content-Length", sMessage.length); oHttp.Send(sMessage);
} function BuildResult(oHttp) {
var response = oHttp.responseText;
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = async;
xmlDoc.loadXML(response);
if (xmlDoc.parseError.errorCode != 0) {
var xmlErr = xmlDoc.parseError;
alert("Error retrieving Recipient: " + xmlErr.reason);
}
else {
var arrResult = new Array();
var returnNode = xmlDoc.documentElement.selectSingleNode("/soap:Envelope/soap:Body/ExecuteResponse/Response/BusinessEntity/Properties");
for (var i = 0; i < returnNode.childNodes.length; i++) {
arrResult[i] = new Array();
arrResult[i][0] = returnNode.childNodes[i].attributes[1].value;
arrResult[i][1] = returnNode.childNodes[i].text;
if (returnNode.childNodes[i].attributes[0].value == "PicklistProperty") {
if (returnNode.childNodes[i].childNodes[0].attributes[0] != undefined) {
arrResult[i][2] = returnNode.childNodes[i].childNodes[0].attributes[0].value;
}
}
if (returnNode.childNodes[i].attributes[0].value == "LookupProperty" || returnNode.childNodes[i].attributes[0].value == "OwnerProperty" || returnNode.childNodes[i].attributes[0].value == "CustomerProperty") {
if (returnNode.childNodes[i].childNodes[0].attributes[0] != undefined) {
if (returnNode.childNodes[i].childNodes[0].attributes[0].name == "name") {
arrResult[i][2] = returnNode.childNodes[i].childNodes[0].attributes[0].value;
}else {
arrResult[i][2] = null;
}
if (returnNode.childNodes[i].childNodes[0].attributes[0].name == "type") {
arrResult[i][3] = returnNode.childNodes[i].childNodes[0].attributes[0].value;
}
if (returnNode.childNodes[i].childNodes[0].attributes[1] != undefined) {
if (returnNode.childNodes[i].childNodes[0].attributes[1].name == "type") {
arrResult[i][3] = returnNode.childNodes[i].childNodes[0].attributes[1].value;
}
}
}
}
}
}
return arrResult;
}
function BuildStart() {
var sMessage = ""; sMessage += "<soap:Envelope ";
sMessage += soapNS + " ";
sMessage += xsiNS + " ";
sMessage += xsdNS + ">";
sMessage += GenerateAuthenticationHeader(); return sMessage;
} function BuildBody(entityName, entityId, columnSet) {
var sMessage = ""; sMessage += "<soap:Body>";
sMessage += "<Execute " + defaultNS + ">";
sMessage += "<Request xsi:type=\"RetrieveRequest\" ReturnDynamicEntities=\"true\">";
sMessage += "<OptionalParameters>";
sMessage += "<OptionalParameter xsi:nil=\"true\" />";
sMessage += "</OptionalParameters>";
sMessage += "<Target xsi:type=\"TargetRetrieveDynamic\">";
sMessage += "<EntityName>" + entityName + "</EntityName>";
sMessage += "<EntityId>" + entityId + "</EntityId>";
sMessage += "</Target>";
if (columnSet == null || columnSet.length == 0) {
sMessage += "<ColumnSet " + queryNS + " xsi:type=\"q1:AllColumns\" />";
}
else {
sMessage += "<ColumnSet " + queryNS + " xsi:type=\"q1:ColumnSet\">";
sMessage += "<q1:Attributes>";
for (var i = 0; i < columnSet.length; i++) {
sMessage += "<q1:Attribute>";
sMessage += columnSet[i];
sMessage += "</q1:Attribute>";
}
sMessage += "</q1:Attributes>";
sMessage += "</ColumnSet>";
}
sMessage += "</Request>";
sMessage += "</Execute>";
sMessage += "</soap:Body>"; return sMessage;
} function BuildEnd() {
return "</soap:Envelope>";
}
}
4.获取lookup类型的值
GetLookupFieldValue = function (oResult, fieldScheduleName) {
for (var i = 0; i < oResult.length; i++) {
if (oResult[i] == undefined) {
continue;
}
if (oResult[i][0] == undefined) {
continue;
}
if (oResult[i][0] == fieldScheduleName) {
var item = new Object();
item.id = oResult[i][1];
item.name = oResult[i][2];
item.typename = oResult[i][3];
var data = new Array();
data[0] = item;
break;
}
}
return data;
}
5.获取picklist类型的值
GetPicklistFieldValue = function (oResult, fieldScheduleName) {
for (var i = 0; i < oResult.length; i++) {
if (oResult[i] == undefined) {
continue;
}
if (oResult[i][0] == undefined) {
continue;
}
if (oResult[i][0] == fieldScheduleName) {
var item = new Object();
item.value = oResult[i][1];
item.selectedtext = oResult[i][2];
var data = new Array();
data[0] = item;
break;
}
}
return data;
}
6.获取字段的值
GetFieldValue = function (oResult, fieldScheduleName) {
var fieldValue;
for (var i = 0; i < oResult.length; i++) {
if (oResult[i] == undefined) {
continue;
}
if (oResult[i][0] == undefined) {
continue;
}
if (oResult[i][0] == fieldScheduleName) {
fieldValue = oResult[i][1];
break;
}
}
return fieldValue;
}
7.获取当前的用户
GetCurrentUserId = function () {
var soapBody = "<soap:Body><Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'><Request xsi:type='WhoAmIRequest' /></Execute></soap:Body>"; var soapXml = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>";
// var header1 = GenerateAuthenticationHeader();
var header1 = "<soap:Header><CrmAuthenticationToken xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
"<AuthenticationType xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">0</AuthenticationType>" +
"<CrmTicket xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\"></CrmTicket>" +
"<OrganizationName xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">LOVOL</OrganizationName>" +
"<CallerId xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">00000000-0000-0000-0000-000000000000</CallerId>" +
"</CrmAuthenticationToken></soap:Header>";
soapXml += header1;
soapXml += soapBody;
soapXml += "</soap:Envelope>"; var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("POST", "/mscrmservices/2007/crmservice.asmx", false);
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlhttp.send(soapXml); xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(xmlhttp.responseXML.xml);
CRMUserGuid = xmlDoc.getElementsByTagName("UserId")[0].childNodes[0].nodeValue;
return CRMUserGuid;
} //注意:这个获取的值是小写,一般可以通过下面的方式处理下。
var currentUserId = ("{" + GetCurrentUserId() + "}").toUpperCase();//获取当前用户的GUID
8.CRM实体筛选
RetrieveQueryRecords = function (fetchXmlStr) {
var returnResults = null;
var xml = "<?xml version='1.0' encoding='utf-8'?>" +
"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
GenerateAuthenticationHeader() +
"<soap:Body>" +
"<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
"<fetchXml>" +
fetchXmlStr +
"</fetchXml>" +
"</Fetch>" +
"</soap:Body>" +
"</soap:Envelope>"; var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml); var resultXml = xHReq.responseXML;
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0) {
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
else {
var resultSet = new String();
resultSet = resultXml.text;
resultSet.replace('<', '<');
resultSet.replace('>', '>');
var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
oXmlDoc.async = false;
oXmlDoc.loadXML(resultSet);
returnResults = oXmlDoc.getElementsByTagName('result');
}
return returnResults;
}
9.设置IFrame控件(IFrame控件名称,关联关系名称)
SetIFameSrc = function (oIFrame, relationName) {
areaIframe_OnReadyStateChange = function () {
if (oIFrame.readyState == "complete") {
var tableList = oIFrame.contentWindow.document.getElementsByTagName("table");
if (tableList != null) {
for (var i = 0; i < tableList.length; i++) {
if (tableList[i].className == "ms-crm-Form-Area") {
tableList[i].style.paddingBottom = 0;
tableList[i].style.paddingLeft = 0;
tableList[i].style.paddingRight = 0;
break;
}
}
}
}
}
oIFrame.attachEvent("onreadystatechange", areaIframe_OnReadyStateChange); var sArea = relationName;
var sBaseUrl = "areas.aspx?";
var html = sBaseUrl;
html += "oId=" + crmForm.ObjectId;
html += "&oType=" + crmForm.ObjectTypeCode;
html += "&security=" + crmFormSubmit.crmFormSubmitSecurity.value;
html += "&roleOrd=1";
html += "&tabSet=" + sArea;
oIFrame.src = html;
}
10.判断当前登录用户是否存在安全角色权限(输入角色名)
ChectUserRoles = function (roleName) {
var checkValue = false;
var xmlRoleCount = "<fetch mapping=\'logical\' count=\'50\' aggregate=\'true\'>" +
"<entity name=\'systemuserroles\'>" +
"<attribute name=\'systemuserroleid\' aggregate=\'count\' alias=\'count\' />" +
"<filter>" +
"<condition attribute=\'systemuserid\' operator=\'eq\' value=\'" + guidCurrentUserId + "\' />" +
"</filter>" +
"<link-entity name=\'role\' from=\'roleid\' to=\'roleid\' link-type=\'inner\'>" +
"<filter>" +
"<condition attribute=\'name\' operator=\'eq\' value=\'" + roleName + "\' />" +
"</filter>" +
"</link-entity>" +
"</entity>" +
"</fetch>";
resultRoleCount = RetrieveQueryRecords(xmlRoleCount);
if (resultRoleCount[0] != null) {
if (resultRoleCount[0].selectSingleNode('./count').nodeTypedValue > 0) {
checkValue = true;
}
}
return checkValue;
}
11.隐藏"文件菜单(F)"、"保存"、"保存并关闭"、"保存并新建"三个按钮
HideSaveButtonGroup = function () {
var file = document.getElementById("file"); //文件菜单(F)
var _MBcrmFormSave = document.getElementById("_MBcrmFormSave"); //保存
var _MBcrmFormSaveAndClose = document.getElementById("_MBcrmFormSaveAndClose"); //保存并关闭
var _MBcrmFormSubmitCrmForm59truetruefalse = document.getElementById("_MBcrmFormSubmitCrmForm59truetruefalse"); //保存并新建 file.style.display = "none";
_MBcrmFormSave.style.display = "none";
_MBcrmFormSaveAndClose.style.display = "none";
_MBcrmFormSubmitCrmForm59truetruefalse.style.display = "none";
}
12.添加保存并新建
AddSaveandCreate = function () {
var _MBcrmFormSubmitCrmForm59truetruefalse = window.document.getElementById("_MBcrmFormSubmitCrmForm59truetruefalse");
var a = _MBcrmFormSubmitCrmForm59truetruefalse.getElementsByTagName("a");
if (a.length > 0) {
a[0].innerHTML = "<img tabIndex='0' class='ms-crm-Menu-ButtonFirst' alt='保存并新建' src='/_imgs/ico/16_L_saveOpen.gif'/>"
a[0].innerHTML += "<span tabIndex='0' class='ms-crm-MenuItem-TextRTL'>保存并新建</span>";
}
}
13.禁用lookUp查看事件
DisableLookup = function (item) {
var item = window.document.getElementById(item);
var spanlist = item.getElementsByTagName("span");
for (var i = 0; i < spanlist.length; i++) {
if (spanlist[i].onclick = "openlui()") {
spanlist[i].onclick = "";
}
}
}
14.隐藏字段
HideField = function (fieldName) {
var crmform_field_c = document.getElementById(fieldName + "_c");
var crmform_field_d = document.getElementById(fieldName + "_d");
crmform_field_c.style.display = "none";
crmform_field_d.style.display = "none";
}
15.隐藏IFrame中工具栏上的部分按钮
function HideFrameGridBarItems() {
var frame = event.srcElement;
if (frame.readyState != "complete")
return;
var window = frame.contentWindow;
var mnuBar1 = window.document.getElementById("mnuBar1");
var mnuBar1_UL = mnuBar1.getElementsByTagName("ul");
var mnuBar1_LIs = mnuBar1.getElementsByTagName("li");
if (mnuBar1_LIs != null && mnuBar1_LIs.length > 0) {
for (var i = 0; i < mnuBar1_LIs.length; i++) {
if (mnuBar1_LIs[i].id != "_MBcrmGridPrint" && mnuBar1_LIs[i].id != "_MBcrmGridPrint" && mnuBar1_LIs[i].id != "_MBcrmGridExportToExcel") {
mnuBar1_LIs[i].style.display = "none";
}
}
}
}
16.禁用所有控件,并隐藏部分控件
DisabledAllControls = function () {
var allFormControls = crmForm.all;
for (var i = 0; i < allFormControls.length; i++) {
var singleControl = allFormControls[i];
if (singleControl.id != null && singleControl.id != "") {
singleControl.Disabled = true;
}
}
}
17.读取脚本文件
function load_script(url) {
var xmlHTTPRequest;
if (window.ActiveXObject) {
xmlHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHTTPRequest = new XMLHttpRequest();
}
else {
xmlHTTPRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
xmlHTTPRequest.open('GET', url, false);
xmlHTTPRequest.send('');
eval(xmlHTTPRequest.responseText);
var s = xmlHTTPRequest.responseText.split(/\n/);
var r = /^(?:function|var)\s*([a-zA-Z_]+)/i;
for (var i = 0; i < s.length; i++) {
var m = r.exec(s[i]);
if (m != null) {
window[m[1]] = eval(m[1]);
}
}
}
18.获取当前时间
//获取当前时间 格式为2013/8/30
getCurrenTime = function () {
var d, currentTime = "";
d = new Date();
currentTime += d.getYear() + "/";
currentTime += (d.getMonth() + 1) + "/";
currentTime += d.getDate();
return currentTime;
} //获取当前详细时间 格式为2013/8/30 14:55:30
getCurrentTime = function () {
var d, currentTime = "";
d = new Date();
currentTime += d.getYear() + "/";
currentTime += (d.getMonth() + 1) + "/";
currentTime += d.getDate() + " ";
currentTime += d.getHours() + ":";
currentTime += d.getMinutes() + ":";
currentTime += d.getSeconds();
return currentTime;
}
19.获取服务器时间
crmForm.all.new_timespan.DataValue = new Date("2013/01/01");
crmForm.all.字段名.DataValue = new Date("2013-01-01");//会报错
//需要replace(/-/g, "/");替换下
function getServerDate() {
var xmlHTTPRequest;
if (window.ActiveXObject) {
xmlHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHTTPRequest = new XMLHttpRequest();
}
else {
xmlHTTPRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
xmlHTTPRequest.open('HEAD', '/?_=' + (-new Date), false);
xmlHTTPRequest.send(null); var serverDate = new Date(xmlHTTPRequest.getResponseHeader('Date')); return serverDate;
}
GetServerDateTime = function() {
var returnValue = null;
var xml = "<?xml version='1.0' encoding='utf-8'?>" +
"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
GenerateAuthenticationHeader() +
"<soap:Body>" +
"<GetServerTime xmlns='http://Www.Frensworkz.Com.Crm40.WebService/' />" +
"</soap:Body>" +
"</soap:Envelope>"; var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/ISV/ExtensionWebService/GetServerTimeService.asmx", false);
xHReq.setRequestHeader("SOAPAction", "http://Www.Frensworkz.Com.Crm40.WebService/GetServerTime");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml); var resultXml = xHReq.responseXML;
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0) {
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
else {
returnValue = new Date(Date.parse(resultXml.text.replace(/-/g, "/")));
}
return returnValue;
}
getAddDate = function (dateValue, dateType, addValue) {
var year = dateValue.getYear();
var month = dateValue.getMonth();
var day = dateValue.getDate();
if (dateType == "year") {
year = parseInt(year) + parseInt(addValue);
}
if (dateType == "month") {
month = parseInt(month) + parseInt(addValue);
}
if (dateType == "day") {
day = parseInt(day) + parseInt(addValue);
}
var newDate = Date.parse(year + "-" + month + "-" + day);
return newDate;
}
20.其他
var new_returnrepairbutton_d = document.getElementById("new_returnrepairbutton_d");//返修按钮
new_returnrepairbutton_d.style.display='none';
//显示返修按钮
new_returnrepairbutton_d.innerHTML = "<button class='ms-crm-Button' id='returnRepairBtn' type='button' onclick='SubmitOperate();'>返修</button>"; //隐藏明细工具栏
var frame = document.getElementById("IFRAME_Details");
frame.attachEvent("onreadystatechange", HideFrameGridBarItems); //about: blank var CRM_FORM_TYPE_UPDATE = 2;
//添加IFRAME销售合同明细
if (crmForm.FormType == CRM_FORM_TYPE_UPDATE) {
var IFrameSalesContractDetails = crmForm.all.IFRAME_SalesContractDetails;
SetIFameSrc(IFrameSalesContractDetails, "new_sales_contract_new_sales_contract_detail");
} //过滤只能选择状态new_status为已审批的(30)和已接受(40)的信息
var new_procurement_planid = crmForm.all.new_procurement_planid;//信息编号
fetchProcurementPlan = function () {
var xmlProcurementPlan = "search=<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\" distinct=\"false\">" +
"<entity name=\"new_procurement_plan\">" +
"<filter>" +
"<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" />" +
"<condition attribute=\"new_name\" operator=\"like\" value=\"%%\"/>" +
"<condition attribute=\"new_status\" operator=\"in\">" +
"<value>30</value>" +
"<value>40</value>" +
"</condition>" +
"</filter>" +
"</entity>" +
"</fetch>";
new_procurement_planid.additionalparams = xmlProcurementPlan;
//new_procurement_planid.lookupbrowse = 1;//禁用搜索框
} var xmlVehicle = "search=<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\" distinct=\"false\">" +
"<entity name=\"new_vehicle\">" +
"<filter>" +
"<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" />" +
"<condition attribute=\"new_status\" operator=\"eq\" value=\"10\" />" +
"<condition attribute=\"new_ship_apply\" operator=\"eq\" value=\"null\" />" +
"</filter>" +
"<link-entity name=\"new_procurement_plan\" to=\"new_procurement_planid\" from=\"new_procurement_planid\" alias=\"b\" link-type=\"inner\">" +
"<filter>" +
"<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" />" +
"<condition attribute=\"new_billtype\" operator=\"eq\" value=\"1\" />" +
"</filter>" +
"</link-entity>" +
"</entity>" +
"</fetch>"; var new_da_reason = crmForm.all.new_da_reason;
if (new_da_reason.DataValue == 0) {
if (new_fail_reason.DataValue == null || new_fail_reason.DataValue == "") {
alert('请填写未通过原因!');
event.returnValue = false;
return false;
}
} // "<condition attribute=\"new_order_status\" operator=\"null\" />" +
//"<condition attribute=\"new_product_fourthid\" operator=\"eq\" value=\"\" />";
if (new_order.DataValue != null) {
xmlSwivelmxzx += "<condition attribute=\"new_order\" operator=\"eq\" value='" + new_order.DataValue[0].id + "'/>";
} else {
xmlSwivelmxzx += "<condition attribute=\"new_order\" operator=\"eq\" value=\"\" />";
} if (new_order.DataValue != null) {
xmlSwivelmxzx += "<condition attribute=\"new_order\" operator=\"eq\" value='" + new_order.DataValue[0].id + "'/>" ;
} else {
xmlSwivelmxzx += "<condition attribute=\"new_order\" operator=\"null\"/>";
} /*币种赋初始值*/
var transactioncurrencyid = crmForm.all.transactioncurrencyid; //币种
var transactioncurrencylookup = new Array();
var lookupItem = new Object();
lookupItem.name = "US Dollar";
lookupItem.id = "A4419C79-BB1B-E111-88C2-001CC497CFFC";
lookupItem.typename = "transactioncurrency";
transactioncurrencylookup[0] = lookupItem;
transactioncurrencyid.DataValue = transactioncurrencylookup;
/*币种赋初始值*/ //查询是否重复提交单据
function HaveSameRecord() {
var returnValue = 0;
var FetchXmlStr = "<fetch mapping='logical' aggregate='true'>" +
"<entity name='new_delivery_arrival'>" +
" <attribute name='new_delivery_arrivalid' aggregate='count' alias='HaveRows' />" +
" <filter>" +
" <condition attribute='statecode' operator='eq' value='0' />" +
" <condition attribute='new_vin' operator='eq' value='" + new_vin.DataValue[0].id + "' />" +
" <condition attribute='new_status' operator='ne' value='10' />" +
" </filter>" +
"</entity>" +
"</fetch>";
var results = RetrieveQueryRecords(FetchXmlStr);
returnValue = results[0].selectSingleNode('./HaveRows').nodeTypedValue;
return returnValue;
} var new_accpect_date = crmForm.all.new_accpect_date; //验收日期
if (new_accpect_date.DataValue > new Date()) {
alert('验收日期不得晚于当天的日期!');
new_accpect_date.DataValue = null;
} //金额大写转换
function Chinese(num) {
if (!/^\d*(\.\d*)?$/.test(num)) throw (new Error(-1, "Number is wrong!"));
var AA = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
var BB = new Array("", "拾", "佰", "仟", "萬", "億", "圆", "");
var CC = new Array("角", "分", "厘");
var a = ("" + num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
for (var i = a[0].length - 1; i >= 0; i--) {
switch (k) {
case 0: re = BB[7] + re; break;
case 4: if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]))
re = BB[4] + re; break;
case 8: re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if (k % 4 == 2 && a[0].charAt(i) == "0" && a[0].charAt(i + 2) != "0") re = AA[0] + re;
if (a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k % 4] + re; k++;
} if (a.length > 1) {
re += BB[6];
for (var i = 0; i < a[1].length; i++) {
re += AA[a[1].charAt(i)] + CC[i];
if (i == 2) break;
}
if (a[1].charAt(0) == "0" && a[1].charAt(1) == "0") {
re += "元整";
}
} else {
re += "元整";
}
if (re == "元整") re = "零元整";
return re;
} //显示字段
DisplayField = function (fieldName) {
var crmform_field_c = document.getElementById(fieldName + "_c");
var crmform_field_d = document.getElementById(fieldName + "_d");
crmform_field_c.style.display = "block";
crmform_field_d.style.display = "block";
}
//隐藏字段 HideField("new_cost_price");
HideField = function (fieldName) {
var crmform_field_c = document.getElementById(fieldName + "_c");
var crmform_field_d = document.getElementById(fieldName + "_d");
crmform_field_c.style.display = "none";
crmform_field_d.style.display = "none";
} //验证是否有相关字段级控制角色的权限
function HaveControlFieldRole(RoleName) {
var returnValue = 0;
var FetchXmlStr = "<fetch mapping='logical' aggregate='true'>" +
"<entity name='new_controlfield_user'>" +
" <attribute name='new_controlfield_userid' aggregate='count' alias='HaveRows' />" +
" <filter>" +
" <condition attribute='statecode' operator='eq' value='0' />" +
" <condition attribute='new_systemuserid' operator='eq-userid' />" +
" </filter>" +
" <link-entity name='new_controlfield_role' from='new_controlfield_roleid' to='new_controlfield_roleid' link-type='inner' >" +
" <filter>" +
" <condition attribute='new_name' operator='eq' value='" + RoleName + "' />" +
" </filter>" +
" </link-entity>" +
"</entity>" +
"</fetch>";
var results = RetrieveQueryRecords(FetchXmlStr);
returnValue = results[0].selectSingleNode('./HaveRows').nodeTypedValue;
return returnValue;
} var XGCostPrice = HaveControlFieldRole("物料-标准价格-修改"); if (ZDCostPrice <= 0) {
HideField("new_cost_price");
} //隐藏销售模块
HideSalesModel = function () {
var section = $(".ms-crm-Form-Section");
if (section != null && section.length > 0) {
for (var i = 0; i < section.length; i++) {
if (section[i].innerText == "销售模块") {
section[i].style.display = 'none';
if (section[i] != null
&& section[i].parentNode != null
&& section[i].parentNode.parentNode != null
&& section[i].parentNode.parentNode.parentNode != null) {
section[i].parentNode.parentNode.parentNode.style.display = 'none';
}
}
}
}
}
21.另外:
查询IFORM的方法
var totalMon = 0;
try {
var pageInfo = new PageInfo(1, 10000); //分页参数
var orderArray = new Array(new OrderExpression("new_exp_undertakerid", ORDER_DIRECTION.Ascending)); //根据参数1排序
var attributesArray = new Array("new_pe_undertaker", "statecode"); //查询条件
var valuesArray = new Array(crmForm.ObjectId, "Active");//条件的值
var columnSetArray = new Array("new_money_undertaker");//要查询的列
var queryByAttribute = new QueryByAttribute("new_exp_undertaker", attributesArray, valuesArray, columnSetArray, pageInfo, orderArray);//参数一为实体名
var crmService = new CrmServiceAccelerator();
var entityCollection = crmService.RetrieveMultipleQueryByAttribute(queryByAttribute);
for (var i = 0; i < entityCollection.Entities.length; i++) {
var entity = entityCollection.Entities[i];
var amountProperty = entity.GetProperty("new_money_undertaker"); //获得值
if (amountProperty != null) {
totalMon += parseFloat(amountProperty.Value);
}
}
}
catch (error) {
}
return totalMon; 设置Iframe
function SetIFameSrc() {
var sArea = "new_move_library_single_new_move_library_";
var sBaseUrl = "areas.aspx?";
var html = sBaseUrl;
html += "oId=" + crmForm.ObjectId;
html += "&oType=" + crmForm.ObjectTypeCode;
html += "&security=" + crmFormSubmit.crmFormSubmitSecurity.value;
html += "&roleOrd=1";
html += "&tabSet=" + sArea;
IFRAME_movestoreroom.src = html;
}
筛选lookup字段
var fetchXmlStr = "search=<fetch version='1.0' output-format='xml-platform' mapping='logical'><entity name='new_purchase_storage'>" +
"<filter><condition attribute='new_status' operator='eq' value='2' /><condition attribute='new_name' operator='like' value='%%'/>" +
"</filter></entity></fetch>"
new_purchase_storage.additionalparams = fetchXmlStr; 根据ID查询单条记录
var crmService=new CrmServiceAccelerator();
var columns=new Array("new_name");
var retEntity=crmService.Retrieve("new_unitofmeasurecode", itemUnit.Value, columns);
var unitProperty=retEntity.GetProperty("new_name");
if (unitProperty!=null)
{
var salesorderLookup=new Array();
var LookupItem=new Object();
LookupItem.name=unitProperty.Value;
LookupItem.id=itemUnit.Value;
LookupItem.typename="new_unitofmeasurecode";
salesorderLookup[0]=LookupItem;
crmForm.all.new_unitofmeasurecodeid.DataValue=salesorderLookup;
} 插入按钮
var td_buttons = document.getElementById("new_button_submit_d"); OnClickSubmit = function() {
var ok = window.confirm("你确定该移库单进行过账?");
if (ok) {
new_status.DataValue = 2;
new_status.ForceSubmit = true;
crmForm.Save();
}
}
//点击"过帐按钮"时触发
OnClickPost = function() {
new_status.DataValue = 3;
new_status.ForceSubmit = true;
crmForm.Save();
}
td_buttons.innerHTML = "<button class='ms-crm-Button' id='btnSubmit' type='button' disabled='disabled'>提交</button> <button class='ms-crm-Button' id='btnPost' type='button' disabled='disabled'>过账</button>";
22.按条件查询多行,自定义实体
按条件查询多行,自定义实体
function getCurrentUserName(){
var xml = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
authenticationHeader +
" <soap:Body>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"RetrieveMultipleRequest\" ReturnDynamicEntities=\"true\">" +
" <Query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
" <q1:EntityName>systemuser</q1:EntityName>" +
" <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +
" <q1:Attributes>" +
" <q1:Attribute>fullname</q1:Attribute>" +
" </q1:Attributes>" +
" </q1:ColumnSet>" +
" <q1:Distinct>false</q1:Distinct>" +
" <q1:Criteria>" +
" <q1:FilterOperator>And</q1:FilterOperator>" +
" <q1:Conditions>" +
" <q1:Condition>" +
" <q1:AttributeName>systemuserid</q1:AttributeName>" +
" <q1:Operator>EqualUserId</q1:Operator>" +
" </q1:Condition>" +
" </q1:Conditions>" +
" </q1:Criteria>" +
" </Query>" +
" </Request>" +
" </Execute>" +
" </soap:Body>" +
"</soap:Envelope>" +
""; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", SERVICE_PATH, false);
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml); var resultXml = xmlHttpRequest.responseXML; var doc = xmlHttpRequest.responseXML; return resultXml.selectSingleNode("//Property[@Name='fullname']/Value").nodeTypedValue; } function retrieve(entityName,entityId,attributeName){
var xml = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
authenticationHeader+
" <soap:Body>" +
" <Retrieve xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <entityName>"+entityName+"</entityName>" +
" <id>"+entityId+"</id>" +
" <columnSet xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:ColumnSet\">" +
" <q1:Attributes>" +
" <q1:Attribute>"+attributeName+"</q1:Attribute>" +
" </q1:Attributes>" +
" </columnSet>" +
" </Retrieve>" +
" </soap:Body>" +
"</soap:Envelope>" +
""; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", SERVICE_PATH, false);
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Retrieve");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return resultXml;
} function getAttribute(entityName,entityId,attribute){
var resultXml= retrieve(entityName,entityId,attribute); //Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
//Display the retrieved value.
else
{
return resultXml.selectSingleNode("//q1:"+attribute).nodeTypedValue;
}
} function retrieveByCondition(entityName,attribute_get,attributeName_con1,attributeValue_con1,attributeName_con2,attributeValue_con2){
var xml = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
authenticationHeader +
" <soap:Body>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"RetrieveMultipleRequest\" ReturnDynamicEntities=\"true\">" +
" <Query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
" <q1:EntityName>"+entityName+"</q1:EntityName>" +
" <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +
" <q1:Attributes>" +
" <q1:Attribute>"+attribute_get+"</q1:Attribute>" +
" </q1:Attributes>" +
" </q1:ColumnSet>" +
" <q1:Distinct>false</q1:Distinct>" +
" <q1:Criteria>" +
" <q1:FilterOperator>And</q1:FilterOperator>" +
" <q1:Conditions>" +
" <q1:Condition>" +
" <q1:AttributeName>"+attributeName_con1+"</q1:AttributeName>" +
" <q1:Operator>Equal</q1:Operator>" +
" <q1:Values>" +
" <q1:Value xsi:type=\"xsd:string\">"+attributeValue_con1+"</q1:Value>" +
" </q1:Values>" +
" </q1:Condition>" +
" <q1:Condition>" +
" <q1:AttributeName>"+attributeName_con2+"</q1:AttributeName>" +
" <q1:Operator>Equal</q1:Operator>" +
" <q1:Values>" +
" <q1:Value xsi:type=\"xsd:string\">"+attributeValue_con2+"</q1:Value>" +
" </q1:Values>" +
" </q1:Condition>" +
" </q1:Conditions>" +
" </q1:Criteria>" +
" </Query>" +
" </Request>" +
" </Execute>" +
" </soap:Body>" +
"</soap:Envelope>" +
""; var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.Open("POST", SERVICE_PATH, false);
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml); var resultXml = xmlHttpRequest.responseXML;
return resultXml;
}
function getAttributeByCondition(entityName,attribute_get,attributeName_con1,attributeValue_con1,attributeName_con2,attributeValue_con2){
var resultXml= retrieveByCondition(entityName,attribute_get,attributeName_con1,attributeValue_con1,attributeName_con2,attributeValue_con2); //Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
//Display the retrieved value.
else
{
//return resultXml;
return resultXml.selectSingleNode("//Property[@Name='"+attribute_get+"']/Value").nodeTypedValue;
}
} //工作周报
var lookupItem= crmForm.all.new_projectweekreportid.DataValue;
if (lookupItem[0] != null)
{
//alert(lookupItem[0].name);
var currentUserName=getCurrentUserName();
var weekReportId=lookupItem[0].id;
var projectId= getAttribute("new_projectweekreport",weekReportId,"new_project2id");
var memberId=getAttributeByCondition("new_prejectmember","new_prejectmemberid","new_project2id",projectId,"new_name",currentUserName);
if(memberId != null){
//Create an array to set as the DataValue for the lookup control.
var lookupData = new Array();
//Create an Object add to the array.
var lookupItem= new Object();
//Set the id, typename, and name properties to the object.
lookupItem.id = memberId;
lookupItem.name=currentUserName;
lookupItem.typename = 'new_prejectmember'; // Add the object to the array.
lookupData[0] = lookupItem;
// Set the value of the lookup field to the value of the array.
crmForm.all.new_prejectmemberid.DataValue= lookupData; }
}
23.IFAME
放出IFAME
if(crmForm.FormType != 1 && crmForm.FormType != 5)
{
var sArea ="new_new_kaohe_threeshow_new_threeshow_detail";
var Url = "areas.aspx?";
var html =Url;
html += "oId=" + crmForm.ObjectId;
html += "&oType=" + crmForm.ObjectTypeCode;
html += "&security=" + crmFormSubmit.crmFormSubmitSecurity.value;
html += "&tabSet=" + sArea;
crmForm.all.IFRAME_threeshow_detail.src=html;
} 隐藏IFAME工具条上按钮
var frame_m = crmForm.all.IFRAME_threeshow_detail;
frame_m.attachEvent("onload", HideFrameGridBarItems); //隐藏IFARM工具栏按钮
function HideFrameGridBarItems() {
var frame = event.srcElement;
if (frame.readyState != "complete")
return;
var window = frame.contentWindow;
DoHideFrameGridBarItem(window, "_MBlocAddRelatedToNonForm");
DoHideFrameGridBarItem(window, "ISV_New");
DoHideFrameGridBarItem(window, "_MBlocAddRelatedToNonForm");
DoHideFrameGridBarItem(window, "_MBtoplocAssocOneToMany");
DoHideFrameGridBarItem(window, "MoreActions");
DoHideFrameGridBarItem(window, "assign");
DoHideFrameGridBarItem(window, "delete");
}
function DoHideFrameGridBarItem(window, itemName) {
var itemList = window.document.getElementsByTagName("LI");
for (var i = 0; i < itemList.length; i++) {
if (itemList[i].id == null)
continue;
if (itemList[i].id.indexOf(itemName) != -1) {
itemList[i].style.visibility = "hidden";
itemList[i].style.display = "none";
}
}
}
Microsoft Dynamics CRM 4.0 JScript 通用公共方法的更多相关文章
- 一、Microsoft Dynamics CRM 4.0 SDK概述
Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...
- Microsoft Dynamics CRM 4.0导入组织(Import Organization)时间过长的原因总结
952934 How to move the Microsoft Dynamics CRM 4.0 deployment http://support.microsoft.com/default ...
- 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server
不能就地升级早于 Microsoft Dynamics CRM Server 2011 的版本号,比方 Microsoft Dynamics CRM 4.0 server.可是,能够在升级过程中使用 ...
- Microsoft Dynamics CRM 9.0 OP 版本 安装 的那些 雷
天天讲安装过程好无聊了,还是搞点有营养的东西来,那么后面来说说刚出来的MSCRM OP 9.0 版本安装的那些雷: 雷1:操作系统要求Windows 2016 Server 这点还好,因为之前安装MS ...
- 打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
If you installed CRM 4.0 on box where you also have SQL and used a domain account as service account ...
- Microsoft Dynamics CRM 4.0 如何添加自定义按钮
一.通过导入导出ISV.Config(ISV配置),具体如下图: 先设置—>打开导出自定义项—>选择ISV配置—>选择导出所选自定义项 点击确定 保存到桌面,解压,用VS打开cust ...
- Dynamics CRM2016 升级老版本报“JavaScript Web 资源包含对 Microsoft Dynamics CRM 4.0 (2007) Web 服务终结点的引用”问题的解决办法
今天在新的服务器上部署了CRM2016 on-premises,并将CRM2015的数据库拷贝过来准备附加后升级,但在升级过程中遇到了如下错误,向导检测到了我的JavaScript Web 资源中包含 ...
- Dynamics CRM2016 升级老版本号报“JavaScript Web 资源包括对 Microsoft Dynamics CRM 4.0 (2007) Web 服务终结点的引用”问题的解决的方法
今天在新的server上部署了CRM2016 on-premises,并将CRM2015的数据库拷贝过来准备附加后升级,但在升级过程中遇到了例如以下错误.向导检測到了我的JavaScript Web ...
- Microsoft Dynamics CRM 9.0 OP 版本 移动端
本次OP 版本做了架调整,新的移动端基本可以满足客户需求,其内容自己可配置选择,满足了一般企业的应用处理. 具体操作如下: 1.登录APP选择应用(我使用手机浏览器) 2.打开默认应用,现在就一个木得 ...
随机推荐
- iOS UI-集合视图(UICollectionView)
BowenCollectionViewCell.xib #import <UIKit/UIKit.h> @interface BowenCollectionViewCell : UICol ...
- OC 继承
一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 在这里动物是猫类和 ...
- OC 点语法和变量作用域
一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObje ...
- POJ 1062 最短路Dijstra
汉语题... 题意正如你看到的酱... 看的解题报告.思路大概是把每个点看做最高等级.然后枚举所有当前可以访问的点.进行dijstra算法.找到此时到目标点最短路.枚举完之后找到最小的点就可以了. P ...
- CAS 服务端数据库认证
CAS-服务端数据库认证 数据认证需要相关的jar包: cas-server-support-jdbc-x.x.x.jar MySQL-connector-Java-x.x.x-bin.jar 修改C ...
- Prism 4 文档 ---第11章 部署Prism应用程序
要成功移动Prism应用到生产中,需要对部署计划为应用程序的设计过程的一部分.本章介绍了注意事项和你需要采取的准备以部署应用程序,以及你要在用户手中获得部署程序所需要采取的行动. Si ...
- pyinstaller又踩一坑, configparser os.mknod
在使用pyinstaller时,有使用configparser模块. 使用相对路径.在pycharm中测试,正常,打包成exe,就出错了 换用绝对路径, print(os.getcwd()) fp_d ...
- EasyGui 学习文档【超详细中文版】
演示使用 Python 3.3.3 版本 0. 安装 EasyGui 官网:http://easygui.sourceforge.net 最新版: <ignore_js_op> easyg ...
- ESET Smart Security 免费60天
领取地址:http://goo.gl/aEl2Xy 兑换地址:http://goo.gl/h1n62K
- 关闭所有的screen
由于开了很多个screen同时工作,关闭是一个一个比较麻烦,写个命令在这以便日后想不起来时可以用到.1.先看看有多少个screen screen -ls |awk '/Socket/'|awk '{p ...