Bereich "Felder"
Im Bereich Felder findet die Definition der Maskenfelder statt. Über die Auswahlliste auf der linken Seite können neue Felder hinzugefügt und vorhandene Felder gelöscht werden. Die Anzeigereihenfolge der Felder in der Maske entspricht der Reihenfolge der Felder in dieser Liste und kann per Drag-and-Drop nachträglich angepasst werden. Auf der rechten Seiten werden die Eigenschaften des aktuell ausgewählten Feldes angezeigt.
Über einen Klick auf den Button
können alle Felder eines Feldkatalogs aus einer Szenariokonfiguration als Vorbelegung importiert werden. Über einen Klick auf den Button
wird eine Kopie des aktuell aktiven Feldes inklusive aller Konfigurationseigenschaften erstellt.
![]() |
Basiseigenschaften
Feld | Beschreibung |
|---|---|
Name | technischer Name des Feldes Der Name muss zwingend angegeben werden und innerhalb des Maske eindeutig sein. Der Feldname wird in der zugehörigen Szenariokonfiguration verwendet, um zu definieren, welche Feldinhalte aus der Maske übernommen werden. |
Anzeigename | Anzeigename des Feldes |
Tooltip-Text | ergänzender Beschreibungstext des Feldes in Form eines Tooltips |
Darstellung
Feld | Beschreibung |
|---|---|
Sichtbar | Legt fest, ob das Feld in der Maske angezeigt oder ausgeblendet wird. |
Versteckt | Legt fest, ob das Feld in der Maske versteckt wird. Ein verstecktes Feld wird in der Maske nicht angezeigt. Stattdessen wird in der Maske ein leerer Bereich für die Felder reserviert. |
Mehrzeilig | Legt fest, ob in das Feld mehrzeilige Inhalte eingegeben werden sollen. Der Benutzer kann bei Bedarf ein mehrzeiliges Eingabefenster öffnen. |
Checkbox | Legt fest, ob das Feld als Checkbox dargestellt wird. Wenn das Feld als Checkbox dargestellt wird, wird der Datentyp implizit auf "Boolean" gesetzt. |
Aktions-Button | Legt fest, ob neben dem Feld ein Aktions-Button angezeigt wird. Über einen Klick auf diesen Button kann der Benutzer ein Aktionsmakro ausführen. Der Aktions-Button ist auch ohne Zuweisung eines Makros nutzbar. Hierfür muss dem Feld eine Datenbank-Nachschlagsdefinition zugeordnet werden, die implizit beim Verlassen des inhaltlich geänderten Feldes ausgeführt wird. Auch dieser Typ von Datenbankabfrage kann durch den Benutzer durch einen Klick auf den Aktions-Button gestartet werden. |
Button-Text | Beschriftungstext des Aktions-Buttons |
Button-Tooltip | ergänzender Beschreibungstext des Aktions-Buttons in Form eines Tooltips |
Gruppen-Titel | Titel für eine Gruppe von Feldern Zur Gruppierung von Eingabefeldern kann an dem Feld, mit dem eine Gruppe beginnen soll, ein Gruppentitel angegeben werden. Der Gruppentitel wird als Überschriftenzeile in der Maske angezeigt. |
Layout
Feld | Beschreibung |
|---|---|
Neue Zeile | Legt fest, ob jedes Feld in einer neuen Zeile angezeigt wird oder ob ein Feld in derselben Zeile angezeigt wird wie das vorherige Feld. Im Standard wird jedes Feld in einer neuen Zeile angezeigt. |
Label oberhalb | Legt fest, ob der Anzeigename des Feldes oberhalb des Feldes oder links vom Feld dargestellt wird. Im Standard wird der Anzeigename des Feldes oberhalb des Feldes angezeigt. |
Breite | Breite des Feldes in Pixeln Im Standard werden Felder dynamisch auf die Breite des Masken-Fensters skaliert. Wenn mehrere Felder in einer Zeile vorhanden sind, teilen sich die Felder den verfügbaren Platz. Wenn ein Feld eine feste Breite erhalten soll, kann diese hier als Pixelanzahl angegeben werden. Die Angabe umfasst die Gesamtbreite inklusive vorangestelltem Label und angefügtem Aktions-Button. Die Vorgabe einer festen Breite kann z. B. sinnvoll sein, um über mehrere Zeilen hinweg ein bündiges Spalten-Layout bei der Anzeige von mehreren Felder pro Zeile zu erreichen. HinweisEingabefelder und Buttons können nur auf bestimmte Minimalbreiten verkleinert werden. |
Button-Breite | Breite des Aktions-Buttons in Pixeln Im Standard skalieren die Buttons dynamisch mit dem Button-Text. Wenn ein Button eine feste Breite erhalten soll, kann diese hier als Pixelanzahl angegeben werden. |
Label-Breite | Breite der Felder-Labels in Pixeln Im Standard skalieren die Labels, die den Eingabefeldern vorangestellt sind, dynamisch mit dem Text. Wenn ein Feld eine feste Breite erhalten soll, kann diese hier als Pixelanzahl angegeben werden. |
Inhalt
Feld | Beschreibung | |
|---|---|---|
Pflichtfeld | Legt fest, ob die Eingabe eines Feldwertes verpflichtend ist. Wenn die Eingabe verpflichtend ist, erhält der Benutzer bei einem fehlenden Wert eine Fehlermeldung. | |
Schreibschutz | Legt fest, ob das Feld ein Anzeigefeld mit einem fest vorgegebenen oder automatisiert gesetzten Wert ist. Anzeigefelder sind für die manuelle Eingabe von Werten durch den Benutzer gesperrt. Wenn der Schreibschutz aktiviert ist und in Kombination mit einer Auswahlliste verwendet wird, kann der Benutzer einen Listeneintrag auswählen, aber keine freie Eingabe tätigen. | |
Datentyp | Datentyp des Feldes ( Wenn der Datentyp eines Feldes nicht angegeben ist, wird das Feld standardmäßig als Textfeld behandelt. Wenn das Feld als Checkbox gekennzeichnet ist, hat das Feld den Datentyp "Boolean". Die Angabe eines Datentyps ermöglicht die typisierte Übergabe des Feldwertes an das xSuite-Interface-Szenario und eine automatische Syntaxprüfung. Wenn zusätzlich unter Eingabeformat ein Eingabeformat für das Feld definiert ist, wird der Eingabewert entsprechend formatiert. Bei Datumsfeldern wird zudem eine Wertehilfe zur Auswahl eines Datumswertes angezeigt. Wenn zusätzlich eine Uhrzeit auswählbar sein soll, muss ein Eingabeformat angegeben werden, das einen Uhrzeit-Anteil enthält. | |
Eingabeformat | Definition des Eingabeformats eines Zahlenfeldes oder Datumsfeldes Bei Zahlenfeldern wird das Eingabeformat für Formatierung des Eingabewertes genutzt. Zahlenwerte werden bei gesetztem Eingabeformat allerdings nicht typisiert an das xSuite-Interface-Szenario übergeben, sondern als Zeichenfolge. Nur auf diese Weise kann ein festes Format mit beispielsweise einer festen Anzahl aufzufüllender Nachkommastellen erhalten bleiben. Bei Datumsfeldern wird das Eingabeformat zur Beschränkung der Eingabezeichen, zum Parsen des Eingabewertes und für die Formatierung des Eingabewertes genutzt. Datumsfelder werden immer typisiert an das xSuite-Interface-Szenario übergeben, d.h. ein vorgegebenes Format wird nur zur Unterstützung der Benutzereingabe herangezogen. Syntax-Beispiele für das Eingabeformat von Zahlenfeldern:
Syntax-Beispiele für das Eingabeformat von Datumsfeldern:
| |
Standardwert | Initialwert eines Feldes nach dem Öffnen oder Reinitialisieren einer Indexierungsmaske durch den Benutzer Wenn kein Initialwert angegeben ist, ist der Wert standardmäßig leer. Der Initialwert kann dynamisch generiert werden. Außerdem kann der Wert über einen Feldmakroausdruck gewonnen werden oder der zuvor generierte Wert über ein solches Makro nachträglich aufbereitet. Der aktuelle Wert wird im Makro als Feldvariable des jeweiligen Feldes angesprochen. Bei einigen Methoden zum Auslesen von Systemvariablen und Dateieigenschaften, die einen Datumswert zurückliefern, kann als Zusatzparameter ein Formatierungsmuster angegeben werden, wenn das betreffende Feld nicht ohnehin ein Datumsfeld ist und über ein entsprechendes Eingabeformat verfügt.
| |
Listenwert | Liste von Eingabewerten Die Liste von Eingabewerten wird dem Benutzer als Auswahlliste angezeigt. Die Reihenfolge, in der die Werte definiert ist, entspricht der Anzeigereihenfolge. Die Reihenfolge kann im Maskendesigner per Drag-and-Drop verändert werden. | |
Listenwerte aus DB | Auswahl einer Datenbank-Nachschlagdefinition Umfangreichere Listen können zur Laufzeit aus einer externen Datenquelle geladen werden, anstatt diese manuell einzugeben. Dazu kann eine Datenbank-Nachschlagedefinition ausgewählt werden, die zuvor im Bereich "Datenbank" definiert wurde. In diesem Fall müssen keine Feldzuordnungen definiert werden. Aus dem Abfrageergebnis wird implizit der erste Wert einer jeden Zeile ausgelesen. Die Verwendung von Feldvariablen in der Abfragezeichenfolge ist in diesem Kontext nicht zulässig. Eine spezielle Sortierung der Werte muss bei Bedarf direkt in der Abfrage durchgeführt werden. Für mehrsprachige Auswahllisten muss die Datenbank-Abfrage die Werte in der gleichen Syntax zurückliefern, wie diese zur manuellen Definition eines mehrsprachigen Wertes genutzt wird. |
Makros
Im Index Client sind Makrofunktionen ausführbar, die auf unterschiedliche Weise ausgelöst werden und unterschiedlichen Zwecken dienen. Dabei kommt derselbe Makrointerpreter wie im Hauptprogramm zum Einsatz. Als Wertehilfe für Makroausdrücke ist hier der Makro-Editor verfügbar. In einer Indexierungsmaske können nur Feldmakros verwendet, d.h. Funktionen, die einen einzelnen Ergebniswert zurückliefern. Feldvariablen können in diesen Makros in analoger Weise zum Hauptprogramm genutzt werden. Hier beziehen sich die Variablen jedoch auf die Felder der Maske und nicht auf die Felder eines Feldkatalogs.
Hinweis
Im Makro-Editor werden alle Feldmakrofunktionen ungefiltert angeboten, die auch im Hauptprogramm verfügbar sind. In der Praxis sind jedoch nicht alle Funktionen davon sinnvoll nutzbar oder liefern unerwartete Ergebnisse oder eine Fehlermeldung zurück.
Indexierungsmasken auch werden in der Regel unabhängig von konkreten Szenarien definiert, sodass kein Szenariokontext vorliegt. Für die Vorschauansicht im Maskendesigner gilt dies uneingeschränkt. Zur Laufzeit kann eine Maske hingegen durchaus auf das aktive Szenario zugreifen, an das die Maskendaten übergeben werden sollen. Somit können Makros in der Maske bei Bedarf auch Nachschlagelisten und externe Datenquellen referenzieren, die in der Szenariokonfiguration definiert sind. Dabei ist zu beachten, dass eine solche Maske dann in einigen Fällen nicht mehr universell auch für andere Szenarien nutzbar ist.
Feld | Beschreibung |
|---|---|
Makro | Standardvariante eines Makros in einer Indexierungsmaske Das Makro wird nach der Änderung des Feldwertes ausgeführt, d.h. in der Regel beim Verlassen des Feldes. Bei Auswahllisten und Checkboxen ist die Auswahl des Wertes bzw. die Statusänderung der Auslöser für die Ausführung des Makros. Das Makro dient primär dazu, die Eingabe in das Feld inhaltlich anzupassen. Der Ergebniswert der Makroausführung wird daher direkt in das aktuelle Feld geschrieben. Das Makro kann aber auch genutzt werden, um eine individuelle Validierung des Feldinhalts durchzuführen und einen vorhandenen Eingabefehler zu melden. Dafür wird die Makrofunktion SetError() aufgerufen. Diese Makrofunktion ist nicht als Feldmakrofunktion klassifiziert und ist daher im Makro-Editor nicht direkt auswählbar. Stattdessen kann die Funktion manuell eingegeben werden. Ein vollständiger Makroausdruck zur Prüfung eines Feldinhalts kann z. B. wie folgt aussehen: IfElse({Bedingung}, @{Feldname}, SetError("{Fehlertext}"))In der Bedingung wird in der Regel über eine Feldvariable auf den zu prüfenden Feldinhalt zugegriffen, um diesen mit einer Regel zu vergleichen. Wenn die Bedingung nicht erfüllt ist, wird ein Fehler mit einer spezifischen Meldung geworfen. Wenn die Bedingung erfüllt ist, wird der aktuelle Feldinhalt (oder bei Bedarf auch ein modifizierter Feldinhalt) explizit zurückgeliefert. Dies entspricht der Arbeitsweise des Programms, dass der aktuelle Feldwert durch den Ergebniswert der Makroausführung überschrieben wird, der ansonsten ein leerer Wert wäre. |
Aktionsmakro | Makro, das bei einem Klick auf den Aktions-Button ausgeführt wird Die Arbeitsweise des Aktionsmakros ist vergleichbar mit der Arbeitsweise des Standardmakros. Die Ausführung des Aktionsmakros erfolgt jedoch nicht implizit, sondern nur wenn der Benutzer diese explizit startet. |
Eigenschaftsmakro | Makro, das den Inhalt von Maskenfeldern, bestimmte Eigenschaften von Maskenfeldern oder die Maske selbst verändert Ein Eigenschaftsmakro wird nach Änderung eines Feldwertes ausgeführt. Das Eigenschaftsmakro verändert jedoch nicht den aktuellen Feldinhalt, sondern den Inhalt anderer Maskenfelder, bestimmte Eigenschaften dieser Felder oder die Maske selbst. Einem Feld können mehrere Eigenschaftsmakros zugeordnet werden. Die Makros werden in der Reihenfolge ausgeführt, in der diese definiert sind. In der Wertehilfe für ein Eigenschaftsmakro sind maximal 3 Parameter zu definieren:
|

