Cursore lampeggiante dopo esecuzione di un javascript al load di una form

Yanıt Cursore lampeggiante dopo esecuzione di un javascript al load di una form

  • 29 Aralık 2011 Perşembe 16:32
     
     

    Ciao a tutti,

    mi sono accorta di aver erroneamente contrassegnato in modo sbagliato questa richiesta di aiuto.

    Premetto che mi sto avvicinando ora al crm versione 2011 quindi non conosco moltissime cose. Stavo cominciando a customizzare la form account. Ciò che ho fatto è stato mettere un js al load della form che controlla il contenuto di un nuovo campo, tramite una query (fatta utilizzando jquery e json) controllo una informazione sull'account che si è collegato e solo a quel punto disabilito determinati campi sempre sulla form account.

    Ora il mio problema è che, pur funzionando tutto e in basso a sinistra sulla barra di explorer esce il messaggio "Fine", il cursore ovunque io lo posizioni (sui campi rimasti abilitati) continua a lampeggiare molto velocemente e non riesco proprio a spiegarmi il perchè.

    Qualcuno di vuoi ha qualche idea o qualche articolo da suggerirmi per risolvere questo problema?

    Grazie mille   

Tüm Yanıtlar

  • 24 Ocak 2012 Salı 16:33
    Moderatör
     
     

    Ciao, potresti postare lo script che hai utilizzato?? Magari l'errore potrebbe essere li...

    Saluti

    Giorgio


    Giorgio Garcia-Agreda MVP Microsoft Dynamics CRM
  • 25 Ocak 2012 Çarşamba 08:11
     
     

    Ciao,

    dopo infinite prove, senza risolvere il problema ho provare a mettere in produzione il codice e mi sono accorta che questo problema ce l'ho solo sulla mia VM dove faccio i test.

    Cmq il codice che ho utilizzato è il seguente:

    function OnLoadForm()
    {
     if (Xrm.Page.ui.getFormType() == FORM_UPDATE)
     {
      DisabilitaCampiAnagrafica();
     }
    }

    function DisabilitaCampiAnagrafica()
    {
    var listaCampi = new Array("customertypecode", "name", "address1_city", "address1_line1", "address1_postalcode", "address1_stateorprovince", "new_nazioneid", "telephone1", "fax", "emailaddress1", "websiteurl", "new_linguaid", "new_pagamentoid", "new_pagamentoricambiid", "new_partitaiva", "creditlimit", "new_bloccoordini", "new_tipospedizioneid", "new_spedizioniereid", "new_portoid", "new_categoriaid", "new_settoreid", "new_zoneid", "new_regioneid", "new_capoareaid", "new_agenteid", "new_agente3id", "new_saldocontabile", "new_esposizionecliente");
     if (Xrm.Page.getAttribute("accountnumber").getValue() != null)
     {  
      var account = Xrm.Page.getAttribute("accountnumber").getValue()
      if (account.length > 0 )
      {
       var UserId = Xrm.Page.context.getUserId();
       var blocco = RecuperoDati("SystemUserSet(guid'" + UserId + "')?$select=new_bloccoanagrafica");
       if(blocco == null)
        return;
       if (blocco.new_bloccoanagrafica == null)
        return;
       if (blocco.new_bloccoanagrafica == true)
       {
        DisabilitaCampi(listaCampi);
       }  
      }          
     }
    }

    Questo lo eseguo al load della form account. Poi ho una mia libreria js con alcune funzioni tra cui le 2 chiamate DisabilitaCampiAnagrafica (DisabilitaCampi, RecuperoDati e la dichiarazione di costanti per il tipo di apertura della form) che sono:

    var FORM_UNDEFINED = 0;
    var FORM_CREATE = 1;
    var FORM_UPDATE = 2;
    var FORM_READONLY = 3;
    var FORM_DISABLED = 4;

    function DisabilitaCampi(ListaCampi)
    {
    for(var count = 0; count<ListaCampi.length;count++){
     Xrm.Page.getControl(ListaCampi[count]).setDisabled(false);
     }
    }

    function RecuperoDati(query)
    {
     var result;
     var serverUrl = Xrm.Page.context.getServerUrl(); //da usare sempre anche con IFD
     //var customServerURL = document.location.protocol + "//" + document.location.host + "/" + Xrm.Page.context.getOrgUniqueName(); //da usare solo su VM in locale
     var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
     //var query = customServerURL + ODATA_ENDPOINT + "/" + "SystemUserSet" + "(guid'" + id + "')"; query generica restituisce tutto il record
     var query = serverUrl + ODATA_ENDPOINT + "/" + query; 
     $.ajax({ 
       type: "GET",
       contentType: "application/json; charset=utf-8",
       datatype: "json",
       url:query,  
       beforeSend: function (XMLHttpRequest) {           
        XMLHttpRequest.setRequestHeader("Accept", "application/json");  
       },
       success: function (data, textStatus, XmlHttpRequest) {
      result = data.d;  
       },
       error: function (XmlHttpRequest, textStatus, errorThrown) {
      alert(textStatus);
       },
       async: false
      }); 
      return result;
      }

    function RecuperoDati(query)
    {
     var result;
     var serverUrl = Xrm.Page.context.getServerUrl();  
     var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
      var query = serverUrl + ODATA_ENDPOINT + "/" + query; 
     $.ajax({ 
       type: "GET",
       contentType: "application/json; charset=utf-8",
       datatype: "json",
       url:query,  
       beforeSend: function (XMLHttpRequest) {           
        XMLHttpRequest.setRequestHeader("Accept", "application/json");  
       },
       success: function (data, textStatus, XmlHttpRequest) {
      result = data.d;  
       },
       error: function (XmlHttpRequest, textStatus, errorThrown) {
      alert(textStatus);
       },
       async: false
      }); 
      return result;
      }

     

    Grazie mille

    Fabiana

  • 12 Mart 2012 Pazartesi 10:49
     
     Önerilen Yanıt

    Ciao Fabiana,

    ho provato il tuo codice, sembra che vada bene. Potrebbe essere un problema del tuo Internet Explorer che ha qualche blocco dei javascript oppure ha qualche problema di sicurezza??? A me non succede nulla, ma posso tranquillamente inserire i valori nel form.
    Ciao

    Fulvio

    Fulvio Giaccari | CRM Business Manager
    SB Soft S.r.l.


    Fulvio Giaccari [MCPD - MCT - MCSE] SB Soft S.r.l. - www.sbsoft.it

    • Yanıt Olarak Öneren ShareOffice.it 12 Mart 2012 Pazartesi 12:46
    •  
  • 12 Mart 2012 Pazartesi 11:12
     
     Yanıt

    Ciao Fulvio,

    grazie per la tua risposta. Si in effetti era un problema di macchina virtuale. Se devo essere sincera ancora non mi spiego esatamente perchè faccia così su quella VM, ma ho provato il codice altrove e funziona senza lampegii strani.

    Grazie ancora

    Fabiana

    • Yanıt Olarak İşaretleyen FabiD 12 Mart 2012 Pazartesi 11:12
    •