Share via


Beknopte naslag voor het opstellen van formulierscripts

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Dit onderwerp bevat een beknopt overzicht van veelgebruikte formulierscriptmethoden op basis van taken die u ermee uitvoert. Voor het volledige overzicht raadpleegt u Programmeerreferentie op de client. Alle voorbeelden op deze pagina gebruiken het entiteithoofdformulier van het standaardaccount tenzij anders is aangegeven.

In dit onderwerp

Kenmerken

  • Toegang verkrijgen tot kenmerken

  • Entiteitskenmerkengegevens ophalen of instellen

  • Kenmerkmetagegevens ophalen

Gebeurtenisargumenten opslaan

Meldingen weergeven

Besturingselementen

  • Toegang verkrijgen tot formulierbesturingselementen

  • Toegang verkrijgen tot besturingselementen voor kopteksten

  • Toegang verkrijgen tot bedrijfsprocesstroombesturingen

  • Methoden voor formulierbesturingselementen

  • OptionSet-besturingmethoden

  • Methoden voor IFRAME- en webresourcebesturingselementen

  • Methoden voor opzoekbesturingselementen

  • Methoden voor Subgrid-besturingselement

  • Methoden voor datumbesturingselement

Formuliernavigatie

Tabbladen en secties

Gebeurtenishandlers toevoegen of verwijderen tijdens runtime

Methoden voor contextuele informatie

Entiteitgegevens ophalen, vernieuwen of opslaan

Kenmerken

Kenmerken slaan de gegevens op die beschikbaar zijn in de record.

Toegang verkrijgen tot kenmerken

Kenmerken zijn beschikbaar vanuit de verzameling Xrm.Page.data.entity.attributes. Als u toegang tot een kenmerk wilt krijgen, kunt u de methode Xrm.Page.data.entity.attributes.get of de snelle versie Xrm.Page.getAttribute gebruiken. De mthode get accepteert vier typen argumenten:

  • Tekenreeks: Retourneert een kenmerkobject waarbij de naam van het kenmerk overeenkomt met de tekenreeks.

  • Getal: Retourneert het kenmerkobject waarbij de verzamelingsindex Xrm.Page.data.entity.attributes overeenkomt met het getal.

  • Geen: Retourneert een matrix van alle kenmerken.

  • Delegate function(attribute,index): retourneert een matrix van alle kenmerken uit de verzameling Xrm.Page.data.entity.attributes die ertoe leiden dat de gemachtigdefunctie true retourneert.

Opdracht

Voorbeeld

Toegang tot een kenmerk verkrijgen op naam

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

Wijst het kenmerk voor het veld Accountnaam toe aan de variabele nameAttribute

Toegang tot een kenmerk verkrijgen op index

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

Wijst het eerste kenmerk in de verzameling firstAttributeXrm.Page.data.entity.attributes toe aan de variabele.

Toegang verkrijgen tot alle kenmerken

var allAttributes = Xrm.Page.getAttribute();

Wijst een matrix van alle kenmerken in de verzameling allAttributesXrm.Page.data.entity.attributes toe aan de variabele.

Toegang verkrijgen tot alle kenmerken die voldoen aan specifieke criteria

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

Wijst een matrix van alle kenmerken in de verzameling Xrm.Page.data.entity.attributes die voldoen aan de criteria die zijn ingesteld in de anonieme functie, die true retourneert als het kenmerktype "optionset" is, toe aan de variabele optionsetAttributes.

De verzameling Xrm.Page.data.entity.attributes bevat eveneens een methode forEach die u kunt gebruiken om toegang te verkrijgen tot kenmerken binnen een functie. De volgende functie writeRequiredAttributesToConsole schrijft de namen van kenmerken die gegevens vereisen weg naar de foutopsporingconsole:

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 dit onderwerp

Entiteitskenmerkengegevens ophalen of instellen

De voorbeelden in de volgende tabel laten ziet u hoe u gegevens kunt ophalen of wijzigen die zijn opgeslagen in kenmerken.

Opdracht

Methode

Voorbeeld

De waarde van een kenmerk ophalen

getValue

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

Wijst de waarde van het veld Accountnaam toe aan de variabele nameValue.

De waarde van een kenmerk instellen

setValue

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

Stelt de waarde van het veld Accountnaam in op "nieuwe naam".

De tekstwaarde van de momenteel geselecteerde optie van een optiesetkenmerk ophalen

