Riferimento rapido dello scripting dei moduli

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Questo argomento presenta un riferimento rapido dei metodi dello scripting spesso utilizzati basati sulle attività che si eseguono con loro. Per un riferimento completo, vedere Riferimento programmazione sul lato client. Per tutti gli esempi in questa pagina viene utilizzato il modulo principale predefinito dell'entità account, se non diversamente specificato.

In questo argomento

Attributi

  • Accedere agli attributi

  • Ottenere o impostare i dati dell'entità

  • Ottenere i metadati di attributo

Argomenti per l'evento di salvataggio

Visualizzare le notifiche

Controlli

  • Accedere dai controlli del modulo

  • Accedere ai controlli dell'intestazione

  • Accedere ai controlli del processo aziendale

  • Metodi di controllo del modulo

  • Metodi del controllo OptionSet

  • Metodi di controlli della risorsa Web e IFRAME

  • Metodi del controllo di ricerca

  • Metodi di controllo della griglia secondaria

  • Metodi di controllo della data

Navigazione del modulo

Schede e sezioni

Aggiungere o rimuovere i gestori eventi in fase di esecuzione

Metodi di informazioni contestuali

Recuperare, aggiornare, o salvare i dati dell'entità

Attributi

Gli attributi archiviano i dati disponibili nel record.

Accedere agli attributi

Attributi disponibili dalla raccolta Xrm.Page.data.entity.attributes. Per accedere a un attributo è possibile utilizzare il metodo Xrm.Page.data.entity.attributes.get o la versione Xrm.Page.getAttribute di collegamento. Il metodo get accetta quattro tipi di argomenti:

  • Stringa: restituisce un oggetto di attributo in cui il nome attributo corrispondente alla stringa.

  • Numero: restituisce l'oggetto dell'attributo in cui l'indice di raccolta Xrm.Page.data.entity.attributes corrisponde al numero.

  • Nessuno: restituisce una matrice di tutti gli attributi.

  • Delegate function(attribute,index): restituisce una matrice di tutti gli attributi nella raccolta Xrm.Page.data.entity.attributes che comporta che la funzione di delegato restituisca true.

Attività

Esempio

Accedere a un attributo per nome

var nameAttribute = Xrm.Page.getAttribute("name");

Assegna l'attributo per il campo Nome account alla variabile nameAttribute

Accedere a un attributo per indice

var firstAttribute = Xrm.Page.getAttribute(0);

Assegna il primo attributo nella raccolta Xrm.Page.data.entity.attributes alla variabile firstAttribute.

Accedere a tutti gli attributi

var allAttributes = Xrm.Page.getAttribute();

Assegna una matrice di tutti gli attributi nella raccolta Xrm.Page.data.entity.attributes alla variabile allAttributes.

Accedere a tutti gli attributi che soddisfano un criterio specifico

var optionsetAttributes = Xrm.Page.getAttribute(function (attribute, index) {
return attribute.getAttributeType() == "optionset";
});

Assegna una matrice di tutti gli attributi nella raccolta Xrm.Page.data.entity.attributes che soddisfano i criteri della funzione anonima, che restituisce true quando il tipo di attributo è "optionset" alla variabile optionsetAttributes.

La raccolta Xrm.Page.data.entity.attributes include inoltre un metodo di forEach che consente di accedere agli attributi all'interno di una funzione. La seguente funzione writeRequiredAttributesToConsole scriverà i nomi di tutti gli attributi che richiedono dati nella console di debug:

function writeRequiredAttributesToConsole() {
 var requiredAttributeNames = [];

 Xrm.Page.data.entity.attributes.forEach(
 function (attribute, index) {
  if (attribute.getRequiredLevel() == "required")
  { requiredAttributeNames.push(attribute.getName()); }
 });

 if (requiredAttributeNames.length > 0) {
  if (typeof console != "undefined") {
   console.log(requiredAttributeNames.join());
  }
 }
 else {
  if (typeof console != "undefined") {
   console.log("No required attributes detected");
  }
 }
}

In questo argomento

Ottenere o impostare i dati dell'entità

Gli esempi nell seguente tabella mostrano come è possibile ripristinare o modificare dati archiviati negli attributi.

Attività

Metodo

Esempio

Ottenere il valore di un attributo

getValue

var nameValue = Xrm.Page.getAttribute("name").getValue();

Assegna il valore del campo Nome account alla variabile nameValue.

Impostare il valore di un attributo

setValue

Xrm.Page.getAttribute("name").setValue("new name");

Impostare il valore del campo Nome account su "nuovo nome".

Ottenere il valore testuale dell'opzione selezionata di un attributo del set di opzioni

getText

var addressType = Xrm.Page.getAttribute("address1_addresstypecode").getText();

Assegna il testo dell'opzione selezionata nel campo Tipo di indirizzo alla variabile addressType.

Ottenere l'oggetto dell'opzione selezionata in un optionset attributo

getSelectedOption

var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getSelectedOption();

Assegna l'opzione selezionata nel campo Tipo di indirizzo alla variabile addressTypeOption.

In questo argomento

Ottenere i metadati di attributo

Gli esempi nella tabella seguente mostrano come eseguire query sulle proprietà dell'attributo per conoscere il tipo di attributo o modificare il comportamento dell'attributo.

Attività

Metodo

Esempio

Ottenere il tipo di attributo

getAttributeType

var attributeType = Xrm.Page.getAttribute(0).getAttributeType();

Assegna il valore stringa che indica il tipo di attributo per il primo attributo alla variabile attributeType.

Ottenere il formato dell'attributo

getFormat

var attributeFormat = Xrm.Page.getAttribute(0).getFormat();

Assegna il valore stringa che indica il formato del primo attributo alla variabile attributeFormat.

Ottenere il valore iniziale di un attributo Boolean o optionset

getInitialValue

var attributeInitialValue = Xrm.Page.getAttribute("address1_addresstypecode").getInitialValue();

Assegna il valore del numero iniziale del campo Tipo di indirizzo alla variabile attributeInitialValue.

Determinare se un valore di un attributo è stato modificato

getIsDirty

var isNameChanged = Xrm.Page.getAttribute("name").getIsDirty();

Assegna un valore Boolean che indica se il valore del campo Nome account è stato cambiato nella variabile isNameChanged.

Determina se un attributo di ricerca indica una ricerca di partylist.

getIsPartyList

var isPartyList = Xrm.Page.getAttribute("to").getIsPartyList();

Assegna un valore Boolean che indica se il campo Invia per e-mail entità a indica una ricerca di party list.

Questo metodo è disponibile solo per Entità aggiornate.

Ottenere il valore massimo consentito per un attributo che contiene un numero

getMax

var newValue = 100000000000001;
var newValueBelowMax = (newValue < Xrm.Page.getAttribute("creditlimit").getMax())

Assegna un valore Boolean che indica se il valore della variabile newValue supera il valore massimo consentito per il campo Limite di credito alla variabile newValueBelowMax.

Ottenere la lunghezza massima consentita per un attributo che contiene una stringa

getMaxLength

var newAccountName = "A Store";
var nameTooLong = (newAccountName.length > Xrm.Page.getAttribute("name").getMaxLength())

Assegna un valore Boolean che indica se il valore della variabile newAccountName supera la lunghezza massima consentita per il campo Nome account alla variabile nameTooLong.

Ottenere il valore minimo consentito per un attributo che contiene un numero

getMin

var newValue = -1;
var newValueBelowMin = (newValue < Xrm.Page.getAttribute("creditlimit").getMin())

Assegna un valore Boolean che indica se il valore della variabile newValue è inferiore al valore minimo consentito per il campo Limite di credito alla variabile newValueBelowMin.

Ottiene il nome logico di un attributo

getName

var attributeName = Xrm.Page.getAttribute(0).getName();

Assegna il valore del nome logico del primo attributo sulla pagina alla variabile attributeName.

Ottenere l'oggetto di opzione che indica un valore

getOption

var addressTypeOption = Xrm.Page.getAttribute("address1_addresstypecode").getOption(1);
alert(addressTypeOption.text); //displays 'Bill To'

Visualizza un avviso che mostra il testo dell'opzione del campo Tipo di indirizzo con un valore di 1.

Ottenere un valore del numero che indica il livello di precisione per l'attributo di numero

getPrecision

var creditLimitPrecision = Xrm.Page.getAttribute("creditlimit").getPrecision();

Assegna il valore di precisione del campo Limite di credito alla variabile creditLimitPrecision.

Ottenere un valore stringa che indica se è richiesto un valore per un attributo

getRequiredLevel

var creditLimitRequired = Xrm.Page.getAttribute("creditlimit").getRequiredLevel();

Il valore della variabile creditLimitRequired può essere none, required o recommended.

Modificare se i dati sono necessari in un campo per salvare un record

setRequiredLevel

Xrm.Page.getAttribute("creditlimit").setRequiredLevel("required");

Rende il campo Limite di credito obbligatorio.

Stabilire se i dati in un attributo verranno inviati quando viene salvato il record

getSubmitMode

var nameSubmitMode = Xrm.Page.getAttribute("name").getSubmitMode();

Il valore della variabile nameSubmitMode sarà always, never o dirty per rappresentare submitMode per il campo Nome account.

Controllare se i dati in un attributo verranno salvati quando viene salvato il record

setSubmitMode

Xrm.Page.getAttribute("name").setSubmitMode("always");

L'esempio forzerà il valore del campo Nome account per essere sempre salvato anche quando non è stato modificato.

Quando la sicurezza del livello di campo è stata applicata a un attributo,
determinare se un utente ha privilegi per eseguire operazioni di creazione,
lettura o aggiornamento dell'attributo. Per ulteriori informazioni, vedere
Come usare la sicurezza dei campi per controllare l'accesso ai valori dei campi in Microsoft Dynamics CRM 2015

getUserPrivilege

var canUpdateNameAttribute = Xrm.Page.getAttribute("name").getUserPrivilege().canUpdate;

Assegna un valore Boolean che indica il privilegio dell'utente per aggiornare il campo Nome account alla variabile canUpdateNameAttribute.

In questo argomento

Argomenti per l'evento di salvataggio

Quando si applicano le regole business in genere è necessario evitare che un record venga salvato in modo da consentire all'utente di includere le informazioni necessarie. A tale scopo è necessario configurare il gestore eventi da passare nel contesto di esecuzione. Il contesto di esecuzione contiene il metodo getEventArgs per recuperare gli argomenti per l'evento. Questi argomenti includono i metodi da utilizzare per controllare se un record verrà salvato o le proprietà query che offrono informazioni sull'evento save.

Attività

Esempio

Evitare che un record venga salvato.

