Kurzübersicht zum Formularskripting

 

Veröffentlicht: November 2016

Gilt für: Dynamics CRM 2015

In diesem Thema wird eine Kurzübersicht der am häufigsten verwendeten Formularskriptmethoden anhand der Aufgaben gegeben, die Sie damit ausführen. Die vollständige Übersicht finden Sie unter Cclientseitige Programmierreferenz. Alle Beispiele auf dieser Seite verwenden das standardmäßige Firmenentitätshauptformular, sofern nichts anders angegeben ist.

In diesem Thema

Attribute

  • Zugreifen auf Attribute

  • Entitätsattributdaten abrufen oder festlegen

  • Attribut-Metadaten abrufen

Ereignis-Argumente speichern

Benachrichtigungen anzeigen

Steuerelemente

  • Auf Formular-Steuerelemente zugreifen

  • Auf Kopfzeilen-Steuerelemente zugreifen

  • Zugriff auf Geschäftsprozessflusssteuerungen

  • Formularsteuermethoden

  • OptionSet-Steuerelement-Methoden

  • IFRAME- und Webressourcen-Steuerelementmethoden

  • Steuerelementmethoden suchen

  • Unterrastersteuerelementmethoden

  • Datensteuerelementmethoden

Formularnavigation

Registerkarten und Abschnitte

Hinzufügen oder Entfernen von Ereignishandlern zur Laufzeit

Kontextbezogene Informationsmethoden

Daten abrufen, aktualisieren oder speichern

Attribute

Attribute speichern die Daten, die im Datensatz verfügbar sind.

Zugreifen auf Attribute

Attribute sind von der Xrm.Page.data.entity.attributes-Sammlung verfügbar. Um auf ein Attribut zuzugreifen, können Sie Xrm.Page.data.entity.attributes.get-Methode oder die Verknüpfungsversion Xrm.Page.getAttribute verwenden. Für die get-Methode sind vier Arten von Anfragen zulässig:

  • Zeichenfolge: Gibt ein Attributobjekt zurück, bei dem der Attributname der die Zeichenfolge entspricht.

  • Nummer: Gibt das Attributsobjekt zurück, bei dem der Xrm.Page.data.entity.attributes-Sammlungsindex der Nummer entspricht.

  • Keine: Gibt ein Array aller Attribute zurück.

  • Delegate function(attribute,index): Gibt ein Array eines beliebigen Attributs aus der Xrm.Page.data.entity.attributes- Sammlung zurück, das dazu führt, dass die Stellvertretungsfunktion true zurückgibt.

Aufgabe

Beispiel

Auf ein Attribut über den Namen zugreifen

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

Weist das Attribut für das Feld Firmenname der Variablen nameAttribute zu.

Auf ein Attribut über den Index zugreifen

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

Weist das erste Attribut in der Xrm.Page.data.entity.attributes-Sammlung der Variablen firstAttribute zu.

Zugreifen auf alle Attribute

var allAttributes = Xrm.Page.getAttribute();

Weist ein Array aller Attribute in der Xrm.Page.data.entity.attributes-Sammlung der Variable allAttributes zu.

Zugreifen auf alle Attribute, die bestimmte Kriterien erfüllen

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

Weist ein Array aller Attribute in der Xrm.Page.data.entity.attributes-Sammlung, die die Kriterien erfüllen, die in der anonymen Funktion festgelegt wurden, die true zurückgibt, wenn der Attributtyp "optionset" ist, der Variable optionsetAttributes zu.

Die Xrm.Page.data.entity.attributes Sammlung enthält ebenfalls eine forEach Methode, die Sie verwenden können, um auf Attribute innerhalb einer Funktion zuzugreifen. Die folgende writeRequiredAttributesToConsole Funktion schreibt die Namen aller Attribute, die Daten erfordern in die Debuggingskonsole:

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 diesem Thema

Entitätsattributdaten abrufen oder festlegen

Die Beispiele in der folgenden Tabelle zeigen, wie Sie die Daten abrufen oder ändern können, die in den Attributen gespeichert sind.

Aufgabe

Methode

Beispiel

Den Wert eines Attributs abrufen

getValue

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

Weist den Wert des Attribut für das Feld Firmenname der Variablen nameValue zu.

Den Wert eines Attributs festlegen

setValue

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

Legt den Wert des Attribut für das Feld Firmenname auf "new name" fest.

Den Textwert der aktuell ausgewählten Option eines optionset-Attributs abrufen

getText

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

Weist den Text der ausgewählten Option im Feld Adresstyp der Variablen addressType zu.

Abrufen des aktuell ausgewählten Optionsobjekts in einem optionset Attribut

getSelectedOption

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

Weist die ausgewählte Option im Feld Adresstyp der Variablen addressTypeOption zu.

In diesem Thema

Attribut-Metadaten abrufen

Die Beispiele in der folgenden Tabelle zeigen wie Sie Attributeigenschaften abfragen können, um zu verstehen, welche Art von Attribut es ist oder um das Verhalten des Attributs zu ändern.

Aufgabe

Methode

Beispiel

Den Typ eines Attributs abrufen

getAttributeType

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

Weist den Zeichenfolgenwert, der den Typ des Attributs für das erste Attribut darstellt der attributeType-Variablen zu.

Verstehen, wie das Attribut formatiert ist

getFormat

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

Weist den Zeichenfolgenwert, der das Format des Attributs für das erste Attribut darstellt der attributeFormat Variablen zu.

Abrufen des Anfangswerts eines Boolean oder optionset Attributs

getInitialValue

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

Weist den Anfangszahlenwert des Attribut für das Feld Adressentyp der Variablen attributeInitialValue zu.

Bestimmen, ob ein Attributswert geändert wurde

getIsDirty

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

Weist einen Boolean Wert zu, der angibt, ob der Feldwert Firmenname zur Variable isNameChanged geändert wurde.

Legt fest, ob ein Suchattribut eine PartyList-Suche darstellt.

getIsPartyList

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

Weist einen Boolean Wert zu, der angibt, ob die Feld E-Mail Entität an eine Parteilistensuche darstellt.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Abrufen des maximal zulässigen Werts für ein Attribut, das eine Zahl enthält

getMax

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

Weist einen Boolean Wert zu, der angibt, ob der Wert der newValue der Variablen den maximal zulässigen Wert für das Feld Kreditlimit überschreitet der Variablen newValueBelowMax zu.

Abrufen der maximal zulässigen Länge für ein Attribut, das eine Zeichenfolge enthält

getMaxLength

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

Weist einen Boolean Wert zu, der angibt, ob der Wert der newAccountName Variablen die maximal zulässige Länge für das Feld Firmenname überschreitet der Variablen nameTooLong zu.

Abrufen des zulässigen Mindestwerts für ein Attribut, das eine Zahl enthält

getMin

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

Weist einen Boolean Wert zu, der angibt, ob der Wert der newValue der Variablen den zulässigen Mindestwert für das Feld Kreditlimit unterschreitet der Variablen newValueBelowMin zu.

Ruft den logischen Name eines Attributs ab

getName

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

Weist den logischen Namenswert des ersten Attributs auf der Seite der attributeName-Variablen zu.

Abrufen des Optionsobjekts, das einen Wert darstellt

getOption

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

Zeigt eine Warnung an, die den Test der Feldoption Adresstyp mit dem Wert 1 anzeigt.

Abrufen eines Zahlenwerts, der die Genauigkeitsebene für das Nummernattribut darstellt

getPrecision

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

Weist den Genauigkeitswert des Felds Kreditlimit der Variablen creditLimitPrecision zu.

Abrufen eines Zeichenfolgenwerts, der darstellt, ob ein Attribut einen Wert haben muss

getRequiredLevel

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

Der Variablenwert creditLimitRequired kann none, required oder recommended sein.

Ändern, ob Daten in einem Feld erforderlich sind, um einen Datensatz zu speichern

setRequiredLevel

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

Dadurch wird das Feld Kreditlimit erforderlich.

Bestimmen, ob die Daten in einem Attribut gesendet werden, wenn der Datensatz gespeichert wird

getSubmitMode

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

Der Variablenwert nameSubmitMode ist entweder always, never oder dirty, um submitMode für das Feld Firmenname darzustellen.

Steuern, ob die Daten in einem Attribut gespeichert werden, wenn der Datensatz gespeichert wird

setSubmitMode

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

In diesem Beispiel wird vom Feldwert Firmenname erzwungen, immer zu speichern, auch wenn er nicht geändert wurde.

Falls die Sicherheit auf Feldebene auf ein Attribute angewendet wurde,
bestimmen Sie, ob ein Benutzer die Rechte hat, die Vorgänge
Erstellen, Lesen oder Ausführen für das Attribut auszuführen. Weitere Informationen finden Sie unter
Wie Feldicherheit verwendet werden kann, um Zugriff auf Feldwerte in Microsoft Dynamics CRM 2015 zu steuern

getUserPrivilege

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

Weist einen Boolean-Wert zu, der das Recht eines Benutzers zum Aktualisieren des Felds Firmenname darstellt, der Variablen canUpdateNameAttribute zu.

In diesem Thema

Ereignis-Argumente speichern

Wenn Geschäftslogik erzwungen wird, ist es oft erforderlich, zu verhindern, dass ein Datensatz gespeichert wird, damit der Benutzer die erforderlichen Informationen einschließen kann. Dazu müssen Sie den Ereignishandler konfigurieren, damit Ausführungskontext übergeben wird. Der Ausführungskontext enthält die getEventArgs Methode, um Argumente für das Ereignis abzurufen. Diese Argumente umfassen Methoden, die Sie verwenden können, um zu steuern, ob ein Datensatz gespeichert werden oder Eigenschaften abfragen, die Ihnen etwas zum save-Ereignis sagen.

Aufgabe

Beispiel

Verhindern, dass ein Datensatz gespeichert wird.

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

Verwenden Sie den Parameter eContext, um den Ausführungskontext zu erfassen und die preventDefault Methode zu nutzen, die in den Ereignisargumenten enthalten ist.

Bestimmen Sie welche Aktion das Speichern initiiert hat.

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

Verwenden Sie den Parameter eContext, um den Ausführungskontext zu erfassen und die getSaveMode Methode zu nutzen, die in den Ereignisargumenten enthalten ist, um den Integer-Codewert in Text zu konvertieren.

In diesem Thema

Benachrichtigungen anzeigen

Benachrichtigungen bieten eine Möglichkeit, um Benutzern eine Meldung anzuzeigen.

Aufgabe

Methode

Beispiel

Zeigen Sie eine Meldung neben dem Steuerelement an, um anzugeben, dass Daten ungültig sind.

setNotification

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

Legt eine Überprüfungsfehlermeldung für jedes Steuerelement im Formular für das Attribut Firmenname fest.

Solange die Meldung angezeigt wird, kann der Datensatz nicht gespeichert werden.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Entfernen Sie eine Nachricht, die bereits für ein Steuerelement angezeigt wird.

clearNotification

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

Löscht alle Überprüfungsfehlermeldungen für jedes Steuerelement im Formular für das Attribut Firmenname fest.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Anzeigenformular-Ebenenbenachrichtigungen.

setFormNotification

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

Zeigt die Meldung "Hallo" mit einem Systeminfosymbol oben im Formular an.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Anzeigenformular-Ebenenbenachrichtigungen entfernen.

clearFormNotification

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

Löscht die zuvor mithilfe von "helloMsg" als uniqueid-Parameter festgelegte Meldung.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Zeigen Sie einen nicht blockierenden Warnungsdialog mit einer Rückruffunktion an.

alertDialog

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

Zeigen Sie einer Warnmeldung an und legen Sie den Wert der Variablen alertDisplayed fest, wenn sie geschlossen ist.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Zeigen Sie einen nicht blockierenden Bestätigungsdialog mit unterschiedlichen Rückrufen an, je nach Schaltfläche, auf die der Benutzer geklickt hat.

confirmDialog

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

Zeigen Sie eine Bestätigungsmeldung an und legen Sie den Wert der Variablen agree abhängig von der Antwort fest.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

In diesem Thema

Steuerelemente

Steuerelemente repräsentiert die Elemente der Benutzeroberfläche im Formular. Jedes Attribut im Formular hat mindestens ein Steuerelement zugewiesen. Nicht jedes Steuerelement wird einem Attribute zugeordnet.IFRAME Webressourcen und Unterraster sind Steuerelemente die keine Attribute haben.

Auf Formular-Steuerelemente zugreifen

Steuerelemente sind aus der Xrm.Page.ui.-Steuerelementesammlung verfügbar. Um auf ein Steuerelement zuzugreifen, können Sie Xrm.Page.ui.controls.get-Methode oder die Verknüpfungsversion Xrm.Page.getControl verwenden.

Für die get-Methode sind vier Arten von Anfragen zulässig:

  • Zeichenfolge: Gibt ein Steuerelement zurück, in der logische Name der Zeichenfolge entspricht.

  • Nummer: Gibt das Steuerelement zurück, bei dem der Xrm.Page.ui.controls-Sammlungsindex der Nummer entspricht.

  • Keine: Gibt ein Array aller Steueremente zurück.

  • Delegate function(control,index): Gibt ein Array eines beliebigen Steuerelements aus der Xrm.Page.ui.controls-Sammlung zurück, das dazu führt, dass die Stellvertretungsfunktion zurückgibt.

Aufgabe

Beispiel

Auf alle Steuerelemente für ein bestimmtes Attribut zugreifen

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

Weist ein Array aller Steuerelemente für das name-Attribut der Variablen nameControls zu.

Auf ein Steuerelement über den Namen zugreifen

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

Weist das erste Steuerelement, das das Feld Firmenname darstellt der Variablen nameControl zu.

Das erste Steuerelement, das auf einem Formular für ein Attribut hinzugefügt wird, hat denselben Namen, wie das Attribut. Jeder zusätzliche Name eines Steuerelements, hat eine Indexnummer an den Namen angefügt. Beispielsweise verfügen die drei Steuerelemente für das Namensattribut über die Namen: name, name1und name2.

Auf ein Steuerelement über den Index zugreifen

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

Weist das erste Steuerelement in der Xrm.Page.ui.controls-Sammlung der Variablen firstControl zu.

Auf alle Steuerelemente zugreifen

var allControls = Xrm.Page.getControl();

Weist ein Array aller Steuerelemente in der Xrm.Page.ui.controls-Sammlung der Variable allControls zu.

Auf alle Steuerelemente, die bestimmte Kriterien erfüllen zugreifen

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

Weist ein Array aller Attribute in der Xrm.Page.ui.controls-Sammlung, die die Kriterien erfüllen, die in der anonymen Funktion festgelegt wurden, die true zurückgibt, wenn der Steuerelementtyp optionsetControls ist, der Variablen zu.

Jeder Abschnitt enthält zudem eine Steuerelementsammlung, die nur die Steuerelemente für diesen Abschnitt enthält. Im folgenden Codebeispiel wird die Variablen generalTabAccountInfoSectionControls einem Steuerelementearray zugewiesen, das im Abschnitt Adresse der Registerkarte Allgemein gefunden wird.
var generalTabAccountInfoSectionControls = Xrm.Page.ui.tabs.get("general").sections.get("address").controls.get();

Hinweis

Jedes Attribut ist nur einmal im Formular vorhanden, aber dem Formular kann ein Feld für dieses Attribut mehrmals hinzugefügt werden. Jedes Feld, die hinzugefügt wird, erstellt ein anderes Steuerelement. Formulare können möglicherweise weiter angepasst werden, nachdem Sie Ihre Skripts geschrieben haben. Die Skripts, die Sie für Attributsteuerelemente schreiben, sollten davon ausgehen, dass sie mehrfach im Formular enthalten sind. Jede Aktion, die Sie für ein Steuerelement für ein Attribut ausführen möchten, sollte normalerweise auf alle Steuerelemente dieses Attributs angewendet werden. Wenn Sie z. B. ein Steuerelement deaktivieren möchten, aber nur eins davon deaktivieren, wird der Benutzer Daten möglicherweise über ein anderes eingeben. Aus diesem Grund ist es empfehlenswert, dass Sie das folgende Muster mithilfe der Sammlungsmethode forEach nutzen, um dieselbe Logik auf alle Steuerelemente für ein Attribut anzuwenden, auch wenn zum Zeitpunkt, an dem Sie das Skript schreiben, nur ein Steuerelement vorhanden ist.

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

In diesem Thema

Auf Kopfzeilen-Steuerelemente zugreifen

Steuerelemente in der Kopfzeile folgen der Namenskonvention, in der "header_" dem Namen des Steuerelements vorangestellt ist. Wenn z. B. das name-Attribut in der Kopfzeile ist, können Sie darauf zugreifen mit:
var nameControlInHeader = Xrm.Page.getControl("header_name");

Zugriff auf Geschäftsprozessflusssteuerungen

Steuerelemente in den Geschäftsprozessflusssteuerungselementen folgen der Namenskonvention, in der "header_process" dem Namen des Steuerelements vorangestellt ist. Wenn z. B. das name-Attribut in der Kopfzeile ist, können Sie darauf zugreifen mit:
var nameControlInBPF = Xrm.Page.getControl("header_process_name");

Hinweis

Nur Steuerelemente in der aktiven Phase sind in der Xrm.Page.ui.controls-Sammlung, wenn das Formular geladen wird. Andere Prozessflusssteuerungen werden hinzugefügt, wenn eine Phase für die aktuelle Entität ausgewählt wird.

Formularsteuermethoden

Nachdem Sie Zugriff auf ein Steuerelement haben, können Sie die folgenden Methoden aufrufen.

Aufgabe

Methode

Beispiel

Ermitteln, ob ein Steuerelement angezeigt wird

getVisible

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

Weist der Variablen isNameVisible einen Boolean Wert zu, der angibt, ob das Feld Firmenname sichtbar ist.

Ein- oder Ausblenden eines Steuerelements

setVisible

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

Blendet das Feld Firmenname aus.

Abrufen eines Verweises auf das Attribut für das Steuerelement

getAttribute

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

Weist das Attribut für das Steuerelement für das Feld Firmenname der Variablen nameAttribute zu.

Hinweis

Nicht alle Attribute haben Steuerelemente.

Ermitteln vom Typ des Steuerelements

getControlType

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

Weist ein Array von optionSetControls Steuerelementen der Variable optionset " zu.

Ermitteln, ob ein Steuerelement aktiviert ist

getDisabled

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

Weist ein Array von deaktivierten Steuerelementen der Variable disabledControls " zu.

Hinweis

Webressource- und Unterrastersteuerelemente unterstützen diese Methode nicht.

Deaktivieren oder aktivieren eines Steuerelements

setDisabled

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

Deaktivieren Sie jedes Steuerelement für das Attribut name.

Tipp

Beachten Sie, dass jedes Attribut möglicherweise mehrere Steuerelemente haben kann.

Abrufen der Beschriftung für ein Steuerelement

getLabel

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

Weist den Wert des Steuerelements für das Feld Firmenname der Variablen nameControlLabel zu.

Ändern der Bezeichnung für ein Steuerelement

setLabel

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

Ändert die Bezeichnung für das Feld Firmenname auf Firmenname.

Abrufen des Namens eines Steuerelements

getName

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

Weist den Namen des ersten Steuerelements in der Xrm.Page.ui.controls-Sammlung der Variablen firstControlName zu.

Abrufen des übergeordneten Elements eines Steuerelements

getParent

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

Weist den übergeordneten Abschnitt des Steuerelements für das Feld Firmenname der Variablen parentSection zu.

Festlegen des Fokus auf einem Steuerelement

setFocus

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

Legt den Fokus auf das Feld Firmenname fest.

In diesem Thema

OptionSet-Steuerelement-Methoden

Optionssets haben zudem einige spezielle Methoden. Es ist wichtig zu bedenken, dass die Attribute die gültigen Optionen für optionset definieren. Wenn Sie mit einem optionset-Steuerelement arbeiten, können Sie verfügbare Optionen ändern, Sie können jedoch keine neuen Optionen erstellen.

Aufgabe

Methode

Beispiel

Hinzufügen einer Option zum optionset-Steuerelement

addOption

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

Greifen Sie mithilfe eines Verweises auf das Steuerelement für das Feld Adresstyp auf das Attribut für das Steuerelement zu und verwenden Sie die Methode getOption, um die Variable billToAddressOption auf die Option festzulegen, die die Option Rechnungsadresse darstellt.

Verwenden clearOptions, um alle vorhandenen Optionen zu entfernen und verwenden Sie addOption, um billToAddressOption als einzige Option festlegen, die für dieses Steuerelement verfügbar ist.

Entfernen aller optionset-Optionen von einem Steuerelement

clearOptions

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

Entfernen Sie alle Optionen vom Steuerelement für das Feld Adresstyp.

Entfernen Sie eine einzelne Option von einem Steuerelement.

removeOption

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

Entfernen Sie die Optionen Rechnung an vom Steuerelement für das Feld Adresstyp.

In diesem Thema

IFRAME- und Webressourcen-Steuerelementmethoden

Ein IFRAME-Steuerelement ermöglicht es, eine Seite in einem Formular einzuschließen, indem eine URL bereitgestellt wird. Eine HTML-Webressource, die einem Formular hinzugefügt wurde, wird mithilfe eines IFRAME-Elements angezeigt.Silverlight und Bildwebressourcen werden direkt in der Seite eingebettet.

Aufgabe

Methode

Beispiel

Rufen Sie den Wert eines Datenabfragezeichenfolgenparameters ab, der an eine Silverlight Webressource übergeben wurde.

getData

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

Weist den Wert zu, der der Variable dataValue über den Datenabfragezeichenfolgenparameter übergeben wurde.

Rufen Sie URL für den aktuell in einem IFRAME angezeigten Inhalt ab.

getSrc

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

Weist die Zeichenfolge, die den aktuellen IFRAME.src-Attributswert darstellt der Variablen iframeSource zu.

Legt die URL für den Inhalt fest, der in einem IFRAME angezeigt wird.

setSrc

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

Legt eine URL fest, die der IFRAME.src für das Steuerelement sein soll.

Rufen Sie die URL ab, die die standardmäßig konfigurierte URL für einen IFRAME darstellt.

getInitialUrl

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

Weist die anfängliche URL, die konfiguriert wurde, um im IFRAME angezeigt zu werden, der Variablen initialUrl zu.

Ruft das Objekt im Formular, das die Webressource darstellt oder IFRAME ab.

getObject

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

Weist ein Objektverweis der Variablen obj zu. Für einen IFRAME ist das das IFRAME Dokumentobjektmodell (DOM)-Element. Für eine Silverlight-Webressource ist das das Objekt Objekt-Element, das das eingebettete Silverlight-Plug-In darstellt.

In diesem Thema

Steuerelementmethoden suchen

Eine gebräuchliche Anforderung für Nachschlagesteuerelemente ist das Angeben der Standardansicht, die angezeigt wird, wenn ein Benutzer das Feld aktualisiert.

Aufgabe

Methode

Beispiel

Hinzufügen einer benutzerdefinierten Ansicht für eine Suche.

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

Legt die Variablen viewId, viewDisplayName, fetchXml und layoutXml fest, die als Argumente übergeben werden sollen, damit eine benutzerdefinierte Ansicht dem Steuerelement für das Suchfeld Übergeordnete Firma hinzugefügt wird.

Rufen Sie die Standardansicht für eine Suche ab.

getDefaultView

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

Weisen Sie den id-Wert der der Standardansicht der Variablen defaultViewId zu.

Legen Sie die Standardansicht für eine Suche fest.

setDefaultView

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

Legt die Standardansicht für das Steuerelement für das Feld Übergeordnete Firma auf den Wert id in der Variablen viewId fest.

Filtern der Datensätze, die für ein Nachschlagesteuerelement zurückgegeben wurden

addCustomFilter

Das folgende Codebeispiel wird für die Suche des Verkaufschance-Formulars Firma (parentaccountid) bereitgestellt. Wenn die Sdk.setParentAccountIdFilter-Funktion im Onload-Formularereignishandler festgelegt ist, wird die Sdk.filterCustomAccounts-Funktion zum PreSearch-Ereignis für diese Suche hinzugefügt. Das Ergebnis ist, dass nur Firmen mit dem Kategorie (accountcategorycode)-Wert Bevorzugter Kunde (1) zurückgegeben werden.

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 diesem Thema

Unterrastersteuerelementmethoden

Das Steuerelement SubGrid ist ein Raster innerhalb eines Formulars. Es hat ist eine eindeutige Methode.

Aufgabe

Methode

Beispiel

Aktualisieren der Daten, die im Unterraster angezeigt werden

refresh

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

Aktualisieren Sie die Kontaktesubgrid.

In diesem Thema

Datensteuerelementmethoden

Das Date-Steuerelement ist eine eindeutige Methode.

Aufgabe

Methode

Beispiel

Geben Sie an, ob ein Datumssteuerelement den Zeitteil des Datums anzeigen soll.

setShowTime

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

Legen Sie das Feld Erstellt am fest, damit die Zeit nicht angezeigt wird.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

In diesem Thema

Formularnavigation

Sie können die Navigationselemente auf der linken Seite des Formulars verwenden und verändern. Diese Navigationselemente zeigen in der Regel Datensätze, die mit dem Datensatz verknüpft sind, der im Formular angezeigt wird.

Sie können auf Navigationselemente mithilfe der Sammlung Xrm.Page.ui.navigation.items zugreifen. Wie bei allen Sammlungen im Formular gibt es eine get-Methode und eine forEach-Methode.

Aufgabe

Methode

Beispiel

Abrufen des Namens eines Navigationselements

getId

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

Erstellen eines navItemIds-Arrays, das die Werte id jedes Navigationselements in der Xrm.Page.ui.navigation.items-Sammlung enthält.

Rufen Sie die Bezeichnung eines Navigationselements ab.

getLabel

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

Weisen Sie die Bezeichnung für das Navigationselement Weitere Adressen der Variablen navAddressesLabel zu.

Festlegen der Bezeichnung eines Navigationselements

setLabel

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

Ändern der Navigationselementbeschriftung Weitere Adressen auf Sonstiges Adressen.

Anzeigen oder ausblenden eines Navigationselements

setVisible

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

Blenden Sie das Navigationselement More Addresses aus.

Ermitteln, ob ein Navigationselement angezeigt wird

getVisible

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

Weisen Sie einen Boolean-Wert der Variablen moreAddressesVisible zu, um darzustellen, ob das Navigationselement Weitere Adressen angezeigt wird.

Legen Sie den Fokus auf ein Navigationselement fest.

setFocus

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

Legen Sie den Fokus auf das Navigationselement Weitere Adressen fest.

In diesem Thema

Registerkarten und Abschnitte

Jedes Formular verfügt über eine Sammlung von Registerkarten. Jede Registerkarte hat eine Sammlung von Abschnitten. Jeder Abschnitt hat eine Sammlung von Steuerelementen. Sie können auf diese Elemente programmgesteuert zugreifen und ihre Methoden verwenden.

Aufgabe

Methode

Beispiel

Ermitteln, ob eine Registerkarte erweitert oder reduziert wurde

getDisplayState

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

Weisen Sie einen Boolean Wert der Variablen isGeneralTabExpanded-zu, der angibt, ob die Registerkarte Allgemein erweitert wurde.

Erweitern oder Reduzieren einer Registerkarte

setDisplayState

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

Reduzieren Sie die Registerkarte Allgemein.

Ermitteln, ob eine Registerkarte sichtbar ist

getVisible

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

Weisen Sie einen Boolean Wert der Variablen isGeneralTabVisible-zu, der angibt, ob die Registerkarte Allgemein sichtbar ist.

Ein- oder Ausblenden einer Registerkarte

setVisible

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

Verbergen Sie die Registerkarte Allgemein.

Abrufen der Beschriftung für eine Registerkarte

getLabel

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

Weisen Sie der Registerkartenbeschriftung Allgemein der Variablen generalTabLabel zu.

Ändern der Bezeichnung für eine Registerkarte

setLabel

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

Ändern der Registerkartenbeschriftung Allgemein auf Wichtig.

Festlegen des Fokus auf eine Registerkarte

setFocus

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

Legen Sie den Fokus auf die Registerkarte Allgemein fest.

Abrufen des Namens der Registerkarte

getName

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

Weisen Sie den Namen der ersten Registerkarte der Variable firstTabName zu.

Abrufen der übergeordneten Registerkarte eines Abschnitts

getParent

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

Legen Sie den Fokus auf der Registerkarte fest, die das Feld Branche enthält.

Ermitteln, ob ein Abschnitt angezeigt wird

getVisible

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

Weisen Sie einen Boolean-Werts zum Angeben der Variablen industrySectionVisible zu, der angibt, ob der Abschnitt mit dem Feld Branche angezeigt wird.

Ein- oder Ausblenden eines Abschnitts

setVisible

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

Blenden Sie den Abschnitt mit dem Feld Branche aus.

Abrufen der Beschriftung für einen Abschnitt

getLabel

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

Weisen Sie die Beschriftung des Abschnitts mit dem Feld Branche der Variablen industryFieldSectionLabel zu.

Ändern einer Bezeichnung für einen Abschnitt

setLabel

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

Ändern Sie der Bezeichnung des Abschnitts mit dem Feld Branche auf Ausführliche Informationen.

In diesem Thema

Hinzufügen oder Entfernen von Ereignishandlern zur Laufzeit

Ereignishandler werden meist mithilfe des Formular-Editors in der Anwendung konfiguriert, Sie können sie jedoch auch mithilfe von APIs dem Formular OnSave-Ereignis und dem Attribut OnChange-Ereignisse zur Laufzeit hinzufügen. Die Beispiele in diesem Abschnitt beziehen sich auf die folgende Funktionsdefinition:
function myFunction() {
//perform action here
}

Obwohl Sie eine anonyme Funktion hinzufügen können, muss die Funktion einen Namen zum Verweisen haben, damit sie entfernt werden kann.

Aufgabe

Methode

Beispiel

Hinzufügen einer Funktion zum Ereignis OnSave

addOnSave

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

Fügen Sie die Funktion myFunction dem Ereignis OnSave hinzu.

Entfernen einer Funktion aus dem Ereignis OnSave

removeOnSave

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

Entfernen Sie die Funktion myFunction aus dem OnSave-Ereignis.

Fügen Sie eine Funktion dem OnChange-Ereignis eines Attributes hinzu.

addOnChange

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

Fügen Sie die myFunction-Funktion dem Ereignis OnChange des Felds Firmenname hinzu.

Entfernen Sie eine Funktion aus dem OnChange-Ereignis eines Attributes.

removeOnChange

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

Entfernen Sie die myFunction-Funktion aus dem Ereignis OnChange des Felds Firmenname.

Eine Funktion dem PreSearch-Ereignis eines Suchen-Steuerelements hinzufügen

addPreSearch

Das folgende Codebeispiel wird für die Suche des Verkaufschance-Formulars Firma (parentaccountid) bereitgestellt. Wenn die Sdk.setParentAccountIdFilter-Funktion im Onload-Formularereignishandler festgelegt ist, wird die Sdk.filterCustomAccounts-Funktion zum PreSearch-Ereignis für diese Suche hinzugefügt. Das Ergebnis ist, dass nur Firmen mit dem Kategorie (accountcategorycode)-Wert Bevorzugter Kunde (1) zurückgegeben werden.

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

Verwenden Sie OnStageChange-Ereignis und OnStageSelected-Ereignis für Ereignisse, die in der Geschäftsprozessflusssteuerung auftreten. Diese Ereignisse haben nur Methoden zum programmgesteuerten Hinzufügen und Entfernen von Ereignishandlern.Weitere Informationen:Möglichkeiten zum Verwalten von Ereignishandlern.

In diesem Thema

Kontextbezogene Informationsmethoden

Verwenden Sie diese Methoden, um Informationen zum Benutzer, der Organisation und dem Client zu erhalten. Die folgende Tabelle bietet einige der hilfreichsten Kontextmethoden. Informationen zu allen Kontextmethoden finden Sie unter Clientseitiger Kontext (clientseitige Referenz)

Aufgabe

Methode

Beispiel

Rufen Sie die URL ab, um eine Verbindung zu der Organisation herzustellen.

getClientUrl

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

Weisen sie eine Zeichenfolge, die die URL darstellt, der Variablen serverUrl zu.

Rufen Sie den eindeutigen Bezeichner für den aktuellen Benutzer ab.

getUserId

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

Weisen sie eine Zeichenfolge, die die Benutzer-ID darstellt der Variablen userId zu.

Rufen Sie den Namen des aktuellen Benutzers ab.

getUserName

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

Weisen sie eine Zeichenfolge, die den Namen des Benutzer darstellt, der Variablen userName zu.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Rufen Sie den Sprachcode ab, der die bevorzugte Sprache der Benutzeroberfläche des Benutzers darstellt.

getUserLcid

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

Weisen Sie eine Zahl, die die bevorzugte Sprache des Benutzers angibt, der Variablen userLCID zu.

Rufen Sie ein Zeichenfolgenarray ab, das die GUID-Werte für jede Sicherheitsrolle darstellt, die dem aktuellen Benutzer und jedem Team, dem der Benutzer angehört, zugeordnet ist.

getUserRoles

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

Weisen Sie ein Zeichenfolgenarray, das die Sicherheitsrollen des Benutzers darstellt, der Variablen userRoles zu.

Bestimmen Sie, ob das Skript im Microsoft Dynamics CRM für Outlook-Client ausgeführt wird.

client.getClient

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

Weisen Sie einen Boolean-Wert, der darstellt, ob Ihr Code im Dynamics CRM für Outlook-Client ausgeführt wird, der isOutlookClient-Variablen zu.

Bestimmen Sie, ob der Benutzer mit dem Microsoft Dynamics CRM für Microsoft Office Outlook mit Offlinezugriff Client offline arbeitet.

client.getClientState

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

Weisen Sie einen Boolean-Wert, der darstellt, ob der Benutzer aktuell offline arbeitet der IsOffline-Variablen zu.

In diesem Thema

Daten abrufen, aktualisieren oder speichern

Die folgende Tabelle umfasst Methoden, die Sie verwenden können, um Informationen zum über den aktuellen Datensatze zu erhalten oder Änderungen zu speichern. Weitere Informationen finden Sie unter Xrm.Page.data.entity (clientseitige Referenz) und Xrm.Page.data (clientseitige Referenz).

Aufgabe

Methode

Beispiel

Abrufen des logischen Namens der zu erstellenden Entität

getEntityName

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

Weisen Sie den logischen Entitätsnamen der Variablen entityName zu.

Rufen Sie den Wert für das primäre Attribut für die aktuelle Entität ab.
Das primäre Attribut ist der Wert, der verwendet wird, um den Datensatz zu identifizieren. Zum Beispiel contact.fullname.

getPrimaryAttributeValue

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

Weisen Sie den Wert des primären Attributs der primaryAttributeValue-Variablen zu.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Abrufen der Id des aktuellen Datensatzes

getId

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

Weisen Sie die id des Datensatzes der Variablen recordId zu.

Aktualisieren Sie die Daten des Formulars asynchron ohne die Seite erneut zu laden.

refresh

Xrm.Page.data.refresh();

Aktualisiert die Daten im Formular.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Speichern des aktuellen Datensatzes

Xrm.Page.data.entity.Speichern

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

Speichert den Datensatz. Es gibt optionale Argumente. Verwenden Sie saveandclose oder saveandnew, um die entsprechenden Aktionen auszuführen.

Speichern Sie den aktuellen Datensatz asynchron mit der Option, um die
auszuführenden Rückruffunktionen festzulegen, nachdem der Speichervorgang abgeschlossen ist.

Xrm.Page.data.Speichern

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

Speichert den Datensatz und zeigt die Meldung an, die den Status des Speichervorgangs anzeigt.

Diese Methode ist nur für Aktualisierte Entitäten verfügbar.

Bestimmen Sie, ob die Daten im aktuellen Datensatz geändert wurden.

getIsDirty

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

Weisen Sie eines Boolean-Werts, der darstellt, ob der im Datensatz geändert wurde, der Variablen isDirty zu.

Rufen Sie eine Zeichenfolge ab, die die Daten darstellt, die zum Server gesendet werden, wenn der Datensatz gespeichert wird.

getDataXml

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

Weisen sie eine Zeichenfolge, die die zu speichernden Daten darstellt, der Variablen dataXml zu.

In diesem Thema

Siehe auch

Verwenden des Xrm.Page-Objektmodells
Schreiben von Code für Microsoft Dynamics CRM 2015-Formulare
Cclientseitige Programmierreferenz

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright