javascript - Embedding Advanced Find View in Entity Form (Crm 2011) -


we making system work on list of records based on 'fetch xml' user specify. (simple fetchxml field)

to make easy want nice ui edit 'fetch xml'.

we saw this solution - crm 4.

is there similar crm 2011?

// javascript source code function searchcustomers() {      var params = '';         var fullname = xrm.page.getattribute("fullname").getvalue();     if (fullname != null) {         params += "fullname" + getparam(fullname);             }         var iframe = xrm.page.ui.controls.get("iframe_advancedfind");      var url = getserverurl() + "/webresources/new_advancedfind.htm?data=" + params;     iframe.setsrc(url); }  function getparam(data) {     return "%3d" + encodeuricomponent(data) + "%26"; } function getserverurl() {     //var context = getglobalcontext();     //var serverurl = context.getclienturl();     var serverurl = window.location.protocol + "//" + window.location.host + "/" + xrm.page.context.getorguniquename();     if (serverurl.match(/\/$/)) {         serverurl = serverurl.substring(0, serverurl.length - 1);     }     return serverurl; } 

// new_advancedfind.htm webresource

<html><head><title></title> <script type=text/javascript src="clientglobalcontext.js.aspx"></script> <script type=text/javascript>          function submitform() {          var fullname = "";         var vals = getdataparam();         fullname = getparam(vals, 'fullname');          var filter = '<filter type="and"> <condition attribute="fullname" value="%' + fullname + '%" operator="like"/> <condition attribute="statecode" value="0" operator="eq"/> </filter>';         var fetch = '<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"><entity name="contact"><attribute name="fullname"/><attribute name="telephone1"/><attribute name="contactid"/><order attribute="fullname" descending="false"/>' + filter + '</entity></fetch>';         var form = document.getelementbyid("advancedfind");          form.action = getserverurl() + '/advancedfind/fetchdata.aspx';         form.layoutxml.value = '<grid name="resultset" object="2" jump="lastname" select="1" icon="1" preview="1"><row name="result" id="contactid"><cell name="fullname" width="300" /><cell name="telephone1" width="125" /></row></grid>';          form.fetchxml.value = fetch;         form.submit();     } function getserverurl() {     //var context = getglobalcontext();     //var serverurl = context.getclienturl();     var serverurl = window.location.protocol + "//" + window.location.host + "/" + xrm.page.context.getorguniquename();     if (serverurl.match(/\/$/)) {         serverurl = serverurl.substring(0, serverurl.length - 1);     }     return serverurl; } function getdataparam() {      //get query string parameters , load them     //into vals array     var retvals = new array();     var vals = new array();     if (location.search != "") {         vals = location.search.substr(1).split("&");         (var prmcounter = 0; prmcounter < vals.length; prmcounter++) {             vals[prmcounter] = vals[prmcounter].replace(/\+/g, " ").split("=");         }         //look parameter named 'data'         var found = false;         (var _prmcounter = 0; _prmcounter < vals.length; _prmcounter++) {             if (vals[_prmcounter][0].tolowercase() == "data") {                 retvals = parsedatavalue(vals[_prmcounter][1]);             }         }      }     return retvals; }  function parsedatavalue(datavalue) {     if (datavalue != "") {         return decodeuricomponent(datavalue).split("&");     } } function getparam(vals, attribute) {     var val = '';     var found = false;     (i = 0; < vals.length && !found; i++) {         if (vals[i].indexof(attribute) > -1) {             val = vals[i].split('=')[1];             found = true;             break;         }     }     return val; } </script> <meta charset=utf-8></head> <body onload=submitform()> <form id="advancedfind" method="post" action=""> <input name=fetchxml type=hidden>  <input name=layoutxml type=hidden>  <input name=entityname value=contact type=hidden>      <!--replace defaultadvfindviewid valu contact's default advanced find view guid--> <input name=defaultadvfindviewid value={00000000-0000-0000-00aa-000000666400} type=hidden>  <input name=viewid value={00000000-0000-0000-00aa-000000666400} type=hidden>  <input name=viewtype value=4230 type=hidden>  <input name=sortcol value=fullname:1; type=hidden>  <input name=uiprovider type=hidden>  <input name=dataprovider type=hidden> </form></body></html> 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -