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

    Domanda

  • 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   

    giovedì 29 dicembre 2011 16:32

Risposte

  • 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

    • Contrassegnato come risposta FabiD lunedì 12 marzo 2012 11:12
    lunedì 12 marzo 2012 11:12

Tutte le risposte

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

    Saluti

    Giorgio


    Giorgio Garcia-Agreda MVP Microsoft Dynamics CRM
    martedì 24 gennaio 2012 16:33
    Moderatore
  • 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

    mercoledì 25 gennaio 2012 08:11
  • 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

    lunedì 12 marzo 2012 10:49
  • 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

    • Contrassegnato come risposta FabiD lunedì 12 marzo 2012 11:12
    lunedì 12 marzo 2012 11:12