function My_PreventSaveFunction(eContext) {
 eContext.getEventArgs().preventDefault();
}

Utilizzare il parametro eContext per acquisire il contesto di esecuzione e utilizzare il metodo preventDefault incluso negli argomenti dell'evento.

Decidere quale azione ha avviato il salvataggio.

function My_GetSaveModeTextFunction(eContext) {
 var saveModeCode = eContext.getEventArgs().getSaveMode();
 var saveModeText = "Unknown";
 switch (saveModeCode) {
  case 1:
   saveModeText = "Save";
   break;
  case 2:
   saveModeText = "SaveAndClose";
   break;
  case 5:
   saveModeText = "Deactivate";
   break;
  case 6:
   saveModeText = "Reactivate";
   break;
  case 7:
   saveModeText = "Send";
   break;
  case 15:
   saveModeText = "Disqualify";
   break;
  case 16:
   saveModeText = "Qualify";
   break;
  case 47:
   saveModeText = "Assign";
   break;
  case 58:
   saveModeText = "SaveAsCompleted";
   break;
  case 59:
   saveModeText = "SaveAndNew";
   break;
  case 70:
   saveModeText = "AutoSave";
   break;
 }
 return saveModeText;
}

Utilizzare il parametro eContext per acquisire il contesto di esecuzione e utilizzare il metodo getSaveMode incluso negli argomenti dell'evento per convertire il valore del codice integer nel testo.

In questo argomento

Visualizzare le notifiche

Le notifiche consentono di visualizzare un messaggio all'utente.

Attività

Metodo

Esempio

Visualizzare un messaggio accanto al controllo per indicare che i dati non sono validi.

setNotification

Xrm.Page.getAttribute("name").controls.forEach(
function (control, i) {
control.setNotification("'Test' is not a valid name.");
})

Imposta un messaggio di errore di convalida su ogni controllo nel modulo dell'attributo Nome account.

Quando viene visualizzato questo messaggio il record non può essere salvato.

Questo metodo è disponibile solo per Entità aggiornate.

Rimuovere un messaggi già visualizzato per un controllo.

clearNotification

Xrm.Page.getAttribute("name").controls.forEach(
function (control, i) {
control.clearNotification();
})

Cancella tutti i messaggi di errore di convalida su ogni controllo nel modulo dell'attributo Nome account.

Questo metodo è disponibile solo per Entità aggiornate.

Visualizzare notifiche relative a livello di modulo.

setFormNotification

Xrm.Page.ui.setFormNotification(
"Hello",
"INFO",
"helloMsg"
);

Visualizza il messaggio "Ciao" nella parte superiore del modulo con un'icona di informazioni di sistema.

Questo metodo è disponibile solo per Entità aggiornate.

Rimuovere le notifiche relative a livello di modulo

clearFormNotification

Xrm.Page.ui.clearFormNotification("helloMsg");

Rimuove il messaggio precedentemente impostato utilizzando "helloMsg" come parametro uniqueid.

Questo metodo è disponibile solo per Entità aggiornate.

Visualizzare un dialogo di avviso non bloccante con una funzione di richiamata.

alertDialog

var alertDisplayed = false;
Xrm.Utility.alertDialog(
"Showing Alert",
function () { alertDisplayed = true; }
)

Visualizzare un avviso e impostare il valore della variabile alertDisplayed alla chiusura.

Questo metodo è disponibile solo per Entità aggiornate.

Visualizzare un dialogo di conferma non bloccante con diverse richiamate in base al pulsante premuto dall'utente.

confirmDialog

var agree = false;
Xrm.Utility.confirmDialog(
"Do you agree?",
function () { agree = true;},
function () { agree = false; }
);

Visualizzare un messaggio di conferma e impostare il valore della variabile agree in base alla risposta.

Questo metodo è disponibile solo per Entità aggiornate.

In questo argomento

Controlli

I controlli indicano gli elementi dell'interfaccia utente nel modulo. Ogni attributo nel modulo include almeno un controllo associato. Non ogni controllo è associato a un attributo.IFRAME, risorsa Web e griglie secondarie sono controlli che non hanno attributi.

Accedere dai controlli del modulo

I controlli sono disponibili nella raccolta Xrm.Page.ui.controls. Per accedere a un controllo è possibile utilizzare il metodo Xrm.Page.ui.controls.get o la versione Xrm.Page.getControl di collegamento.

Il metodo get accetta quattro tipi di argomenti:

  • Stringa: restituisce un controllo in cui il nome logico corrisponde alla stringa.

  • Numero: restituisce il controllo in cui l'indice di raccolta Xrm.Page.ui.controls corrisponde al numero.

  • Nessuno: restituisce una matrice di tutti i controlli.

  • Delegate function(control,index): restituisce una matrice di tutti gli controlli nella raccolta Xrm.Page.ui.controls che comporta che la funzione di delegato restituisca true.

Attività

Esempio

Accedere a tutti i controlli per un attributo specifico

var nameControls = Xrm.Page.getAttribute("name").controls.get();

Assegna una matrice di tutti i controlli per l'attributo name alla variabile nameControls.

Accedere a un controllo per nome

var nameControl = Xrm.Page.getControl("name");

Assegna il primo controllo che indica il campo Nome account alla variabile nameControl.

Il primo controllo aggiunto a un modulo per un attributo avrà lo stesso nome dell'attributo. Ogni nome aggiuntivo di controllo include un numero di indice aggiunto al nome. Ad esempio, tre controlli per il nome dell'attributo avranno i nomi: name, name1 e name2 rispettivamente.

Accedere a un controllo per indice

var firstControl = Xrm.Page.getControl(0);

Assegna il primo controllo nella raccolta Xrm.Page.ui.controls alla variabile firstControl.

Accedere a tutti i controlli

var allControls = Xrm.Page.getControl();

Assegna una matrice di tutti i controlli nella raccolta Xrm.Page.ui.controls alla variabile allControls.

Accedere a tutti i controlli che soddisfano un criterio specifico

var optionsetControls = Xrm.Page.getControl(function (control, index) {
return control.getControlType() == "optionset";
});

Assegna una matrice di tutti gli attributi nella raccolta Xrm.Page.ui.controls che soddisfano i criteri della funzione anonima, che restituisce true quando il tipo di controllo è "set di opzioni" alla variabile optionsetControls.

Ogni sezione ha inoltre una raccolta di controlli contenente solo i comandi per tale sezione. Il seguente esempio di codice assegna la variabile generalTabAccountInfoSectionControls a una matrice di controlli disponibili nella sezione Indirizzo della scheda Generale.
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();

Nota

Ogni attributo esiste solo una volta nel modulo, ma un campo può essere aggiunto al modulo per tale attributo più volte. Ogni campo che viene aggiunto crear un altro controllo. I moduli possono essere ulteriormente personalizzati dopo che vengono scritti gli script. Gli script che vengono scritti per i controlli di attributo devono presupporre che sono stati inclusi più volte nel modulo. Qualsiasi azione che si desidera prendere su un controllo per un attributo in genere dovrebbe essere applicata a tutti i controlli per tale attributo. Ad esempio, se si desidera disabilitare un controllo, ma solo uno di essi, l'utente può comunque immettere dati utilizzandone uno diverso. Per questo motivo è consigliabile utilizzare il criterio seguente utilizzando il metodo di raccolta forEach per applicare la stessa logica a tutti i controlli per un attributo, anche se esiste solo un controllo nel momento in cui viene scritto lo script.

Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });

In questo argomento

Accedere ai controlli dell'intestazione

I controlli nell'intestazione seguono la convenzione di denominazione in cui "header_" viene anteposto al nome del controllo. Ad esempio, se l'attributo name si trova nell'intestazione, è possibile accedervi tramite:
var nameControlInHeader = Xrm.Page.getControl("header_name");

Accedere ai controlli del processo aziendale

I controlli nel controllo del processo aziendale seguono la convenzione di denominazione in cui "header_process_" viene anteposto al nome del controllo. Ad esempio, se l'attributo name si trova nell'intestazione, è possibile accedervi tramite:
var nameControlInBPF = Xrm.Page.getControl("header_process_name");

Nota

Solo i controlli nella fase attiva si trovano nella raccolta Xrm.Page.ui.controls quando il modulo viene caricato. Altri controlli del processo aziendale sono aggiunti quando è selezionata una fase per l'entità corrente.

Metodi di controllo del modulo

Dopo avere avuto accesso a un controllo è possibile chiamare i seguenti metodi.

Attività

Metodo

Esempio

Determinare se un controllo è visibile

getVisible

var isNameVisible = Xrm.Page.getControl("name").getVisible();

Assegna un valore Boolean alla variabile isNameVisible che indica se il campo Nome account è visibile.

Nascondere o visualizzare un controllo

setVisible

Xrm.Page.getControl("name").setVisible(false);

Nasconde il campo Nome account.

Ottenere un riferimento all'attributo per il controllo

getAttribute

var nameAttribute = Xrm.Page.getControl("name").getAttribute();

Assegna l'attributo per il controllo per il campo Nome account alla variabile nameAttribute.

Nota

Non tutti i controlli hanno attributi.

Determinare il tipo del controllo

getControlType

var optionSetControls = Xrm.Page.getControl(function (control, index) { return control.getControlType() == "optionset"; });

Assegna una matrice di controlli optionset alla variabile optionSetControls.

Determinare se un controllo è abilitato

getDisabled

var disabledControls = Xrm.Page.getControl(function(control, index) { return control.getDisabled(); });

Assegna una matrice di controlli disabilitati alla variabile disabledControls.

Nota

I controlli di risorsa Web e griglia secondaria non supportano questo metodo.

Disabilitare o abilitare un controllo

setDisabled

Xrm.Page.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); });

Disabilitare ogni controllo per l'attributo name.

Suggerimento

Ricordare che qualsiasi attributo può avere più controlli.

Ottenere l'etichetta per un controllo

getLabel

var nameControlLabel = Xrm.Page.getControl("name").getLabel();

Assegna il valore del controllo per il campo Nome account alla variabile nameControlLabel.

Modificare l'etichetta per un controllo

setLabel

Xrm.Page.getControl("name").setLabel("Company Name");

Modificare l'etichetta del campo Nome account in Nome azienda.

Ottenere il nome di un controllo

getName

var firstControlName = Xrm.Page.getControl(0).getName();

Assegna il nome del primo controllo nella raccolta Xrm.Page.ui.controls alla variabile firstControlName.

Ottenere il padre di un controllo

getParent

var parentSection = Xrm.Page.getControl("name").getParent();

Assegna la sezione padre del controllo per il campo Nome account alla variabile parentSection.

