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.打开默认应用,现在就一个木得 ...
随机推荐
- Java-Runtime 类
https://www.cnblogs.com/slyfox/p/7272048.html Java-Runtime 类 Runtime 类代表着Java程序的运行时环境,每个Java程序都有一个Ru ...
- jsp 简单标签开发
实现simpleTag接口的标签通常称为是简单标签,简单标签一共定义了5个方法 setJspContext方法 setParent方法 getParent方法 setJspBody方法 doTag方法 ...
- learning docker steps(7) ----- docker registry 搭建
参考: https://docs.docker.com/engine/reference/builder/ https://hub.docker.com/_/registry/ https://www ...
- Python Django 之 Model
一.Model建表步骤 1. 2. 3. 二.单表的增删改查 1.insert 1)方法一 book.objects.create( title="疯狂外星人", price=10 ...
- ehlib 安装
EhLibProjGroup110.groupproj,依次编译所有的包,再安装所有的dcl设计时包. == EhLib 7.0.133 Full Source 使用安装器EhLibInstaller ...
- 冒泡排序(Bubble Sort),比较次数优化改进
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- NodeJS 难点(网络,文件)的 核心 stream 三:readable ?
什么是可读流 可读流 常见 读取磁盘文件.读取网络请求内容等,看一下前面介绍什么是流用的例子: const rs = fs.createReadStream(filePath); 我们常见的控 ...
- PHP出现Cannot modify header information问题的解决方法
在C盘的WINDOWS中找到php.ini 这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动Apache就ok了.
- bug20170125
1s定时请求接口,接口不响应(接口挂掉),浏览器崩溃
- MyEclipse多次重装、删除注册表、重装系统激活都不成功,终极解决方法 - imsoft.cnblogs
问题:注册成功的MyEclipse被修改了一个配置文件之后,激活失败,然后在网上找激活码,激活不成功,但激活文件一直保存在电脑中,每次打开MyEclipse的激活界面总看得到之前的激活码.后面尝试 ...