MSCRM4.0客户重名提示『苏州小虾提供
首先感谢 小虾的奉献精神
Code
1 crmForm.name.onblur=function(){
2 LikeQuery("account","accountid","name");
3 }
4 function LikeQuery(entityName,idField,checkField)
5 {
6 var url = location.href;
7 var isUserDefined = false;
8 var userDefinedUrl = "";
9 if(url.indexOf("etc=") != -1)
10 {
11 isUserDefined = true;
12 userDefinedUrl = url.substring(url.indexOf("etc="),url.length)
13 }
14
15 var serverPath = location.host;
16 var subPath = location.pathname;
17 var name = document.getElementById(checkField);
18
19 // Prepare the SOAP message.
20 var xml = "<?xml version='1.0' encoding='utf-8'?><soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"+
21 " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"+ GenerateAuthenticationHeader()+
22 "<soap:Body><Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
23 "<fetchXml><fetch count='10' mapping='logical'>"+
24 "<entity name='" + entityName + "'>"+
25 "<attribute name='" + idField + "' />"+
26 "<attribute name='" + checkField + "' />"+
27 "<filter >"+
28 "<condition attribute='" + checkField + "' operator='like' value='%" + name.DataValue + "%' />"+
29 "</filter>"+
30 "</entity>"+
31 "</fetch></fetchXml>"+
32 "</Fetch>"+
33 "</soap:Body>"+
34 "</soap:Envelope>";
35
36 // Prepare the xmlHttpObject and send the request.
37 var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
38 xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
39 xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
40 xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
41 xHReq.setRequestHeader("Content-Length", xml.length);
42 xHReq.send(xml);
43 // Capture the result.
44 var resultXml = xHReq.responseXML;
45 // Check for errors.
46 var errorCount = resultXml.selectNodes('//error').length;
47 if (errorCount != 0)
48 {
49 var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
50 alert(msg);
51 }
52 // Process and display the results.
53 else
54 {
55 // Capture the result and UnEncode it.
56 var resultSet = new String();
57 resultSet = resultXml.text;
58 resultSet.replace('<','<');
59 resultSet.replace('>','>');
60
61 // Create an XML document that you can parse.
62 var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
63 oXmlDoc.async = false;
64 // Load the XML document that has the UnEncoded results.
65 oXmlDoc.loadXML(resultSet);
66 // Display the results.
67 var results = oXmlDoc.getElementsByTagName('result');
68 if (results.length>0)
69 {
70 var accountNum = results.length;
71 for (i=0;i < results.length;i++)
72 {
73 var existaccountid = results[i].selectSingleNode('./' + idField).nodeTypedValue;
74 if (crmForm.ObjectId == existaccountid )
75 {
76 accountNum = accountNum - 1;
77 }
78 }
79 var msgvalue ="";
80 var table = document.createElement("TABLE");
81 var tbody = document.createElement("TBODY");
82 var tr = document.createElement("TR");
83 var tdname = document.createElement("TD");
84 var textnameHtml = document.createElement("B");
85 var textnameText = document.createTextNode("已有相似客户名称("+accountNum+")条");
86
87 textnameHtml.appendChild(textnameText);
88 tdname.appendChild(textnameHtml);
89 tr.appendChild(tdname);
90 tbody.appendChild(tr);
91 for (j=0;j< results.length;j++)
92 {
93 var accountidValue = results[j].selectSingleNode('./' + idField).nodeTypedValue;
94 var nameValue = results[j].selectSingleNode('./' + checkField).nodeTypedValue;
95
96 if (crmForm.ObjectId !=accountidValue )
97 {
98 msgvalue += nameValue;
99 var tr = document.createElement("TR");
100 var tdname = document.createElement("TD");
101 var link = document.createElement("A");
102 if(isUserDefined)
103 {
104 link.href="http://" + serverPath + subPath + "?id=" + accountidValue + "&" + userDefinedUrl;
105 }
106 else
107 {
108 link.href="http://" + serverPath + subPath + "?id=" + accountidValue + "#";
109 }
110
111 link.appendChild(document.createTextNode(nameValue));
112 tdname.appendChild(link);
113 tr.appendChild(tdname);
114 tbody.appendChild(tr);
115 }
116 }
117
118 if (msgvalue !="" )
119 {
120 table.appendChild(tbody);
121 var width = document.getElementById(checkField).offsetWidth;
122 var height = document.body.clientHeight / 3;
123 var offsetTrail = document.getElementById(checkField);
124 var offsetLeft = 1;
125 var offsetTop =19;
126 while(offsetTrail)
127 {
128 offsetLeft += offsetTrail.offsetLeft;
129 offsetTop += offsetTrail.offsetTop;
130 offsetTrail = offsetTrail.offsetParent;
131 }
132 var div=document.createElement("<div style='position:absolute;visibility:visible;border:1px solid #00f;z-index:101;left:"+offsetLeft+";top:"+offsetTop+";width:"+width+"px;height:"+height+"px;background: #d8e8ff;overflow-y:auto;'></div>");
133 div.id="DivLayer";
134
135 var bOnWin;
136 div.onmouseover = function() {bOnWin = 1;}
137 div.onmouseout = function() {bOnWin = null;}
138 div.appendChild(table);
139 document.body.appendChild(div);
140
141 document.documentElement.onmousedown= function()
142 {
143 var DivHas = document.getElementById("DivLayer");
144 if ( !bOnWin && DivHas)
145 document.body.removeChild(DivHas);
146 }
147 }
148 }
149 }
150 }
151
1 crmForm.name.onblur=function(){
2 LikeQuery("account","accountid","name");
3 }
4 function LikeQuery(entityName,idField,checkField)
5 {
6 var url = location.href;
7 var isUserDefined = false;
8 var userDefinedUrl = "";
9 if(url.indexOf("etc=") != -1)
10 {
11 isUserDefined = true;
12 userDefinedUrl = url.substring(url.indexOf("etc="),url.length)
13 }
14
15 var serverPath = location.host;
16 var subPath = location.pathname;
17 var name = document.getElementById(checkField);
18
19 // Prepare the SOAP message.
20 var xml = "<?xml version='1.0' encoding='utf-8'?><soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"+
21 " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"+ GenerateAuthenticationHeader()+
22 "<soap:Body><Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
23 "<fetchXml><fetch count='10' mapping='logical'>"+
24 "<entity name='" + entityName + "'>"+
25 "<attribute name='" + idField + "' />"+
26 "<attribute name='" + checkField + "' />"+
27 "<filter >"+
28 "<condition attribute='" + checkField + "' operator='like' value='%" + name.DataValue + "%' />"+
29 "</filter>"+
30 "</entity>"+
31 "</fetch></fetchXml>"+
32 "</Fetch>"+
33 "</soap:Body>"+
34 "</soap:Envelope>";
35
36 // Prepare the xmlHttpObject and send the request.
37 var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
38 xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
39 xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
40 xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
41 xHReq.setRequestHeader("Content-Length", xml.length);
42 xHReq.send(xml);
43 // Capture the result.
44 var resultXml = xHReq.responseXML;
45 // Check for errors.
46 var errorCount = resultXml.selectNodes('//error').length;
47 if (errorCount != 0)
48 {
49 var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
50 alert(msg);
51 }
52 // Process and display the results.
53 else
54 {
55 // Capture the result and UnEncode it.
56 var resultSet = new String();
57 resultSet = resultXml.text;
58 resultSet.replace('<','<');
59 resultSet.replace('>','>');
60
61 // Create an XML document that you can parse.
62 var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
63 oXmlDoc.async = false;
64 // Load the XML document that has the UnEncoded results.
65 oXmlDoc.loadXML(resultSet);
66 // Display the results.
67 var results = oXmlDoc.getElementsByTagName('result');
68 if (results.length>0)
69 {
70 var accountNum = results.length;
71 for (i=0;i < results.length;i++)
72 {
73 var existaccountid = results[i].selectSingleNode('./' + idField).nodeTypedValue;
74 if (crmForm.ObjectId == existaccountid )
75 {
76 accountNum = accountNum - 1;
77 }
78 }
79 var msgvalue ="";
80 var table = document.createElement("TABLE");
81 var tbody = document.createElement("TBODY");
82 var tr = document.createElement("TR");
83 var tdname = document.createElement("TD");
84 var textnameHtml = document.createElement("B");
85 var textnameText = document.createTextNode("已有相似客户名称("+accountNum+")条");
86
87 textnameHtml.appendChild(textnameText);
88 tdname.appendChild(textnameHtml);
89 tr.appendChild(tdname);
90 tbody.appendChild(tr);
91 for (j=0;j< results.length;j++)
92 {
93 var accountidValue = results[j].selectSingleNode('./' + idField).nodeTypedValue;
94 var nameValue = results[j].selectSingleNode('./' + checkField).nodeTypedValue;
95
96 if (crmForm.ObjectId !=accountidValue )
97 {
98 msgvalue += nameValue;
99 var tr = document.createElement("TR");
100 var tdname = document.createElement("TD");
101 var link = document.createElement("A");
102 if(isUserDefined)
103 {
104 link.href="http://" + serverPath + subPath + "?id=" + accountidValue + "&" + userDefinedUrl;
105 }
106 else
107 {
108 link.href="http://" + serverPath + subPath + "?id=" + accountidValue + "#";
109 }
110
111 link.appendChild(document.createTextNode(nameValue));
112 tdname.appendChild(link);
113 tr.appendChild(tdname);
114 tbody.appendChild(tr);
115 }
116 }
117
118 if (msgvalue !="" )
119 {
120 table.appendChild(tbody);
121 var width = document.getElementById(checkField).offsetWidth;
122 var height = document.body.clientHeight / 3;
123 var offsetTrail = document.getElementById(checkField);
124 var offsetLeft = 1;
125 var offsetTop =19;
126 while(offsetTrail)
127 {
128 offsetLeft += offsetTrail.offsetLeft;
129 offsetTop += offsetTrail.offsetTop;
130 offsetTrail = offsetTrail.offsetParent;
131 }
132 var div=document.createElement("<div style='position:absolute;visibility:visible;border:1px solid #00f;z-index:101;left:"+offsetLeft+";top:"+offsetTop+";width:"+width+"px;height:"+height+"px;background: #d8e8ff;overflow-y:auto;'></div>");
133 div.id="DivLayer";
134
135 var bOnWin;
136 div.onmouseover = function() {bOnWin = 1;}
137 div.onmouseout = function() {bOnWin = null;}
138 div.appendChild(table);
139 document.body.appendChild(div);
140
141 document.documentElement.onmousedown= function()
142 {
143 var DivHas = document.getElementById("DivLayer");
144 if ( !bOnWin && DivHas)
145 document.body.removeChild(DivHas);
146 }
147 }
148 }
149 }
150 }
151