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";
}
}
}