Impostare lo stato attivo su un controllo

setFocus

Xrm.Page.getControl("name").setFocus();

Imposta lo stato attivo sul campo Nome account.

In questo argomento

Metodi del controllo OptionSet

I set di opzioni hanno alcuni metodi speciali. È importante tenere presente che l'attributo definisce le opzioni valide per un optionset. Durante l'utilizzo di un controllo optionset è possibile modificare le opzioni disponibili ma non è possibile creare nuove opzioni.

Attività

Metodo

Esempio

Aggiungere un'opzione a un controllo di set di opzioni

addOption

var addressTypeCodeControl = Xrm.Page.getControl("address1_addresstypecode");
var billToAddressOption = addressTypeCodeControl.getAttribute().getOption(1);
addressTypeCodeControl.clearOptions();
addressTypeCodeControl.addOption(billToAddressOption);

Utilizzando un riferimento al controllo per il campo Tipo di indirizzo, accedere all'attributo per il controllo e utilizzare il metodo di getOption per impostare la variabile billToAddressOption sull'opzione che indica l'opzione Fatturazione.

Utilizzare clearOptions per rimuovere tutte le opzioni esistenti e utilizzare addOption per impostare billToAddressOption come l'unica opzione disponibile per il controllo.

Rimuovere tutte le opzioni da un controllo di set di opzioni

clearOptions

Xrm.Page.getControl("address1_addresstypecode").clearOptions();

Rimuovere tutte le opzioni del controllo per il campo Tipo di indirizzo.

Rimuovere una singola opzione da un controllo di set di opzioni.

removeOption

Xrm.Page.getControl("address1_addresstypecode").removeOption(1);

Rimuovere l'opzione Fatturazione dal controllo per il campo Tipo di indirizzo.

In questo argomento

Metodi di controlli della risorsa Web e IFRAME

Un controllo IFRAME consente di includere una pagina all'interno di un modulo fornendo un URL. Una risorsa Web HTML aggiunta a un modulo viene presentata tramite un elemento IFRAME.Silverlight e le risorse Web di immagine sono incorporati direttamente nella pagina.

Attività

Metodo

Esempio

Ottenere il valore del parametro stringa di query dei dati passato a una risorsa Web Silverlight.

getData

var dataValue = Xrm.Page.getControl("WebResource_SilverLightControl").getData();

Assegna il valore passato attraverso il parametro stringa di query dei dati alla variabile dataValue.

Ottenere l'URL per il contenuto attualmente visualizzato in IFRAME.

getSrc

var iframeSource = Xrm.Page.getControl("IFRAME_targetPage").getSrc();

Assegna la stringa che indica il valore dell'attributo IFRAME.src corrente alla variabile iframeSource.

Impostare l'URL per il contenuto da visualizzare in IFRAME.

setSrc

Xrm.Page.getControl("IFRAME_targetPage").setSrc("http://www.bing.com");

Impostare un URL per essere IFRAME.src per il controllo.

Ottenere l'URL che indica l'impostazione predefinita configurata URL per IFRAME.

getInitialUrl

var initialUrl = Xrm.Page.getControl("IFRAME_bing").getInitialUrl();

Assegna l'URL configurato da visualizzare in IFRAME alla variabile initialUrl.

Ottiene l'oggetto nel modulo che indica la risorsa Web o IFRAME.

getObject

var obj = Xrm.Page.getControl("IFRAME_bing").getObject();

Assegna un riferimento di oggetto alla variabile obj. Per IFRAME questo sarà IFRAME l'elemento di Document Object Model (DOM). Per una risorsa Web Silverlight sarà l'elemento Oggetto che indica il plug-in Silverlight incorporato.

In questo argomento

Metodi del controllo di ricerca

Un requisito comune per i controlli di ricerca è specificare la visualizzazione predefinita visualizzata quando un utente aggiorna il campo.

Attività

Metodo

Esempio

Aggiungere una visualizzazione personalizzata per una ricerca.

addCustomView

var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}";
var viewDisplayName = "SDK Sample View";
var fetchXml = "<fetch version='1.0' " +
"output-format='xml-platform' " +
"mapping='logical'>" +
"<entity name='account'>" +
"<attribute name='name' />" +
"<attribute name='address1_city' />" +
"<order attribute='name' " +
"descending='false' />" +
"<filter type='and'>" +
"<condition attribute='ownerid' " +
"operator='eq-userid' />" +
"<condition attribute='statecode' " +
"operator='eq' " +
"value='0' />" +
"</filter>" +
"<attribute name='primarycontactid' />" +
"<attribute name='telephone1' />" +
"<attribute name='accountid' />" +
"<link-entity "+
"alias='accountprimarycontactidcontactcontactid' " +
"name='contact' " +
"from='contactid' " +
"to='primarycontactid' " +
"link-type='outer' " +
"visible='false'>" +
"<attribute name='emailaddress1' />" +
"</link-entity>" +
"</entity>" +
"</fetch>";
var layoutXml = "<grid name='resultset' " +
"object='1' " +
"jump='name' " +
"select='1' " +
"icon='1' " +
"preview='1'>" +
"<row name='result' " +
"id='accountid'>" +
"<cell name='name' " +
"width='300' />" +
"<cell name='telephone1' " +
"width='100' />" +
"<cell name='address1_city' " +
"width='100' />" +
"<cell name='primarycontactid' " +
"width='150' />" +
"<cell name='accountprimarycontactidcontactcontactid.emailaddress1' " +
"width='150' " +
"disableSorting='1' />" +
"</row>" +
"</grid>";
Xrm.Page.getControl("parentaccountid").addCustomView(viewId, "account", viewDisplayName, fetchXml, layoutXml, true);

Imposta le variabili viewId, viewDisplayName, fetchXml e layoutXml da passare come argomenti in modo da aggiungere una visualizzazione personalizzata come visualizzazione predefinita al controllo per il campo di ricerca Account padre.

Ottenere la visualizzazione predefinita per una ricerca.

getDefaultView

var defaultViewId = Xrm.Page.getControl("parentaccountid").getDefaultView();

Assegnare il valore id della visualizzazione predefinita alla variabile defaultViewId.

Impostare la visualizzazione predefinita per una ricerca.

setDefaultView

var viewId = "{C7034F4F-6F92-4DD7-BD9D-9B9C1E996380}";
Xrm.Page.getControl("parentaccountid").setDefaultView(viewId);

Imposta la visualizzazione predefinita per il controllo per il campo Account padre sul valore id alla variabile viewId.

Filtrare i record restituiti per un controllo di ricerca

addCustomFilter

Il seguente esempio di codice riguarda la ricerca Account del modulo Opportunità (parentaccountid). Quando la funzione Sdk.setParentAccountIdFilter è impostata nel gestore eventi Onload del modulo, la funzione Sdk.filterCustomAccounts viene aggiunta all'evento PreSearch per tale ricerca. Ne risulta che solo gli account con il valore Categoria (accountcategorycode) di Cliente preferito (1) verranno restituiti.

var Sdk = window.Sdk || {};

Sdk.filterCustomerAccounts = function () {
    //Only show accounts with the type 'Preferred Customer'
    var customerAccountFilter = "<filter type='and'><condition attribute='accountcategorycode' operator='eq' value='1'/></filter>";
    Xrm.Page.getControl("parentaccountid").addCustomFilter(customerAccountFilter, "account");
}
//set 'Sdk.setParentAccountIdFilter' in the Opportunity form Onload event handler
Sdk.setParentAccountIdFilter = function () {
    Xrm.Page.getControl("parentaccountid").addPreSearch(Sdk.filterCustomerAccounts);
}

In questo argomento

Metodi di controllo della griglia secondaria

Il controllo SubGrid è una griglia in un modulo. Ha un metodo univoco.

Attività

Metodo

Esempio

Aggiornare i dati visualizzati nella griglia secondaria

refresh

Xrm.Page.getControl("accountcontactsgrid").refresh();

Aggiornare i Contattisubgrid.

In questo argomento

Metodi di controllo della data

Il controllo data ha un metodo univoco.

Attività

Metodo

Esempio

Specificare se il controllo della data deve visualizzare la porzione di tempo della data.

setShowTime

Xrm.Page.getControl("createdon").setShowTime(false);

Impostare il campo Data creazione in modo che il tempo non venga visualizzato.

Questo metodo è disponibile solo per Entità aggiornate.

In questo argomento

È possibile utilizzare e manipolare gli elementi di navigazione nella parte sinistra del modulo. Questi elementi di navigazione in genere mostrano i record relativi al record visualizzato nel modulo.

È possibile accedere agli elementi di navigazione mediante la raccolta Xrm.Page.ui.navigation.items. Analogamente a tutte le raccolte nel modulo, è presente un metodo forEach e get.

Attività

Metodo

Esempio

Ottenere il nome di un elemento di navigazione

getId

var navItemIds = [];
Xrm.Page.ui.navigation.items.forEach(
function (item, index)
{ navItemIds.push(item.getId()) }
);

Creare una matrice navItemIds contenente i valori id di ogni elemento di navigazione nella raccolta Xrm.Page.ui.navigation.items.

Ottenere l'etichetta di un elemento di navigazione.

getLabel

var navAddressesLabel = Xrm.Page.ui.navigation.items.get("navAddresses").getLabel();

Assegnare l'etichetta per l'elemento di navigazione Altri indirizzi alla variabile navAddressesLabel.

Impostare l'etichetta di un elemento di navigazione

setLabel

Xrm.Page.ui.navigation.items.get("navAddresses").setLabel("Other Addresses");

Modificare l'etichetta dell'elemento di navigazione Altri indirizzi in Altri indirizzi.

Mostrare o nascondere un elemento di navigazione

setVisible

Xrm.Page.ui.navigation.items.get("navAddresses").setVisible(false);

Nascondere l'elemento di navigazione More Addresses.

Determinare se un elemento di navigazione è visibile

getVisible

var moreAddressesVisible = Xrm.Page.ui.navigation.items.get("navAddresses").getVisible()

Assegnare un valore Boolean alla variabile moreAddressesVisible per rappresentare se l'elemento di navigazione Altri indirizzi è visibile.

Impostare lo stato attivo su un elemento di navigazione.

setFocus

Xrm.Page.ui.navigation.items.get("navAddresses").setFocus();

Impostare lo stato attivo sull'elemento di navigazione Altri indirizzi.

In questo argomento

Schede e sezioni

Ogni modulo ha una raccolta di schede. Ogni scheda ha una raccolta di sezioni. Ogni sezione ha una raccolta di controlli. È possibile a livello di programmazione accedere a questi elementi e utilizzare i loro metodi.

Attività

Metodo

Esempio

Determinare se una scheda è espansa o compressa

getDisplayState

var isGeneralTabExpanded = (Xrm.Page.ui.tabs.get("general").getDisplayState() == "expanded")

Assegnare un valore Boolean alla variabile isGeneralTabExpanded che indica se la scheda Generale è espansa.

Espandere o comprimere una scheda

setDisplayState

Xrm.Page.ui.tabs.get("general").setDisplayState("collapsed");

Comprimere la scheda Generale.

Determinare se una scheda è visibile

getVisible

var isGeneralTabVisible = Xrm.Page.ui.tabs.get("general").getVisible();

Assegnare un valore Boolean alla variabile isGeneralTabVisible che indica se la scheda Generale è visibile.

Mostrare o nascondere una scheda

setVisible

Xrm.Page.ui.tabs.get("general").setVisible(false);

Nascondere la scheda Generale.

Ottenere l'etichetta per una scheda

getLabel

var generalTabLabel = Xrm.Page.ui.tabs.get("general").getLabel();

Assegnare l'etichetta della scheda Generale alla variabile generalTabLabel.

Modificare l'etichetta per una scheda

setLabel

Xrm.Page.ui.tabs.get("general").setLabel("Major");

Modificare l'etichetta della scheda Generale in Principale.

Impostare lo stato attivo su una scheda

setFocus

Xrm.Page.ui.tabs.get("general").setFocus();

Impostare lo stato attivo sulla scheda Generale.

Ottenere il nome della scheda

getName

var firstTabName = Xrm.Page.ui.tabs.get(0).getName();

Assegnare il nome della prima scheda alla variabile firstTabName.

Ottenere la scheda padre di una sezione

getParent

Xrm.Page.getControl("industrycode").getParent().getParent().setFocus();

Impostare lo stato attivo sulla scheda che contiene il campo Settore.

Determinare se una sezione è visibile

getVisible

var industrySectionVisible = Xrm.Page.getControl("industrycode").getParent().getVisible();

Assegnare il valore Boolean alla variabile industrySectionVisible indicando se la sezione che contiene il campo Settore è visibile.

Mostrare o nascondere una sezione

setVisible

Xrm.Page.getControl("industrycode").getParent().setVisible(false);

Nascondere la sezione che contiene il campo Settore.

Ottenere l'etichetta per una sezione

getLabel

var industryFieldSectionLabel = Xrm.Page.getControl("industrycode").getParent().getLabel();

Assegnare l'etichetta della sezione che contiene il campo Settore alla variabile industryFieldSectionLabel.

Modificare l'etichetta per una sezione

setLabel

Xrm.Page.getControl("industrycode").getParent().setLabel("Detailed Information");

Modificare l'etichetta della sezione che contiene il campo Settore in Informazioni dettagliate.

In questo argomento

Aggiungere o rimuovere i gestori eventi in fase di esecuzione

I gestori eventi in genere sono configurati utilizzando l'editor di moduli nell'applicazione ma è anche possibile aggiungerli all'evento OnSave dei moduli e attribuire eventi OnChange in fase di esecuzione utilizzando APIs. Gli esempi in questa sezione si riferiranno alla definizione di funzione seguente:
function myFunction() {
//perform action here
}

Come è possibile aggiungere una funzione anonima, la funzione deve avere un nome a cui fare riferimento per rimuoverla.

Attività

Metodo

Esempio

Aggiungere una funzione all'evento OnSave

addOnSave

Xrm.Page.data.entity.addOnSave(myFunction);

Aggiungere la funzione myFunction all'evento OnSave.

Rimuovere una funzione dall'evento OnSave

removeOnSave

Xrm.Page.data.entity.removeOnSave(myFunction);

Rimuovere la funzione myFunction all'evento OnSave.

Aggiungere una funzione all'evento OnChange di un attributo.

addOnChange

Xrm.Page.getAttribute("name").addOnChange(myFunction);

Aggiungere la funzione myFunction all'evento OnChange del campo Nome account.

Rimuovere una funzione dall'evento OnChange di un attributo

removeOnChange

Xrm.Page.getAttribute("name").removeOnChange(myFunction);

Rimuovere la funzione myFunction all'evento OnChange del campo Nome account.

Aggiungere una funzione all'evento PreSearch di un controllo di ricerca.

addPreSearch

Il seguente esempio di codice riguarda la ricerca Account del modulo Opportunità (parentaccountid). Quando la funzione Sdk.setParentAccountIdFilter è impostata nel gestore eventi Onload del modulo, la funzione Sdk.filterCustomAccounts viene aggiunta all'evento PreSearch per tale ricerca. Ne risulta che solo gli account con il valore Categoria (accountcategorycode) di Cliente preferito (1) verranno restituiti.

var Sdk = window.Sdk || {};

Sdk.filterCustomerAccounts = function () {
    //Only show accounts with the type 'Preferred Customer'
    var customerAccountFilter = "<filter type='and'><condition attribute='accountcategorycode' operator='eq' value='1'/></filter>";
    Xrm.Page.getControl("parentaccountid").addCustomFilter(customerAccountFilter, "account");
}
//set 'Sdk.setParentAccountIdFilter' in the Opportunity form Onload event handler
Sdk.setParentAccountIdFilter = function () {
    Xrm.Page.getControl("parentaccountid").addPreSearch(Sdk.filterCustomerAccounts);
}

Utilizzare Evento OnStageChange e Evento OnStageSelected per gli eventi che si verificano nel controllo del processo aziendale. Questi eventi hanno solo metodi per aggiungere o rimuovere i gestori eventi a livello di programmazione.Ulteriori informazioni:Metodi per gestire i gestori eventi.

In questo argomento

Metodi di informazioni contestuali

Utilizzare questi metodi per ottenere informazioni sull'utente, l'organizzazione e il client. La tabella seguente fornisce alcuni dei metodi di contesto più utili. Per tutti i metodi di contesto, vedere Contesto sul lato client (riferimento sul lato client)

Attività

Metodo

Esempio

Ottenere l'URL per connettersi all'organizzazione.

getClientUrl

var serverUrl = Xrm.Page.context.getClientUrl();

Assegnare una stringa che indica l'URL alla variabile serverUrl.

Ottenere l'identificatore univoco per l'utente corrente.

getUserId

var userId = Xrm.Page.context.getUserId();

Assegnare una stringa che indica l'ID dell'utente alla variabile userId.

Ottenere il nome dell'utente corrente.

getUserName

var userName = Xrm.Page.context.getUserName();

Assegnare una stringa che indica il nome dell'utente alla variabile userName.

Questo metodo è disponibile solo per Entità aggiornate.

Ottenere il codice della lingua che indica la lingua dell'interfaccia utente preferita dell'utente.

getUserLcid

var userLCID = Xrm.Page.context.getUserLcid();

Assegnare un numero che indica la lingua preferita dell'utente alla variabile userLCID.

Ottenere una matrice di stringhe che indica i valori GUID per ogni ruolo di sicurezza assegnato all'utente corrente e a tutti i team cui l'utente è associato.

getUserRoles

var userRoles = Xrm.Page.context.getUserRoles();

Assegna una matrice di stringhe che indicano i ruoli di sicurezza dell'utente alla variabile userRoles.

Determinare se lo script è in esecuzione nel client Microsoft Dynamics CRM per Outlook.

client.getClient

var isOutlookClient = (Xrm.Page.context.client.getClient() == "Outlook");

Assegnare un valore Boolean che indica se il codice è in esecuzione nel client Dynamics CRM per Outlook alla variabile isOutlookClient.

Determinare se l'utente sta lavorando offline con il client Microsoft Dynamics CRM per Microsoft Office Outlook con accesso offline.

client.getClientState

var IsOffline = (Xrm.Page.context.client.getClientState() == "Offline");

Assegnare un valore Boolean che indica se l'utente sta lavorando attualmente offline alla variabile IsOffline.

In questo argomento

Recuperare, aggiornare, o salvare i dati dell'entità

Nella tabella seguente sono elencati i metodi disponibili per ottenere informazioni sul record corrente o per salvare le modifiche. Per ulteriori informazioni, vedere Xrm.Page.data.entity (riferimento lato client) e Xrm.Page.data (riferimento lato client).

Attività

Metodo

Esempio

Ottenere il nome logico dell'entità corrente

getEntityName

var entityName = Xrm.Page.data.entity.getEntityName();

Assegnare il nome di entità logico alla variabile entityName.

Ottenere il valore dell'attributo primario per l'entità corrente.
L'attributo primario è il valore utilizzato per identificare il record. Ad esempio contact.fullname.

getPrimaryAttributeValue

var primaryAttributeValue = Xrm.Page.data.entity.getPrimaryAttributeValue();

Assegnare il valore dell'attributo primario alla variabile primaryAttributeValue.

Questo metodo è disponibile solo per Entità aggiornate.

Ottenere l'Id del record corrente

getId

var recordId = Xrm.Page.data.entity.getId();

Assegnare l'id del record alla variabile recordId.

Aggiornare in modalità asincrona i dati del modulo senza ricaricare la pagina.

refresh

Xrm.Page.data.refresh();

Aggiorna i dati nel modulo.

Questo metodo è disponibile solo per Entità aggiornate.

Salvare il record corrente

Xrm.Page.data.entity.Salva

Xrm.Page.data.entity.save();

Salva il record. Esistono argomenti facoltativi. Utilizzare saveandclose o saveandnew per eseguire azioni equivalenti.

Salvare il record corrente in modalità asincrona con l'opzione per impostare
funzioni di richiamata da eseguire dopo che l'operazione di salvataggio è stata completata.

Xrm.Page.data.Salva

Xrm.Page.data.save().then(
function(){
Xrm.Utility.alertDialog("Record saved");
},
function(error){
Xrm.Utility.alertDialog(error.message);
});

Salva il record e visualizza un messaggio che indica lo stato del salvataggio.

Questo metodo è disponibile solo per Entità aggiornate.

Determinare se i dati del record corrente sono stati modificati.

getIsDirty

var isDirty = Xrm.Page.data.entity.getIsDirty();

Assegnare un valore Boolean che indica che i dati nel record sono stati modificati alla variabile isDirty.

Ottenere una stringa che indica i dati che vengono inviati al server quando viene salvato il record.

getDataXml

var dataXml = Xrm.Page.data.entity.getDataXml();

Assegnare una stringa che indica i dati da salvare alla variabile dataXml.

In questo argomento

Vedere anche

Utilizzare il modello a oggetti Xrm.Page
Creare il codice per moduli di Microsoft Dynamics CRM 2015
Riferimento programmazione sul lato client

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright