簡體   English   中英

動態 crm 4.0 查找字段 onload() 查詢

[英]dynamics crm 4.0 lookup field onload() query

我有一個帶有查找字段schoolLookupId的帳戶實體,它引用回自定義實體new_schools 查找字段僅顯示學校名稱。 我希望能夠使用帳戶表單的onload()事件處理程序來運行一些 javascript 代碼,該代碼將查詢new_schools實體的new_phonenumber屬性,以查看它是否與我提供的值匹配,例如var x = "1234" ,如果確實如此,則使用與找到的電話號碼對應的學校名稱相應地更新schoolLookupId 即使用已存在的電話號碼更新查找字段,而無需創建全新的查找值。

我可以使用獲取查找字段的屬性

var name = crmForm.all.schoolLookupid.DataValue[0].name
var id = crmForm.all.schoolLookupid.DataValue[0].id
var typename = crmForm.all.schoolLookupid.DataValue[0].typename

但我不知道如何檢索、比較查找字段后面的數據,並相應地更新查找字段。

您一如既往的幫助是無價的。

嘗試將此代碼放在加載事件中:

   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>" +  
    " <RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +  
    " <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +  
    "        <q1:EntityName>new_schools</q1:EntityName>" + 
    "        <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" + 
    "          <q1:Attributes>" + 
    "            <q1:Attribute>new_schoolsid</q1:Attribute>" + 
    "          </q1:Attributes>" + 
    "        </q1:ColumnSet>" + 
    "        <q1:Distinct>false</q1:Distinct>" + 
    "        <q1:Criteria>" + 
    "          <q1:FilterOperator>And</q1:FilterOperator>" + 
    "          <q1:Conditions>" + 
    "            <q1:Condition>" + 
    "              <q1:AttributeName>new_phonenumber</q1:AttributeName>" + 
    "              <q1:Operator>Equal</q1:Operator>" + 
    "              <q1:Values>" + 
    "                <q1:Value xsi:type=\"xsd:string\">"+crmForm.all.new_phonenumber.DataValue+"</q1:Value>" + 
    "              </q1:Values>" + 
    "            </q1:Condition>" +
    "          </q1:Conditions>" + 
    "        </q1:Criteria>" + 
    " </query>" +  
    " </RetrieveMultiple>" +  
    " </soap:Body>" +  
    "</soap:Envelope>" +  
    "";  

    var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    xmlHttpRequest.Open("POST", "http://"+window.location.hostname+":"+window.location.port+"/mscrmservices/2007/crmservice.asmx", false);
    xmlHttpRequest.setRequestHeader("SOAPAction"," http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");  
    xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");  
    xmlHttpRequest.setRequestHeader("Content-Length", xml.length);  
    xmlHttpRequest.send(xml);  

    var resultXml = xmlHttpRequest.responseXML;

    if (_resultXml.xml.search('<q1:new_schoolsid')>0)
    {
        var val = xmlDoc.getElementsByTagName("q1:new_schoolsid")[0].childNodes[0].nodeValue;

        var lookupitem = new Array(); 
        lookupitem[0] = new LookupControlItem(val , typecode, name); 
        crmForm.all.schoolLookupid.DataValue = lookupitem ; 
    }
}

我不嘗試這個代碼要小心。 使用此代碼作為指南。

希望這可以幫助。 如果我回答了您的問題,請將回復標記為答案,並投票為有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM