Häufige Client-Scripting-Aufgaben
Das Client-API-Objektmodell ist umfangreich. Wenn Sie sich mit Client-Scripting vertraut machen, werden Sie feststellen, dass es viele API-Objekte und ‑Methoden gibt, die Sie zum Implementieren Ihrer Logik verwenden können. In dieser Lerneinheit sehen wir uns einige der häufigsten Aufgaben an, die Sie ausführen werden, und die Techniken, mit denen Sie sie ausführen können.
Auf Dataverse-Spaltendaten zugreifen
Eine Dataverse-Spalte befindet sich im Objektmodell als ein Attributobjekt. Sie können die Methode getAttribute() des formContext-Objekts nutzen, um schnell entweder ein bestimmtes Attribut oder alle im Formular vorhandenen Attribute zu finden. Jedes Attributobjekt enthält einige allgemeine Methoden und andere Methoden – abhängig vom Attributdatentyp.
Hinweis
Dieser Beispielcode nimmt an, dass die verwendeten Attribute und Steuerelemente vorhanden sind. Die meisten Methoden geben Null zurück, wenn keine Objekte verfügbar sind und in der Praxis übliche Abwehrprüfungen verwendet werden sollten.
Tipp
Von Client-API-Methoden zurückgegebene Sammlungen verfügen über einige hilfreiche Methoden, mit denen Sie die Elemente durchgehen können. Weitere Informationen finden Sie unter Sammlungen (Client-API-Referenz) in modellgesteuerten Apps – Power Apps.
Aufgabe | Beispiel |
---|---|
Zugriff nach Name |
javascript var nameAttribute = formContext.getAttribute("name"); Weist der Variablen nameAttribute das Attribut für die Spalte Kontoname zu. Die Methode getAttribute gibt den Wert Null zurück, wenn das Attribut im Formular nicht vorhanden ist. |
Auf alle Attribute zugreifen |
javascript var allAttributes = formContext.getAttribute(); Weist der Variablen allAttributes ein Array aller Attribute in der Sammlung formContext.data.entity.attributes zu. |
Attribute verwenden
Aufgabe | Beispiel |
---|---|
Den Wert eines Attributs abrufen |
javascript var nameValue = formContext.getAttribute("name").getValue(); Weist der Variablen nameValue den Wert für die Spalte Kontoname zu. |
Den Wert eines Attributs einrichten |
javascript formContext.getAttribute("name").setValue("new name"); Setzt den Wert der Spalte Kontoname auf „Neuer Name“. |
Das aktuell ausgewählte Optionsobjekt in einem OptionSet-Attribut (OptionSet-Attribut beschreibt die Dataverse Auswahlspalte) abrufen |
javascript var addressTypeOption = formContext.getAttribute("address1_addresstypecode").getSelectedOption(); Weist der Variablen Adresstyp die ausgewählte Option in der Spalte addressTypeOption zu. |
Feststellen, ob sich ein Attributwert in der Benutzeroberfläche seit dem Öffnen des Formulars geändert hat |
javascript var isNameChanged = formContext.getAttribute("name").getIsDirty(); Weist einen booleschen Wert zu, der angibt, ob sich der Spaltenwert Kontoname zur Variablen isNameChanged geändert hat. |
Ändern, ob Daten in einer Spalte benötigt werden, um einen Datensatz zu speichern |
javascript formContext.getAttribute("creditlimit").setRequiredLevel("required"); Macht die Spalte Kreditlimit erforderlich.
javascript formContext.getAttribute("creditlimit").setRequiredLevel("none"); Macht die Spalte Kreditlimit optional. |
Festlegen, ob die Daten in einem Attribut beim Speichern des Datensatzes übermittelt werden |
javascript var nameSubmitMode = formContext.getAttribute("name").getSubmitMode(); Die Variable nameSubmitMode ist entweder der Text immer, nie oder ungültig zur Darstellung von submitMode für die Spalte Kontoname. |
Steuern, ob die Daten in einem Attribut beim Speichern des Datensatzes gespeichert werden |
javascript formContext.getAttribute("name").setSubmitMode("always"); Das Beispiel erzwingt den Spaltennamen Kontoname, der immer gespeichert werden soll, auch wenn er sich nicht geändert hat. |
Wenn Sicherheit auf Spaltenebene auf ein Attribut angewendet wurde, bestimmen Sie, ob ein Benutzer über Berechtigungen zum Ausführen von Erstellungs‑, Lese‑ oder Aktualisierungsvorgänge für das Attribut verfügt. |
javascript var canUpdateNameAttribute = formContext.getAttribute("name").getUserPrivilege().canUpdate; Weist einen booleschen Wert zu, der die Berechtigung des Benutzers zum Aktualisieren der Spalte Kontoname in canUpdateNameAttribute-Variablen repräsentiert. |
Auf Formularsteuerelemente zugreifen
Aufgabe | Beispiel |
---|---|
Auf alle Steuerelemente für ein bestimmtes Attribut zugreifen |
javascript var nameControls = formContext.getAttribute("name").controls.get(); Weist der Variablen nameControls ein Array aller Steuerelemente für das Attribut Name zu. Die meisten Attribute werden durch ein Steuerelement dargestellt. Es können jedoch auch mehrere Attribute zur Verfügung stehen, wenn dem Formular eine Spalte mehr als einmal hinzugefügt wurde. |
Auf ein Steuerelement über den Namen zugreifen |
javascript var nameControl = formContext.getControl("name"); Das erste Steuerelement, das einem Formular für eine Spalte hinzugefügt wird, hat denselben Namen wie die Spalte. Jedem anderen Namen eines Steuerelements wird eine Indexnummer angehängt. Zum Beispiel haben drei Steuerelemente für die Namensspalte die Namen: name, name1 und name2. |
Auf alle Steuerelemente zugreifen |
javascript var allControls = formContext.getControl(); Weist der Variablen allControls ein Array aller Steuerelemente in der Sammlung formContext.ui.controls zu. |
Formularsteuerelemente verwenden
Steuerelementobjekte wie Attributobjekte haben unabhängig vom Typ einen gemeinsamen Methodensatz. Sie verfügen auch über spezialisierte Methoden basierend auf der Art der Steuerung.
Aufgabe | Beispiel |
---|---|
Bestimmen, ob ein Steuerelement angezeigt wird |
javascript var isNameVisible = formContext.getControl("name").getVisible(); Weist einen booleschen Wert für die Variable isNameVisible zu, der darstellt, ob die Spalte Kontoname angezeigt wird. |
Ein Steuerelement ausblenden oder anzeigen |
javascript formContext.getControl("name").setVisible(false); Blendet die Spalte Kontoname aus. |
Einen Verweis auf das Attribut für das Steuerelement abrufen |
javascript var nameAttribute = formContext.getControl("name").getAttribute(); Weist der Variablen nameAttribute das Attribut für das Steuerelement für die Spalte Kontoname zu. |
Alle Steuerelemente für ein Attribut deaktivieren oder aktivieren |
javascript formContext.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); }); Beachten Sie, dass jedes Attribut über mehrere Steuerelemente verfügen kann. |
Die Bezeichnung für ein Steuerelement ändern |
javascript formContext.getControl("name").setLabel("Company Name"); Setzt die Bezeichnung für die Spalte Kontoname auf den Text Unternehmensname. |
Das übergeordnete Element eines Steuerelements abrufen |
javascript var parentSection = formContext.getControl("name").getParent(); Weist der Variablen parentSection das übergeordnete Steuerelement für die Spalte Kontoname zu. |
Ein Steuerelement in den Fokus rücken |
javascript formContext.getControl("name").setFocus(); Setzt den aktuellen Eingabefokus auf die Spalte Kontoname. |
Registerkarten und Abschnitte verwenden
Jedes Formular hat eine Sammlung mit Registerkarten. Jede Registerkarte enthält eine Sammlung mit Abschnitten. Jeder Abschnitt enthält eine Sammlung mit Steuerelementen. Sie können programmgesteuert auf diese Elemente zugreifen und ihre Methoden verwenden.
Aufgabe | Beispiel |
---|---|
Registerkarte anzeigen oder ausblenden |
javascript formContext.ui.tabs.get("general").setVisible(false); Blendet die Registerkarte Allgemein aus. |
Die Bezeichnung für eine Registerkarte ändern |
javascript formContext.ui.tabs.get("general").setLabel("Major"); Setzt die Bezeichnung der Registerkarte Allgemein auf den Text Haupt. |
Einen Abschnitt ausblenden oder anzeigen |
javascript formContext.getControl("industrycode").getParent().setVisible(false); Blendet den Abschnitt aus, der die Spalte Branchencode enthält. |
Entitätsdaten verwenden
Die folgende Tabelle umfasst Methoden, mit denen Sie Informationen zum aktuellen Datensatz abrufen können.
Aufgabe | Beispiel |
---|---|
Die ID des aktuellen Datensatzes abrufen |
javascript var recordId = formContext.data.entity.getId(); Weist der Variablen recordId einen eindeutigen Bezeichner für den aktuellen Datensatz zu. Wenn das Formular geöffnet wird, um einen neuen Datensatz zu erstellen, wird der Wert Null zurückgegeben. |
Aktuellen Datensatz speichern |
javascript formContext.data.entity.save(); Verwenden Sie saveandclose oder saveandnew, um die äquivalenten Aktionen mit dem Speichern und schließen oder Speichern und neu auszuführen. |
Stellen Sie fest, ob Daten im aktuellen Datensatz geändert wurden. |
javascript var isDirty = formContext.data.entity.getIsDirty(); Weist einen booleschen Wert zu, der angibt, ob sich ein Spaltenwert im Formular zu der Variablen isDirty geändert hat. |