Freigeben über


Anpassen von Formularen in modellgesteuerten Apps

Formulare in modellgesteuerten Apps stellen die Benutzeroberfläche bereit, die benutzer zum Erstellen, Anzeigen oder Bearbeiten von Tabellendatensätzen verwenden. In diesem Artikel wird erläutert, wie Formulare programmgesteuert mithilfe des SystemForm Tabellen- und Formular-Designers in Anpassungstools erstellt oder bearbeitet werden. Sie erfahren, wie Sie auf Formulardefinitionen zugreifen, Formulareigenschaften verstehen und Formulare mithilfe von Codebeispielen implementieren.

Zugriffsformulardefinitionen

Die SystemForm Tabelle speichert Formulare zusammen mit Dashboards und Visualisierungen. Sie können die Formulardefinitionen für eine Tabelle auf zwei Arten prüfen:

  • Schließen Sie die Tabelle in einer nicht verwalteten Lösung ein, und exportieren Sie die Lösung.

  • Abfrage der SystemForm Tabelle.

Anzeigen von FormXML aus einer exportierten Tabelle

Eine exportierte verwaltete Lösung enthält nur Definitionen von Systemformularen, die Sie anpassen. Zum Anzeigen der Definition eines Systemformulars müssen Sie entweder das Formular ändern oder ein neues Formular erstellen, indem Sie das vorhandene Formular unter einem neuen Namen speichern.

Nachdem Sie die Lösung exportiert haben, extrahieren Sie den Inhalt, und zeigen Sie die customizations.xml Datei an. Sie finden die Definition der Formulare in ImportExportXml>Entities>Entity>FormXml. <FormXml> Im Knoten wird jeder Formulartyp in einem <forms> Element gruppiert, wobei der Parameter den type Formulartyp angibt.

Formulareigenschaften

Die folgende Tabelle enthält zentrale SystemForm-Tabellenspalte und die entsprechenden Daten in den mit der Lösung exportierten XML-Elementen.

SystemForm-Eigenschaft FormXML-Element Eigenschaft
AncestorFormId <ancestor> Eindeutiger Bezeichner des übergeordneten Formulars. Legen Sie diese Eigenschaft fest, wenn Sie ein neues Formular mithilfe von "Speichern unter " für ein vorhandenes Formular oder mithilfe der SDK-Klasse für .NET CopySystemFormRequest - oder Web-API CopySystemForm-Aktion erstellen.
CanBeDeleted <CanBeDeleted> Informationen, die angeben, ob diese Komponente gelöscht werden kann. Diese verwaltete Eigenschaft gilt nur, wenn Sie das Formular durch Importieren einer verwalteten Lösung erstellen.
Description <Descriptions> Description ist eine Zeichenkette und <Descriptions> enthält alle lokalisierten Beschriftungen für die Beschreibung des Formulars.

Sie können die Bezeichnungen mithilfe der lokalisierten RetrieveLocLabelsRequest abrufen.
FormActivationState <FormActivationState> Legt den Status des Formulars fest.

Nur Formulare vom Typ „Haupt“ können deaktiviert werden.

Gültige Werte:

- 0: Inactive
-1: Active
FormId <formid> Eindeutiger Bezeichner des Formulars
FormPresentation <FormPresentation> Gibt an, ob dieses Formular im aktualisierten UI-Layout in Microsoft Dataverse vorhanden ist.
FormXml <form> XML-Darstellung des Formularlayouts.
IntroducedVersion <IntroducedVersion> Version der Lösung, in der das Formular hinzugefügt wurde.
IsAIRMerged Nicht zutreffend Legt fest, ob dieses Formular mit dem aktualisierten UI-Layout in Dataverse zusammengeführt wird.
IsCustomizable <IsCustomizable> Information, die angibt, ob die Komponente angepasst werden kann.

Diese verwaltete Eigenschaft gilt nur, wenn Sie das Formular durch Importieren einer verwalteten Lösung erstellen.
IsDefault Nicht zutreffend Informationen, die angeben, ob es sich bei Formular oder Dashboard um den Systemstandard handelt.
Name <LocalizedNames> Name ist eine Zeichenkette und <LocalizedNames> enthält alle lokalisierten Beschriftungen für den Namen des Formulars.

Sie können die lokalisierten Bezeichnungen mithilfe der RetrieveLocLabelsRequest.
ObjectTypeCode Das Formular ist ein Nachkomme des Entity-Elements. Der ObjectTypeCode-Wert ist der logische Name der Tabelle.
Type <forms> Element type Parameter Gültige Werte für Formulare sind:

- 2: main
-5: mobile
-6: quick
-7: quickCreate

Erstellen und Bearbeiten von Formularen

Sie können neue Formulare nur für Tabellen erstellen, in denen EntityMetadata.CanCreateForms dies zulässt.

Erstellen Sie neue Formulare, indem Sie sie direkt oder mithilfe der CopySystemForm Nachricht erstellen. Verwenden Sie das SDK für .NET CopySystemFormRequest-Klasse oder die Web-API CopySystemForm-Aktion. Wenn Sie die CopySystemForm Nachricht oder Speichern unter im Formular-Editor verwenden, gibt es keine Vererbung zwischen den Formularen. Daher gelten Änderungen am Basisformular nicht automatisch für formulare, die daraus erstellt wurden.

Sie können Formulardefinitionen bearbeiten, indem Sie eine verwaltete Lösung exportieren, die Formulardefinitionen bearbeiten und dann die Lösung erneut importieren. Wenn Sie Formulare manuell bearbeiten, verwenden Sie einen XML-Editor, der die Schemaüberprüfung unterstützt. Weitere Informationen finden Sie unter Bearbeiten der XML-Anpassungsdatei mit Schemaüberprüfung.

Öffnen des Hauptformulars in einem Dialogfeld mithilfe der Client-API

Rufen Sie zum Öffnen des Hauptformulars in einem Dialogfeld mithilfe der Client-API die Xrm.Navigation.navigateTo-Methode auf. Die Xrm.Navigation.navigateTo-API-Methode öffnet das Dialogfeld mit mehreren Optionen, einschließlich Größe und Position.

Anmerkung

Die Xrm.Navigation.openForm-Methode unterstützt das Öffnen eines Hauptformulars nicht als Dialogfeld.

Beispiel: Öffnen eines neuen Datensatzes

In diesem Beispiel öffnet das Dialogfeld ein neues Kontoformular zum Erstellen eines neuen Datensatzes. Das Dialogfeld wird in der Mitte angezeigt und nutzt dabei bis zu 50% des verfügbaren Fensters als modales Element über dem Formular, aus dem es aufgerufen wurde.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
};
var navigationOptions = {
    target: 2,
    width: {value: 50, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Öffnen Sie einen neuen Datensatz.

Beispiel: Öffnen eines vorhandenen Datensatzes

In diesem Beispiel öffnet das Dialogfeld einen vorhandenen Kontodatensatz mithilfe des Konto-ID-Werts im Kontaktformular. Ersetzen Sie die ID durch einen beliebigen Datensatz-ID-Wert, um den Datensatz im Dialogfeld zu öffnen.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
    entityId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" //replace with actual ID
};
var navigationOptions = {
    target: 2,
    width: {value: 80, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Öffnen Sie einen vorhandenen Datensatz.

Beispiel: Öffnen Sie einen neuen Datensatz im Seitenbereich

In diesem Beispiel öffnet das Dialogfeld einen neuen Datensatz in der rechten Ecke des Fensters. Sie können dieses Verhalten mithilfe der Pixeloptionen erreichen.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
};
var navigationOptions = {
    target: 2,
    width: {value: 500, unit:"px"},
    position: 2
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Öffnen sie einen vorhandenen Datensatz im Seitenbereich.

Beispiel: Öffnen des Hauptformulars in einem Dialogfeld mit Rückrufmethode

In diesem Beispiel wird gezeigt, wie Sie ein Hauptformulardialogfeld mit einer Rückrufmethode aufrufen, nachdem Sie einen Datensatz gespeichert und das Dialogfeld geschlossen haben.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2
};
var navigationOptions = {
    target: 2,
    width: {value: 80, unit:"%"},
    position: 2  
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success(result) {
            console.log("Record created with ID: " + result.savedEntityReference[0].id + 
            " Name: " + result.savedEntityReference[0].name)
            // Handle dialog closed
    },
    function error() {
            // Handle errors
    }
);

Siehe auch

Formulare erstellen und gestalten
SystemForm-Tabelle
Formular-XML-Schema
Xrm.Navigation.navigateTo