Principale utente con più risposte
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
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
Tutte le risposte
-
-
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
-
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.
CiaoFulvio
Fulvio Giaccari | CRM Business Manager
SB Soft S.r.l.Fulvio Giaccari [MCPD - MCT - MCSE] SB Soft S.r.l. - www.sbsoft.it
- Proposto come risposta ShareOffice.it lunedì 12 marzo 2012 12:46
-
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