getText

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

Wijst de tekst van de geselecteerde optie in het veld Adrestype toe aan de variabele addressType.

Het momenteel geselecteerde optieobject in een kenmerk optionset ophalen

getSelectedOption

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

Wijst de geselecteerde optie in het veld Adrestype toe aan de variabele addressTypeOption.

In dit onderwerp

Kenmerkmetagegevens ophalen

De voorbeelden in de volgende tabel laten zien hoe u query's kunt uitvoeren op kernmerkeigenschappen om te achterhalen wat voor het kenmerk het is of om het gedrag van het kenmerk aan te passen.

Opdracht

Methode

Voorbeeld

Het type van het kenmerk ophalen

getAttributeType

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

Wijst de tekenreekswaarde die het type kenmerk vertegenwoordigt voor het eerste kenmerk toe aan de variabele attributeType.

Ophalen hoe het kenmerk is opgemaakt

getFormat

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

Wijst de tekenreekswaarde die de indeling vertegenwoordigt voor het eerste kenmerk toe aan de variabele attributeFormat.

De eerste waarde van een kenmerk Boolean of optionset ophalen

getInitialValue

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

Wijst de eerste getalwaarde van het veld Adrestype toe aan de variabele attributeInitialValue.

Bepalen of een kenmerkwaarde is gewijzigd

getIsDirty

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

Wijst een waarde Boolean die aangeeft of de waarde van het veld Accountnaam is veranderd toe aan de variabele isNameChanged.

Bepaalt of een opzoekkenmerk een partylistopzoekopdracht vertegenwoordigt.

getIsPartyList

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

Wijst een Boolean waarde die aangeeft of het veld E-mail van een entiteit een partylistopzoekopdracht vertegenwoordigt.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

De maximaal toegestane waarde voor een kenmerk dat een getal bevat ophalen

getMax

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

Wijst een waarde Boolean die aangeeft of de waarde van de variabele newValue de maximumwaarde die is toegestaan voor het veld Kredietlimiet toe aan de variabele newValueBelowMax.

De maximaal toegestane lengte voor een kenmerk dat een tekenreeks bevat ophalen

getMaxLength

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

Wijst een waarde Boolean die aangeeft of de waarde van de variabele newAccountName de maximumlengte die is toegestaan voor het veld Accountnaam toe aan de variabele nameTooLong.

De minimaal toegestane waarde voor een kenmerk dat een getal bevat ophalen

getMin

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

Wijst een waarde Boolean die aangeeft of de waarde van de variabele newValue zich onder de minimumwaarde bevindt die is toegestaan voor het veld Kredietlimiet toe aan de variabele newValueBelowMin.

De logische naam van een kenmerk ophalen

getName

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

Wijst de waarde van de logische naam van het eerste kenmerk op de pagina toe aan de variabele attributeName.

Het optieobject dat een waarde vertegenwoordigt ophalen

getOption

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

Toont een waarschuwing die de tekst weergeeft van de veldoptie Adrestype met de waarde 1.

Een getalwaarde ophalen die het precisieniveau voor het getalkenmerk vertegenwoordigt

getPrecision

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

Wijst de precisiewaarde van het veld Kredietlimiet toe aan de variabele creditLimitPrecision.

Een tekenreekswaarde ophalen die aangeeft of een kenmerk een waarde moet hebben

getRequiredLevel

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

De waarde van de variabele creditLimitRequired kan none, required of recommended zijn.

Wijzigen of gegevens in een veld zijn vereist om een record te kunnen opslaan

setRequiredLevel

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

Maakt het veld Kredietlimiet vereist.

Bepalen of de gegevens in een kenmerk worden verzonden wanneer de record wordt opgeslagen.

getSubmitMode

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

De waarde van de variabele nameSubmitMode is always, never of dirty om de submitMode voor het veld Accountnaam te vertegenwoordigen.

Bepalen of gegevens in een kenmerk worden opgeslagen wanneer de record wordt opgeslagen

setSubmitMode

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

In het voorbeeld moet de veldwaarde Accountnaam altijd worden opgeslagen zelfs wanneer deze niet is gewijzigd.

Als beveiliging op veldniveau is toegepast op een kenmerk,
bepaalt u of een gebruiker bevoegdheden heeft om maak-,
lees- of bijwerkbewerkingen uit te voeren op het kenmerk. Voor meer informatie, zie
Hoe veldbeveiliging kan worden gebruikt om toegang tot veldwaarden te controleren in Microsoft Dynamics CRM 2015

