Bearbeiten von Formularen editing-forms
Übersicht
Marketer und Benutzer verwenden Eingabeformulare, um Datensätze zu erstellen, zu ändern und in der Vorschau anzuzeigen. Forms zeigt eine visuelle Darstellung von Informationen an.
Sie können Eingabeformulare erstellen und ändern:
- Sie können die werkseitigen Eingabeformulare ändern, die standardmäßig bereitgestellt werden. Die werkseitigen Eingabeformulare basieren auf den werkseitigen Datenschemata.
- Sie können benutzerdefinierte Eingabeformulare erstellen, die auf von Ihnen definierten Datenschemata basieren.
Forms sind Entitäten von xtk:form
Typ. Sie können die Struktur des Eingabeformulars im xtk:form
Schema. Um dieses Schema anzuzeigen, wählen Sie Administration > Konfiguration > Datenschemata aus dem Menü. Mehr dazu Formularstruktur.
Um auf Eingabeformulare zuzugreifen, wählen Sie Administration > Konfiguration > Formulare aus dem Menü:
Um Formulare zu entwerfen, bearbeiten Sie den XML-Inhalt im XML-Editor:
Um eine Vorschau eines Formulars anzuzeigen, klicken Sie auf das Vorschau tab:
Formulartypen
Sie können verschiedene Arten von Eingabeformularen erstellen. Der Formulartyp bestimmt, wie Benutzer im Formular navigieren:
-
Konsolen-Bildschirm
Dies ist der Standardformulartyp. Das Formular besteht aus einer einzelnen Seite.
-
Content-Management
Verwenden Sie diesen Formulartyp für das Content Management. Siehe dies Anwendungsfall.
-
Assistent
Dieses Formular umfasst mehrere schwebende Bildschirme, die in einer bestimmten Sequenz angeordnet sind. Benutzer navigieren von einem Bildschirm zum nächsten. Weitere Informationen
-
Iconbox
Dieses Formular umfasst mehrere Seiten. Um durch das Formular zu navigieren, wählen Benutzer auf der linken Seite des Formulars Symbole aus.
-
Notebook
Dieses Formular umfasst mehrere Seiten. Um durch das Formular zu navigieren, wählen Benutzer Registerkarten oben im Formular aus.
-
Vertikale Trennung
Dieses Formular zeigt eine Navigationsstruktur.
-
Horizontale Trennung
Dieses Formular zeigt eine Liste von Elementen an.
Container
In Formularen können Sie Container für verschiedene Zwecke verwenden:
- Organisieren von Inhalten in Formularen
- Zugriff auf Eingabefelder definieren
- Verschachteln von Formularen in anderen Formularen
Inhalt organisieren
Verwenden Sie Container zum Organisieren von Inhalten in Formularen:
- Sie können Felder in Abschnitten gruppieren.
- Sie können mehrseitigen Formularen Seiten hinzufügen.
Verwenden Sie zum Einfügen eines Containers die <container>
-Element. Weitere Informationen
Gruppenfelder
Verwenden Sie Container, um Eingabefelder in organisierte Abschnitte zu gruppieren.
Verwenden Sie dieses Element, um einen Abschnitt in ein Formular einzufügen: <container type="frame">
. Wenn Sie optional einen Abschnittstitel hinzufügen möchten, verwenden Sie die label
-Attribut.
Syntax: <container type="frame" label="
section_title"> […] </container>
In diesem Beispiel definiert ein Container die Erstellung -Abschnitt, der die Erstellt von und Name Eingabefelder:
<form _cs="Coupons (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Coupons"
name="coupon" namespace="nms" type="default" xtkschema="xtk:form">
<input xpath="@code"/>
<input xpath="@type"/>
<container label="Creation" type="frame">
<input xpath="createdBy"/>
<input xpath="createdBy/@name"/>
</container>
</form>
Hinzufügen von Seiten zu mehrseitigen Formularen
Verwenden Sie für mehrseitige Formulare einen Container, um eine Formularseite zu erstellen.
Dieses Beispiel zeigt Container für Allgemein und Details Formularseiten:
<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>
Zugriff auf Felder definieren
Verwenden Sie Container, um zu definieren, was sichtbar ist, und um den Zugriff auf Felder zu definieren. Sie können Gruppen von Feldern aktivieren oder deaktivieren.
Verschachteln von Formularen
Verwenden Sie Container zum Verschachteln von Formularen in anderen Formularen. Weitere Informationen
Verweise auf Bilder
Um Bilder zu suchen, wählen Sie Administration > Konfiguration > Bilder aus dem Menü.
Um ein Bild mit einem Element im Formular zu verknüpfen, z. B. einem Symbol, können Sie einem Bild einen Verweis hinzufügen. Verwenden Sie die img
-Attribut, beispielsweise im <container>
-Element.
Syntax: img="
namespace
:
filename
.
extension
"
Dieses Beispiel zeigt Verweise auf die book.png
und detail.png
Bilder aus ncm
namespace:
<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>
Diese Bilder werden für Symbole verwendet, auf die Benutzer klicken, um in einem mehrseitigen Formular zu navigieren:
Einfaches Formular erstellen create-simple-form
Gehen Sie wie folgt vor, um ein Formular zu erstellen:
-
Wählen Sie im Menü Administration > Konfiguration > Formulare.
-
Klicken Sie auf Neu rechts oben in der Liste.
-
Geben Sie die Formulareigenschaften an:
-
Geben Sie den Formularnamen und den Namespace an.
Der Formularname und der Namespace können mit dem zugehörigen Datenschema übereinstimmen. Dieses Beispiel zeigt ein Formular für die
cus:order
Datenschema:code language-xml <form entitySchema="xtk:form" img="xtk:form.png" label="Order" name="order" namespace="cus" type="iconbox" xtkschema="xtk:form"> […] </form>
Alternativ können Sie das Datenschema explizit im
entity-schema
-Attribut.code language-xml <form entity-schema="cus:stockLine" entitySchema="xtk:form" img="xtk:form.png" label="Stock order" name="stockOrder" namespace="cus" xtkschema="xtk:form"> […] </form>
-
Geben Sie den Titel an, der im Formular angezeigt werden soll.
-
Geben Sie optional den Formulartyp an. Wenn Sie keinen Formulartyp angeben, wird standardmäßig der Konsolenbildschirmtyp verwendet.
Wenn Sie ein mehrseitiges Formular entwerfen, können Sie den Formulartyp im
<form>
-Element und geben Sie den Typ in einem Container an.
-
-
Klicken Sie auf Speichern.
-
Fügen Sie die Formularelemente ein.
Um beispielsweise ein Eingabefeld einzufügen, verwenden Sie die
<input>
-Element. Legen Sie diexpath
-Attribut der Feldreferenz als XPath-Ausdruck zuweisen. Weitere InformationenDieses Beispiel zeigt Eingabefelder, die auf dem
nms:recipient
Schema.code language-xml <input xpath="@firstName"/> <input xpath="@lastName"/>
-
Wenn das Formular auf einem bestimmten Schematyp basiert, können Sie die Felder für dieses Schema nachschlagen:
-
Klicks Einfügen > Dokumentfelder.
-
Wählen Sie das Feld aus und klicken Sie auf OK.
-
-
Geben Sie optional den Feld-Editor an.
Jedem Datentyp ist ein standardmäßiger Feldeditor zugeordnet:
- Bei einem Feld vom Typ Datum zeigt das Formular einen Eingabekalender an.
- Bei einem Auflistungsfeld zeigt das Formular eine Auswahlliste an.
Sie können die folgenden Editor-Typen für Felder verwenden:
table 0-row-2 1-row-2 2-row-2 3-row-2 Feld-Editor Formularattribut Radiobutton type="radiobutton"
Kontrollkästchen type="checkbox"
Bearbeitungsstruktur type="tree"
Mehr dazu Speicherlistensteuerelemente.
-
Definieren Sie optional den Zugriff auf die Felder:
table 0-row-3 1-row-3 2-row-3 3-row-3 Element Attribut Beschreibung <input>
read-only="true"
Ermöglicht schreibgeschützten Zugriff auf ein Feld <container>
type="visibleGroup" visibleIf="
edit-expr"
Zeigt eine Feldergruppe bedingt an <container>
type="enabledGroup" enabledIf="
edit-expr"
Bedingte Aktivierung einer Feldergruppe Beispiel:
code language-xml <container type="enabledGroup" enabledIf="@gender=1"> […] </container> <container type="enabledGroup" enabledIf="@gender=2"> […] </container>
-
Verwenden Sie optional Container, um Felder in Abschnitte zu gruppieren.
code language-xml <container type="frame" label="Name"> <input xpath="@firstName"/> <input xpath="@lastName"/> </container> <container type="frame" label="Contact details"> <input xpath="@email"/> <input xpath="@phone"/> </container>
Mehrseitige Formulare erstellen create-multipage-form
Sie können mehrseitige Formulare erstellen. Sie können Formulare auch in anderen Formularen verschachteln.
Erstellen Sie eine iconbox
Formular
Verwenden Sie die iconbox
Formulartyp zum Anzeigen von Symbolen auf der linken Seite des Formulars, über die Benutzer zu verschiedenen Seiten im Formular gelangen.
So ändern Sie den Typ eines vorhandenen Formulars in iconbox
führen Sie die folgenden Schritte aus:
-
Ändern Sie die
type
-Attribut<form>
Element zuiconbox
:code language-xml <form […] type="iconbox">
-
Legen Sie für jede Formularseite einen Container fest:
-
Hinzufügen einer
<container>
-Element als untergeordnetes Element des<form>
-Element. -
Um eine Beschriftung und ein Bild für das Symbol zu definieren, verwenden Sie die
label
undimg
-Attribute.code language-xml <form entitySchema="xtk:form" name="Service provider" namespace="nms" type="iconbox" xtkschema="xtk:form"> <container img="xtk:properties.png" label="General"> <input xpath="@label"/> <input xpath="@name"/> […] </container> <container img="nms:msgfolder.png" label="Details"> <input xpath="@address"/> […] </container> <container img="nms:supplier.png" label="Services"> […] </container> </form>
Alternativ können Sie die
type="frame"
-Attribut aus dem vorhandenen<container>
-Elemente. -
Notebook-Formular erstellen
Verwenden Sie die notebook
Formulartyp zum Anzeigen von Registerkarten oben im Formular, über die Benutzer zu verschiedenen Seiten gelangen.
So ändern Sie den Typ eines vorhandenen Formulars in notebook
führen Sie die folgenden Schritte aus:
-
Ändern Sie die
type
-Attribut<form>
Element zunotebook
:code language-xml <form […] type="notebook">
-
Fügen Sie für jede Formularseite einen Container hinzu:
- Hinzufügen einer
<container>
-Element als untergeordnetes Element des<form>
-Element. - Um den Titel und das Bild für das Symbol zu definieren, verwenden Sie die
label
undimg
-Attribute.
code language-xml <form entitySchema="xtk:form" name="Service provider" namespace="nms" type="notebook" xtkschema="xtk:form"> <container label="General"> <input xpath="@label"/> <input xpath="@name"/> […] </container> <container label="Details"> <input xpath="@address"/> […] </container> <container label="Services"> […] </container> </form>
Alternativ können Sie die
type="frame"
-Attribut aus dem vorhandenen<container>
-Elemente. - Hinzufügen einer
Verschachteln von Formularen
Sie können Formulare in anderen Formularen verschachteln. Sie können beispielsweise Notebook-Formulare in iconbox-Formularen verschachteln.
Die Ebene der Verschachtelung steuert die Navigation. Benutzer können ein Drilldown zu Teilformularen durchführen.
Um ein Formular in einem anderen Formular zu verschachteln, fügen Sie eine <container>
-Element und legen Sie die type
dem Formulartyp zuordnen. Für Formulare der obersten Ebene können Sie den Formulartyp in einem äußeren Container oder im <form>
-Element.
Beispiel
Dieses Beispiel zeigt ein komplexes Formular:
-
Das Formular der obersten Ebene ist ein Iconbox-Formular. Dieses Formular umfasst zwei Behälter mit der Bezeichnung Allgemein und Details.
Daher zeigt das äußere Formular die Allgemein und Details Seiten auf der obersten Ebene. Um auf diese Seiten zuzugreifen, klicken Benutzer auf die Symbole links im Formular.
-
Das Teilformular ist ein Notebook-Formular, das innerhalb der Allgemein Container. Das Teilformular besteht aus zwei Containern mit der Beschriftung Name und Kontakt.
<form _cs="Profile (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Profile" name="profile" namespace="nms" xtkschema="xtk:form">
<container type="iconbox">
<container img="ncm:general.png" label="General">
<container type="notebook">
<container label="Name">
<input xpath="@firstName"/>
<input xpath="@lastName"/>
</container>
<container label="Contact">
<input xpath="@email"/>
</container>
</container>
</container>
<container img="ncm:detail.png" label="Details">
<input xpath="@birthDate"/>
</container>
</container>
</form>
Daher wird die Variable Allgemein -Seite des äußeren Formulars zeigt die Name und Kontakt Registerkarten.
Um ein Formular in einem anderen Formular zu verschachteln, fügen Sie eine <container>
-Element und legen Sie die type
dem Formulartyp zuordnen. Für Formulare der obersten Ebene können Sie den Formulartyp in einem äußeren Container oder im <form>
-Element.
Beispiel
Dieses Beispiel zeigt ein komplexes Formular:
-
Das Formular der obersten Ebene ist ein Iconbox-Formular. Dieses Formular umfasst zwei Behälter mit der Bezeichnung Allgemein und Details.
Daher zeigt das äußere Formular die Allgemein und Details Seiten auf der obersten Ebene. Um auf diese Seiten zuzugreifen, klicken Benutzer auf die Symbole links im Formular.
-
Das Teilformular ist ein Notebook-Formular, das innerhalb der Allgemein Container. Das Teilformular besteht aus zwei Containern mit der Beschriftung Name und Kontakt.
<form _cs="Profile (nms)" entitySchema="xtk:form" img="xtk:form.png" label="Profile" name="profile" namespace="nms" xtkschema="xtk:form">
<container type="iconbox">
<container img="ncm:general.png" label="General">
<container type="notebook">
<container label="Name">
<input xpath="@firstName"/>
<input xpath="@lastName"/>
</container>
<container label="Contact">
<input xpath="@email"/>
</container>
</container>
</container>
<container img="ncm:detail.png" label="Details">
<input xpath="@birthDate"/>
</container>
</container>
</form>
Daher wird die Variable Allgemein -Seite des äußeren Formulars zeigt die Name und Kontakt Registerkarten.
Fabrikeingabeformular ändern modify-factory-form
Gehen Sie wie folgt vor, um ein Factory-Formular zu ändern:
-
Ändern Sie das Factory-Eingabeformular:
- Wählen Sie im Menü Administration > Konfiguration > Formulare.
- Wählen Sie ein Formular aus und ändern Sie es.
Sie können Factory-Datenschemata erweitern, Sie können jedoch keine Factory-Eingabeformulare erweitern. Es wird empfohlen, werksmäßige Eingabeformulare direkt zu ändern, ohne sie neu zu erstellen. Bei Softwareaktualisierungen werden Ihre Änderungen in den Werkseingangsformularen mit den Upgrades zusammengeführt. Wenn die automatische Zusammenführung fehlschlägt, können Sie die Konflikte lösen. Weitere Informationen
Wenn Sie beispielsweise ein Factory-Schema mit einem zusätzlichen Feld erweitern, können Sie dieses Feld zum zugehörigen Factory-Formular hinzufügen.
Formulare überprüfen validate-forms
Sie können Überprüfungssteuerelemente in Formulare aufnehmen.
Schreibgeschützten Zugriff auf Felder gewähren
Verwenden Sie die readOnly="true"
-Attribut. Beispielsweise können Sie den Primärschlüssel eines Datensatzes anzeigen, jedoch mit schreibgeschütztem Zugriff. Weitere Informationen
In diesem Beispiel wird der Primärschlüssel (iRecipientId
) der nms:recipient
Schema wird in schreibgeschütztem Zugriff angezeigt:
<value xpath="@iRecipientId" readOnly="true"/>
Pflichtfelder aktivieren
Sie können obligatorische Informationen überprüfen:
- Verwenden Sie die
required="true"
-Attribut für die erforderlichen Felder. - Verwenden Sie die
<leave>
-Knoten, um diese Felder zu überprüfen und Fehlermeldungen anzuzeigen.
In diesem Beispiel ist die E-Mail-Adresse erforderlich und es wird eine Fehlermeldung angezeigt, wenn der Benutzer diese Informationen nicht angegeben hat:
<input xpath="@email" required="true"/>
<leave>
<check expr="@email!=''">
<error>The email address is required.</error>
</check>
</leave>
Mehr dazu Ausdrucksfelder und Formularkontext.
Werte überprüfen
Sie können JavaScript-SOAP-Aufrufe verwenden, um Formulardaten aus der Konsole zu überprüfen. Verwenden Sie diese Aufrufe zur komplexen Validierung, um beispielsweise einen Wert mit einer Liste zulässiger Werte zu vergleichen. Weitere Informationen
-
Erstellen Sie eine Validierungsfunktion in einer JS-Datei.
Beispiel:
code language-js function nms_recipient_checkValue(value) { logInfo("checking value " + value) if (…) { logError("Value " + value + " is not valid") } return 1 }
In diesem Beispiel erhält die Funktion den Namen
checkValue
. Mit dieser Funktion wird dierecipient
Datentyp in dernms
Namespace. Der Wert, der überprüft wird, wird protokolliert. Wenn der Wert nicht gültig ist, wird eine Fehlermeldung protokolliert. Wenn der Wert gültig ist, wird der Wert 1 zurückgegeben.Sie können den zurückgegebenen Wert verwenden, um das Formular zu ändern.
-
Fügen Sie im Formular die
<soapCall>
-Element zu<leave>
-Element.In diesem Beispiel wird ein SOAP-Aufruf verwendet, um die
@valueToCheck
Zeichenfolge:code language-xml <form name="recipient" (…)> (…) <leave> <soapCall name="checkValue" service="nms:recipient"> <param exprIn="@valueToCheck" type="string"/> </soapCall> </leave> </form>
In diesem Beispiel wird die
checkValue
undnms:recipient
-Dienst wird verwendet:- Der Dienst ist der Namespace und der Datentyp.
- Die Methode ist der Funktionsname. Beim Namen wird zwischen Groß- und Kleinschreibung unterschieden.
Der Aufruf wird synchron ausgeführt.
Alle Ausnahmen werden angezeigt. Wenn Sie die
<leave>
-Element verwenden, können Benutzer das Formular erst dann speichern, wenn die eingegebenen Informationen validiert wurden.
Dieses Beispiel zeigt, wie Sie Dienstaufrufe in Formularen durchführen können:
<enter>
<soapCall name="client" service="c4:ybClient">
<param exprIn="@id" type="string"/>
<param type="boolean" xpathOut="/tmp/@count"/>
</soapCall>
</enter>
In diesem Beispiel ist die Eingabe eine ID, die ein Primärschlüssel ist. Wenn Benutzer das Formular für diese ID ausfüllen, wird ein SOAP-Aufruf mit dieser ID als Eingabeparameter durchgeführt. Die Ausgabe ist ein boolescher Wert, der in dieses Feld geschrieben wird: /tmp/@count
. Sie können diesen booleschen Wert innerhalb des Formulars verwenden. Mehr dazu Formularkontext.