getUserPrivilege

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

Wijst een Boolean waarde toe die de bevoegdheid van de gebruiker om het veld Accountnaam bij te werken naar de variabele canUpdateNameAttribute vertegenwoordigt.

In dit onderwerp

Gebeurtenisargumenten opslaan

Bij het afdwingen van bedrijfslogica is het soms noodzakelijk om te voorkomen dat een record wordt opgeslagen, zodat de gebruiker vereiste informatie kan opnemen. Hiertoe moet u de gebeurtenishandler configureren zodat deze wordt doorgegeven in de uitvoeringscontext. De uitvoeringscontext bevat de methode getEventArgs om argumenten op te halen voor de gebeurtenis. Deze argumenten bevatten methoden die u kunt gebruiken om te bepalen of een record wordt opgeslagen of queryeigenschappen die informatie bevatten over de gebeurtenis save.

Opdracht

Voorbeeld

Voorkomen dat een record wordt opgeslagen.

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

Gebruik de parameter eContext om de uitvoeringscontext vast te leggen en gebruik de methode preventDefault die is opgenomen in de gebeurtenisargumenten.

Bepalen welke actie de opslagbewerking heeft geïnitieerd.

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;
}

Gebruik de parameter eContext om de uitvoeringscontext vast te leggen en gebruik de methode getSaveMode die is opgenomen in de gebeurtenisargumenten om de waarde van de gehele-getalcode te converteren naar tekst.

In dit onderwerp

Meldingen weergeven

Meldingen bieden een manier om een bericht weer te geven aan de gebruiker.

Opdracht

Methode

Voorbeeld

Een bericht weergeven bij het besturingselement om aan te geven dat de gegevens niet geldig zijn.

setNotification

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

Stelt een bericht over een validatiefout in bij elk besturingselement in het formulier voor het kenmerk Accountnaam.

Zolang dit bericht wordt weergegeven, kan de record niet worden opgeslagen.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Verwijdert een bericht dat al wordt weergegeven voor een besturingselement.

clearNotification

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

Wist alle berichten over een validatiefout bij elk besturingselement in het formulier voor het kenmerk Accountnaam.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Meldingen op formulierniveau weergeven

setFormNotification

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

Geeft het bericht "Hallo" weer boven aan het formulier met een systeeminformatiepictogram.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Meldingen op formulierniveau verwijderen

clearFormNotification

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

Wist het bericht dat eerder is ingesteld met "helloMsg" als parameter uniqueid ".

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Een niet-blokkerend waarschuwingsdialoogvenster met een terugbelfunctie weergeven

alertDialog

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

Een waarschuwing weergeven en de waarde van de variabele alertDisplayed instellen wanneer deze is gesloten.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Een niet-blokkerend bevestigingsdialoogvenster weergeven met verschillende terugbelopties afhankelijk van de knop waarop de gebruiker heeft geklikt.

confirmDialog

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

Een bevestigingsbericht weergeven en de waarde instellen van de variabele agree afhankelijk van de respons.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

In dit onderwerp

Besturingselementen

Besturingselementen vormen de elementen van de gebruikersinterface in het formulier. Aan elk kenmerk in het formulier is ten minste één besturingselement gekoppeld. Niet elk besturingselement is aan een kenmerk gekoppeld.IFRAME, webresource en subrasters zijn besturingselementen die geen kenmerken hebben.

Toegang verkrijgen tot formulierbesturingselementen

Besturingselementen zijn beschikbaar vanuit de verzameling ntrols Xrm.Page.ui.co. Als u toegang tot een besturingselement wilt krijgen, kunt u de methode Xrm.Page.ui.controls.get of de snelle versie Xrm.Page.getControl gebruiken.

De mthode get accepteert vier typen argumenten:

  • Tekenreeks: Retourneert een besturingselement waarvan de logische naam overeenkomt met de tekenreeks.

  • Getal: Retourneert het besturingselement waarbij de verzamelingsindex Xrm.Page.ui.controls overeenkomt met het getal.

  • Geen: Retourneert een matrix van alle besturingselementen.

  • Delegate function(control,index): retourneert een matrix van alle besturingselementen uit de verzameling Xrm.Page.ui.controls die ertoe leiden dat de gemachtigdefunctie true retourneert.

Opdracht

Voorbeeld

Toegang verkrijgen tot alle besturingselementen voor een specifiek kenmerk

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

Wijst een matrix van alle besturingselementen voor het kenmerk name toe aan de variabele nameControls.

Toegang tot een besturingselement verkrijgen op naam

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

Wijst het eerste besturingselement dat het veld Accountnaam vertegenwoordigt toe aan de variabele nameControl.

Het eerste besturingselement dat aan een formulier is toegevoegd voor een kenmerk heeft dezelfde naam als het kenmerk. Voor elke extra besturingselementnaam wordt een indexgetal aan de naam toegevoegd. Zo hebben bijvoorbeeld drie besturingselementen voor het kenmerk naam respectievelijk de namen name, name1 en name2.

Toegang tot een besturingselement verkrijgen op index

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

Wijst het eerste besturingselement in de verzameling firstControlXrm.Page.ui.controls toe aan de variabele.

Toegang verkrijgen tot alle besturingselementen

var allControls = Xrm.Page.getControl();

Wijst een matrix van alle besturingselementen in de verzameling allControlsXrm.Page.ui.controls toe aan de variabele.

Toegang verkrijgen tot alle besturingselementen die voldoen aan een specifiek criterium

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

Wijst een matrix van alle kenmerken in de verzameling Xrm.Page.ui.controls die voldoen aan de criteria die zijn ingesteld in de anonieme functie, die true retourneert als het besturingselementtype "optieset" is, toe aan de variabele optionsetControls.

Elke sectie bevat tevens een verzameling besturingselementen die alleen de besturingselementen voor die sectie bevat. De volgende voorbeeldcode wijst de variabele generalTabAccountInfoSectionControls toe aan een matrix van besturingselementen die in de sectie Adres van het tabblad Algemeen te vinden zijn.
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();

Notitie

Elk kenmerk bestaat slechts één keer in het formulier, maar een veld kan meerdere malen worden toegevoegd aan het formulier voor dit kenmerk. Elk veld dat wordt toegevoegd maakt een ander besturingselement. Formulieren kunnen verder worden aangepast nadat u uw scripts hebt geschreven. In de scripts die u schrijft voor besturingselementen voor kenmerken moet wordt aangenomen dat het meerdere malen in het formulier is opgenomen. Alle acties die u wilt uitvoeren op een besturingselement voor een kenmerk moeten gewoonlijk op alle besturingselementen voor dit kenmerk worden toegepast. Als u bijvoorbeeld een besturingselement wilt uitschakelen, maar er slechts één uitschakelt, kan de gebruiker nog steeds gegevens invoeren met een ander besturingselement. Daarom adviseren wij u het volgende patroon te gebruiken met de methode forEach voor de verzameling om dezelfde logica toe te passen op alle besturingselementen voor een kenmerk, zelfs als er slechts één besturingselement is op het moment dat u uw script schrijft.

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

In dit onderwerp

Toegang verkrijgen tot besturingselementen voor kopteksten

De besturingselementen in de koptekst volgen de naamgegevensconventie waarbij "header_" voorafgaat aan de naam van het besturingselement. Als het kenmerk name zich in de koptekst bevindt, kunt u hier toegang toe krijgen met:
var nameControlInHeader = Xrm.Page.getControl("header_name");

Toegang verkrijgen tot bedrijfsprocesstroombesturingen

Besturingselementen in de bedrijfsprocesstroombesturing volgen de naamgegevensconventie waarbij "header_process_" voorafgaat aan de naam van het besturingselement. Als het kenmerk name zich in de koptekst bevindt, kunt u hier toegang toe krijgen met:
var nameControlInBPF = Xrm.Page.getControl("header_process_name");

Notitie

Alleen besturingselementen in de actieve fase bevinden zich in de verzameling Xrm.Page.ui.controls als het formulier wordt geladen. Andere bedrijfsprocesstroombesturingen worden toegevoegd wanneer een fase voor de huidige entiteit wordt geselecteerd.

Methoden voor formulierbesturingselementen

Nadat u toegang tot een besturingselement hebt verkregen, kunt u de volgende methoden aanroepen.

Opdracht

Methode

Voorbeeld

Bepalen of een besturingselement zichtbaar is

getVisible

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

Wijst een waarde Boolean toe aan de variabele isNameVisible die aangeeft of het veld Accountnaam zichtbaar is.

Een besturingselement verbergen of weergeven

setVisible

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

Verbergt het veld Accountnaam.

Een verwijzing naar het kenmerk ophalen voor het besturingselement

getAttribute

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

Wijst het kenmerk voor het besturingselement voor het veld Accountnaam toe aan de variabele nameAttribute.

Notitie

Niet alle besturingselementen hebben kenmerken.

Het type van het besturingselement bepalen

getControlType

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

Wijst een matrix van besturingselementen optionset toe aan de variabele optionSetControls.

Bepalen of een besturingselement is ingeschakeld

getDisabled

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

Wijst een matrix van uitgeschakelde besturingselementen toe aan de variabele disabledControls.

Notitie

Webresource- en subrasterbesturingselementen ondersteunen deze methode niet.

Een besturingselement uit- of inschakelen

setDisabled

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

Schakelt elk besturingselement voor het kenmerk name uit.

Tip

Onthoud dat elk kenmerk meerdere besturingselementen kan hebben.

Het label voor een besturingselement ophalen

getLabel

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

Wijst de waarde van het besturingselement voor het veld Accountnaam toe aan de variabele nameControlLabel.

Het label voor een besturingselement wijzigen

setLabel

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

Wijzigt het label voor het veld Accountnaam in Bedrijfsnaam.

De naam van een besturingselement ophalen

getName

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

Wijst de naam van het eerste besturingselement in de verzameling Xrm.Page.ui.controls toe aan de variabele firstControlName.

Het bovenliggende element van een besturingselement ophalen

getParent

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

Wijst de bovenliggende sectie van het besturingselement voor het veld Accountnaam toe aan de variabele parentSection.

De focus voor een besturingselement instellen

setFocus

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

Stelt de focus in op het veld Accountnaam.

In dit onderwerp

OptionSet-besturingmethoden

Optionsets hebben bepaalde speciale methoden. Het is belangrijk om te onthouden dat het kenmerk de geldige opties voor optionset definieert. Als u werkt met een optionset-besturingselement kunt u beschikbare opties beerken maar geen nieuwe opties maken.

Opdracht

Methode

Voorbeeld

Een optie toevoegen aan een optionset-besturingselement

addOption

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

Met een verwijzing naar het besturingselement voor het veld Adrestype verkrijgt u toegang tot het kenmerk voor het besturingselement en gebruikt u de methode getOption voor het instellen van de variabele billToAddressOption op de optie die de optie Factureren aan vertegenwoordigt.

Gebruik clearOptions om eventuele bestaande opties te verwijderen en gebruik addOption om billToAddressOption in te stellen als de enige optie die beschikbaar is voor dit besturingselement.

Alle opties verwijderen uit een optionset-besturingselement

clearOptions

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

Verwijder alle opties uit het besturingselement voor het veld Adrestype.

Verwijder een enkele optie uit een optionset-besturingselement.

removeOption

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

Verwijder de opties Factureren aan uit het besturingselement voor het veld Adrestype.

In dit onderwerp

Methoden voor IFRAME- en webresourcebesturingselementen

Een besturingselement IFRAME stelt u in staat een pagina op te nemen in een formulier door een URL te verstrekken. Een HTML-webresource die is toegevoegd aan een formulier, wordt weergegeven met een IFRAME-element.Silverlight en afbeeldingswebresources worden direct ingesloten op de pagina.

Opdracht

Methode

Voorbeeld

De waarde ophalen van de tekenreeksparameter voor de gegevensquery die wordt doorgegeven aan een Silverlight-webresource

getData

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

Wijst de waarde toe die via de tekenreeksparameter van de gegevensquery wordt doorgegeven aan de dataValue-webresource.

De URL ophalen voor de inhoud die momenteel wordt weergegeven in een IFRAME

getSrc

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

Wijst de tekenreeks die de huidige kenmerkwaarde IFRAME.src vertegenwoordigt toe aan de variabele iframeSource.

De URL instellen voor de inhoud die moet worden weergegeven in een IFRAME

setSrc

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

Stelt een URL in als IFRAME.src voor het besturingselement.

De URL ophalen die de standaard geconfigureerde URL voor een IFRAME vertegenwoordigt

getInitialUrl

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

Wijst de initiële URL die is geconfigureerd voor weergave in de IFRAME toe aan de variabele initialUrl.

Haalt het object op in het formulier dat de webresource of IFRAME vertegenwoordigt.

getObject

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

Wijst een objectreferentie toe aan de variabele obj. Voor een IFRAME is dit het IFRAME DOM-element (documentobjectmodel). Voor een Silverlight-webresource is dit het objectmodelelement dat de ingesloten Silverlight-invoegtoepassing vertegenwoordigt.

In dit onderwerp

Methoden voor opzoekbesturingselementen

Een gemeenschappelijk vereiste voor opzoekbesturingselementen is het opgeven van de standaardweergave bij het bijwerken van het veld door een gebruiker.

Opdracht

Methode

Voorbeeld

Voeg een aangepaste weergave voor een opzoekactie toe.

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);

Stelt de variabelen viewId is viewDisplayName, fetchXml en layoutXml in om te worden doorgegeven als argumenten zodat een aangepaste weergave als standaardweergave wordt toegevoegd aan het besturingselement voor het opzoekveld Bovenliggend account.

De standaardweergave voor een opzoekactie ophalen.

getDefaultView

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

De waarde id in de standaardweergave toewijzen aan de variabele defaultViewId.

De standaardweergave voor een opzoekactie instellen.

setDefaultView

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

Stelt de standaardweergave voor het besturingselement voor het veld Bovenliggend account in op de waarde id in de variabele viewId.

De records filteren die worden geretourneerd voor een opzoekbesturingselement

addCustomFilter

In de volgende voorbeeldcode is bestemd voor het opzoeken van het verkoopkansformulier Account (parentaccountid) Wanneer de functie Sdk.setParentAccountIdFilter is ingesteld in de Onload gebeurtenismanager van formulier, wordt de functie Sdk.filterCustomAccounts toegevoegd aan de gebeurtenis PreSearch voor de zoekactie. Het resultaat is dat alleen de accounts met de waarde van Categorie (accountcategorycode) Voorkeursklant (1) worden geretourneerd.

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 dit onderwerp

Methoden voor Subgrid-besturingselement

Het SubGrid-besturingselement is een raster binnen een formulier. Het heeft één unieke methode.

Opdracht

Methode

Voorbeeld

De gegevens vernieuwen die in het subraster worden weergegeven

refresh

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

Vernieuw de Contactpersonensubgrid.

In dit onderwerp

Methoden voor datumbesturingselement

Het datumbesturingselement heeft één unieke methode.

Opdracht

Methode

Voorbeeld

Opgeven of een datumbesturingselement het tijdgedeelte van de datum moet weergeven.

setShowTime

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

Het veld Gemaakt op instellen zodat de tijd niet wordt weergegeven.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

In dit onderwerp

Formuliernavigatie

U kunt de navigatie-items aan de linkerkant van het formulier gebruiken en bewerken. Deze navigatie-items geven doorgaans records weer die zijn gerelateerd aan de record die in het formulier wordt weergegeven.

U kunt toegang krijgen tot navigatie-items via de verzameling Xrm.Page.ui.navigation.items. Zoals bij alle verzamelingen in het formulier is er een methode get en forEach.

Opdracht

Methode

Voorbeeld

De naam van een navigatie-item ophalen

getId

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

Een matrix navItemIds maken die de waarden id bevat van elk navigatie-item in de verzameling Xrm.Page.ui.navigation.items.

Het label van een navigatie-item ophalen.

getLabel

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

Het label voor het navigatie-item Meer adressen toewijzen aan de variabele navAddressesLabel.

Het label van een navigatie-item instellen

setLabel

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

Het navigatie-itemlabel Meer adressen wijzigen in Andere Adressen.

Een navigatie-item weergeven of verbergen

setVisible

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

Het navigatie-item More Addresses verbergen.

Bepalen of een navigatie-item zichtbaar is

getVisible

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

Een Boolean waarde toewijzen aan de variabele moreAddressesVisible om aan te geven of het navigatie-item Meer adressen zichtbaar is.

Focus instellen op een navigatie-item.

setFocus

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

Focus instellen op het navigatie-item Meer adressen.

In dit onderwerp

Tabbladen en secties

Elk formulier bevat een verzameling tabbladen. Elk tabblad heeft een verzameling secties. Elke sectie bevat een verzameling besturingselementen. U kunt programmatisch toegang tot deze elementen verkrijgen en hun methoden gebruiken.

Opdracht

Methode

Voorbeeld

Bepalen of een tabblad wordt uitgevouwen of samengevouwen

getDisplayState

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

Een Boolean waarde toewijzen aan de variabele isGeneralTabExpanded die aangeeft of het tabblad Algemeen wordt uitgevouwen.

Een tabblad uitvouwen of samenvouwen

setDisplayState

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

Het tabblad Algemeen samenvouwen.

Bepalen of een tabblad zichtbaar is

getVisible

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

Een Boolean waarde toewijzen aan de variabele isGeneralTabVisible die aangeeft of het tabblad Algemeen zichtbaar is.

Een tabblad verbergen of weergeven

setVisible

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

Het tabblad Algemeen verbergen.

Het label voor een tabblad ophalen

getLabel

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

Het tabbladlabel Algemeen toewijzen aan de variabele generalTabLabel.

Het label voor een tabblad wijzigen

setLabel

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

Het tabbladlabel Algemeen wijzigen in Belangrijk.

De focus instellen op een tabblad

setFocus

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

De focus instellen op het tabblad Algemeen.

De naam van het tabblad ophalen

getName

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

De naam van het eerste tabblad toewijze aan de variabele firstTabName.

Het bovenliggende tabblad van een sectie ophalen

getParent

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

De focus instellen op het tabblad dat het veld Branche bevat.

Bepalen of een sectie zichtbaar is

getVisible

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

Een Boolean waarde toewijzen aan de variabele industrySectionVisible die aangeeft of de sectie die het veld Branche bevat zichtbaar is.

Een sectie verbergen of weergeven

setVisible

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

De sectie verbergen die het veld Branche bevat.

Het label voor een sectie ophalen

getLabel

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

Het label van de sectie die het veld Branche bevat toewijzen aan de variabele industryFieldSectionLabel.

Het label voor een sectie wijzigen

setLabel

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

Het label van de sectie die het veld Branche bevat wijzigen in Gedetailleerde informatie.

In dit onderwerp

Gebeurtenishandlers toevoegen of verwijderen tijdens runtime

Gebeurtenishandlers worden meestal geconfigureerd met de formuliereneditor in de toepassing maar u kunt deze ook toevoegen aan de formuliergebeurtenis OnSave en de kenmerkgebeurtenissen OnChange tijdens runtime met deze APIs. De voorbeelden in deze sectie verwijzen naar de volgende functiedefinitie:
function myFunction() {
//perform action here
}

Hoewel u een anonieme functie kunt toevoegen, moet de functie een naam hebben om naar te verwijzen zodat deze kan worden verwijderd.

Opdracht

Methode

Voorbeeld

Een functie toevoegen aan de gebeurtenis OnSave

addOnSave

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

De functie myFunction toevoegen aan de gebeurtenis OnSave.

Een functie verwijderen uit de gebeurtenis OnSave

removeOnSave

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

De functie myFunction verwijderen uit de gebeurtenis OnSave.

Een functie toevoegen aan de gebeurtenis OnChange van een kenmerk.

addOnChange

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

De functie myFunction toevoegen aan de gebeurtenis OnChange van het veld Accountnaam.

Een functie verwijderen uit de gebeurtenis OnChange van een kenmerk

removeOnChange

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

De functie myFunction verwijderen uit de gebeurtenis OnChange van het veld Accountnaam.

Een functie toevoegen aan de gebeurtenis PreSearch van een opzoekbesturingselement.

addPreSearch

Het volgende voorbeeldcode is bestemd voor het opzoeken van het verkoopkansformulier Account (parentaccountid) Wanneer de functie Sdk.setParentAccountIdFilter is ingesteld in de Onload gebeurtenismanager van formulier, wordt de functie Sdk.filterCustomAccounts toegevoegd aan de gebeurtenis PreSearch voor de zoekactie. Het resultaat is dat alleen de accounts met de waarde van Categorie (accountcategorycode) Voorkeursklant (1) worden geretourneerd.

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);
}

Gebruik de Gebeurtenis OnStageChange en Gebeurtenis OnStageSelected voor gebeurtenissen die in de bedrijfsprocesstroombesturing plaatsvinden. Deze gebeurtenissen hebben alleen methoden voor het programmatisch toevoegen of verwijderen van gebeurtenishandlers.Meer informatie:Methoden om gebeurtenishandlers te beheren.

In dit onderwerp

Methoden voor contextuele informatie

Gebruik deze methoden om gegevens over de gebruiker, de organisatie en de client op te halen. De volgende tabel bevat enkele van de meest nuttige contextmethoden. Voor alle contextmethoden, zie Clientcontext (clientreferentie)

Opdracht

Methode

Voorbeeld

De URL ophalen om verbinding met de organisatie te maken.

getClientUrl

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

Een tekenreeks toewijzen die de URL voor de variabele serverUrl vertegenwoordigt.

De unieke id ophalen voor de huidige gebruiker.

getUserId

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

Een tekenreeks die de id van de gebruiker vertegenwoordigt toewijzen aan de variabele userId.

De naam van de huidige gebruiker ophalen.

getUserName

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

Een tekenreeks die de naam van de gebruiker vertegenwoordigt toewijzen aan de variabele userName.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

De taalcode ophalen die de voorkeurstaal voor de gebruikersinterface van de gebruiker weergeeft.

getUserLcid

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

Een getal dat de voorkeurstaal van de gebruiker aangeeft toewijzen aan de variabele userLCID.

Een matrix van tekenreeksen ophalen die de GUID-waarden vertegenwoordigt voor elke beveiligingsrol die is toegewezen aan de huidige gebruiker en de teams waaraan de gebruiker is gekoppeld.

getUserRoles

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

Een matrix van tekenreeksen die de beveiligingsrollen van de gebruiker vertegenwoordigt toewijzen aan de variabele userRoles.

Bepalen of het script wordt uitgevoerd in de Microsoft Dynamics CRM voor Outlook-client.

client.getClient

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

Een Boolean waarde die aangeeft of uw code wordt uitgevoerd in de Dynamics CRM voor Outlook-client toewijzen aan de variabele isOutlookClient.

Bepalen of de gebruiker offine werkt met de Microsoft Dynamics CRM voor Microsoft Office Outlook met offlinetoegang-client.

client.getClientState

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

Een Boolean waarde die aangeeft of de gebruiker momenteel offline werkt toewijzen aan de variabele IsOffline.

In dit onderwerp

Entiteitgegevens ophalen, vernieuwen of opslaan

De volgende tabel bevat methoden die u kunt gebruiken om informatie over de huidige record op te halen of om wijzigingen op te slaan. Zie voor meer informatie Xrm.Page.data.entity (clientreferentie) en Xrm.Page.data (clientreferentie).

Opdracht

Methode

Voorbeeld

De logische naam van de huidige entiteit ophalen

getEntityName

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

De logische entiteitsnaam toewijzen aan de variabele entityName.

De waarde van het primaire kenmerk voor de huidige entiteit ophalen.
Het primaire kenmerk is de waarde die wordt gebruikt om de record te identificeren. Bijvoorbeeld contact.fullname.

getPrimaryAttributeValue

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

De waarde van het primaire kenmerk toewijzen aan de variabele primaryAttributeValue.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

De Id van de huidige record ophalen

getId

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

De id van de record toewijzen aan de variabele recordId.

Ssynchroon de gegevens van het formulier vernieuwen zonder de pagina opnieuw te laden.

vernieuwen

Xrm.Page.data.refresh();

Vernieuwt de gegevens in het formulier.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

De huidige record opslaan

Xrm.Page.data.entity.Opslaan

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

Slaat de record op. Er zijn optionele argumenten. Gebruik saveandclose of saveandnew om de equivalente acties uit te voeren.

De huidige record asynchroon opslaan met de optie voor het instellen
van terugbelfuncties die worden uitgevoerd nadat het opslaan voltooid is.

Xrm.Page.data.Opslaan

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

Slaat de record op en geeft een bericht weer dat de status van de opslagbewerking aangeeft.

Deze methode is alleen beschikbaar voor Bijgewerkte entiteiten.

Bepalen of gegevens in de huidige record zijn gewijzigd.

getIsDirty

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

Een Boolean waarde die aangeeft of gegevens in de record zijn veranderd toewijzen aan de variabele isDirty.

Een tekenreeks ophalen die de gegevens vertegenwoordigt die naar de server worden verzonden wanneer de record is opgeslagen.

getDataXml

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

Een tekenreeks die de gegevens vertegenwoordigt die moeten opgeslagen naar de variabele dataXml.

In dit onderwerp

Zie ook

Het objectmodel Xrm.Page gebruiken
Code schrijven voor Microsoft Dynamics CRM 2015-formulieren
Programmeerreferentie op de client

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht