Öffne View (Formulardesigner)

Aktionen - Kurzfassung

Öffnet eine View, an die Formulardaten, eine Referenz auf die ID einer Entität bzw. eine Suche oder geeignete Sucheinschränkung (s. Einschränkungen) übergeben werden können, und wartet optional auf die Rückgabe eines Datenobjekts bzw. das Schließen der View.

Siehe auch: Öffne View (Aktion)

images/download/attachments/169633796/image-2024-3-13_15-50-27-version-1-modificationdate-1710341427755-api-v2.png

Die Aktion Öffne View (Formulardesigner) öffnet eine View, an die Formulardaten, eine Referenz auf die ID einer Entität bzw. eine Suche oder geeignete Sucheinschränkung (s. Einschränkungen) übergeben werden können, und wartet optional auf die Rückgabe eines Datenobjekts bzw. das Schließen der View.

  • Abhängig vom Typ des Eingabewerts, dem Typ der zu öffnenden View (Detailansicht, Übersicht, Kombinierte Ansicht) und der Parametrierung ergeben sich zahlreiche Varianten für die Nutzung von Öffne View (Aktion), die im Abschnitt "Konfiguration" systematisch erläutert werden.

  • Wenn das Schließen der geöffneten View abgewartet werden und ggf. ein Rückgabewert aus der View verarbeitet werden soll, muss für den Parameter Verhalten nach Schließen ausführen ein Verhalten angegeben werden, das die Folgeprozesse einleitet.

Views sind Erfassungsmasken, Übersichten (inkl. Eigene Übersichten), Portale, Dashboards oder andere vom System bereitgestellte Ansichten (z. B. im Menüpunkt Verwaltung).

HINWEISE

Konfiguration

Die Konfiguration der Aktion Öffne View (Aktion) deckt vielfältige Anwendungsszenarien ab und bietet deshalb zahlreiche Parameter an. Diese werden nachfolgend tabellarisch und gruppiert nach Schwerpunkten vorgestellt.

Auswahl der zu öffnenden View

Die zu öffnende View kann auf zwei unterschiedlichen Wegen adressiert werden:

  1. Wenn für den Parameter View- oder Menüknotenname ein statischer Text angegeben ist, wird nach einer View oder einem Menüknoten mit dem angegeben Namen gesucht. In diesem Fall kann der Eingabewert ($input) für die "Datenzuweisung" (s. unten) an die View genutzt werden (s. rechts oben: "Statische Definition ...").

  2. Ist für den Parameter View- oder Menüknotenname kein Text angegeben, dann wird ein View- oder Menüknotenname als Eingabewert ($input) erwartet. Dann werden die Formulardaten - ggf. unter Berücksichtigung des "Datenfeld"-Parameters - für die Datenzuweisung genutzt (s. rechts unten: "Dynamische Definition ...").

HINWEIS◄ Wenn der View- oder Menüknotenname zur Laufzeit variabel gehandhabt werden soll (z. B. per Berechnen-Verhalten), kommt nur der zweite Weg in Frage. Der Parameter View- oder Menüknotenname selbst interpretiert keine Berechnungsausdrücke.


Eine View wird nur geöffnet, wenn ...

  1. ... die angegebene Zeichenfolge einem existierenden Menüknotennamen oder Viewnamen exakt entspricht, ...

  2. ... für die verwendete Rolle ausreichende Berechtigungen vorliegen und ...

  3. ... - falls anwendbar - zur Laufzeit mindestens eine relevante Konfiguration für den betreffenden Kontext zugeordnet ist (s. Zuordnungskriterien, Firmenfreigaben).

Ob die folgenden Beispielwerte als View- oder Menüknotennamen funktionieren, hängt teilweise zusätzlich davon ab, welche Module von Lobster_pro lizenziert sind:


  • documentation ... öffnet das Handbuch per Menüknotenname


  • documents

    • ... öffnet eine Übersicht für Dokumente per Menüknotenname

  • de.lobster.scm.doc::Document|listDetailsWindow

    • ... öffnet dieselbe Übersicht per Viewname


  • order/orderDetails

    • ... öffnet eine Erfassungsmaske für Bestellungen per Menüknotenname

  • de.lobster.scm.order.bto::Order|detailsWindow

    • ... öffnet dieselbe Übersicht per Viewname


  • Portal$SELECT_PORT

    • ... öffnet ein Portal mit dem internen Namen SELECT_PORT per Viewname


  • dashboard$KPI2020

    • ... öffnet ein Dashboard mit dem internen Namen KPI2020 per Viewname

Statische Definition der zu öffnenden View

Der Viewname für die Erfassungsmaske für Benutzer ist als statischer Text definiert:

  • de.lobster.scm.base.security.user::User|detailsWindow

images/download/attachments/169633796/image-2024-3-14_14-55-9-version-1-modificationdate-1710424509920-api-v2.png


Dynamische Definition der zu öffnenden View

Der Viewname wird per Berechnungsausdruck in einem Berechnen-Verhalten so aufgebaut, dass Öffne View (Aktion) abhängig vom Wert eines Checkbox-Elements (hier: $el(11)) eine Erfassungsmaske für Benutzer oder für Gastbenutzer öffnet. Der "berechnete" Textabschnitt ist in den folgenden Viewnamen hervorgehoben:

  • de.lobster.scm.base.security.user::User|detailsWindow

  • de.lobster.scm.base.security.guest::GuestUser|detailsWindow

images/download/attachments/169633796/image-2024-3-14_15-11-17-version-1-modificationdate-1710425478057-api-v2.png

WICHTIG◄ Der Eingabewert wird nur als View- oder Menüknotenname berücksichtigt, wenn für den Parameter selbst kein statischer Text vorliegt.


Wenn eine View nicht geöffnet werden kann, tritt kein Fehler (Process Exception) auf, sodass nachfolgende Aktionen und Verhalten ausgeführt werden. Allerdings gilt das nicht für einen optional per Verhalten bei Schließen ausführen anzustoßenden Folgeprozess. Dieser entfällt, wenn keine View geöffnet wird, denn dann wir auch keine View geschlossen.

Wie kann man den Viewnamen und den Menüknotennamen ermitteln?

Viewname und Menüknotenname einer bereits geöffneten View können per Klick auf das ?-Symbol rechts oben im Fenstertitel ermittelt werden, wenn gleichzeitig die Tastenkombination STRG+ALT (bzw. CMD+ALT für Mac) gehalten wird. Im Kontext einer Erfassungsmaske für Bestellungen ergibt dies folgende Meldung:

images/download/attachments/169633796/image-2024-3-14_17-24-0-version-1-modificationdate-1710433440699-api-v2.png

(Textmarkierung nachträglich hinzugefügt)

Die erste markierte Zeile definiert den Viewnamen einer Detailansicht (detailsWindow), adressiert also eine Erfassungsmaske für Bestellungen.

WICHTIG◄ Zum Öffnen einer View darf nicht die Kurzschreibweise aus der Zeile oberhalb verwendet werden, in der anstelle des vollständigen Klassennamens das zugehörige Namespace-Präfix erscheint. Auch die Kontexteinträge mit dem Wildcard-Symbol * sind nicht geeignet, um die View zu adressieren.

Die zweite markierte Zeile definiert den Menüknotennamen (order/orderDetails) für dieselbe View, der dem Menüpfad im Hauptmenü ("Bestellungen/Bestelldetails") entspricht.

HINWEIS◄ Der Menüknotennamen erscheint hier nicht, wenn eine View nicht über die Hauptmenüleiste geöffnet wurde, sondern z. B. per Öffne View (Formulardesigner) oder per Klick auf eine Funktion im Ribbon ("Neu" oder "Bearbeiten") in einer Übersicht. Dann besteht auch kein Zugriff auf Hilfethemen (s. Online Hilfen), die mit dem Menüknotennamen verknüpft sind.

Datenzuweisung für die zu öffnende View

Während im Kontext einer Öffne View (Aktion)-Ereignisaktion die ggf. zuzuweisenden "Formulardaten" für die zu öffnende View direkt über eine Wert-Konfiguration bereitgestellt werden können, greift im Kontext der Öffne View (Formulardesigner)-Aktion abhängig von der Methode zur Auswahl der zu öffnenden View (s. oben) eine der nachfolgenden Alternativen für die Datenzuweisung:

  • Bei einer statischen Definition der View-Auswahl per Parameter View- oder Menüknotenname stützt sich die Datenzuweisung auf den Eingabewert ($input) für die Aktion, der unter Berücksichtigung des optionalen Datenfeld-Parameters ausgewertet wird. Sofern dieser einen für den Eingabewert ($input) auswertbaren Datenfeldpfad definiert, wird dieser für die Datenzuweisung berücksichtigt. Ist kein Datenfeld spezifiziert, betrifft dies den kompletten Eingabewert ($input). Dieses Schema kann als Standard-Anwendungsfall betrachtet werden.

  • Die dynamische Definition der View-Auswahl erwartet den Namen der zu öffnenden View als Eingabewert ($input) für die Aktion. Die Datenzuweisung stützt sich dann ausnahmsweise auf den Parameter Datenfeld, der dann einen innerhalb der kompletten Formulardaten auswertbaren Datenfeldpfad angeben muss, damit eine Datenzuweisung überhaupt stattfinden kann. Ist kein Datenfeld spezifiziert, berücksichtigt die Datenzuweisung also nicht etwa die kompletten Formulardaten, sondern es findet keine Datenzuweisung statt.

Der Effekt einer Datenzuweisung hängt von mehreren Faktoren ab:

  • Welcher View-Typ soll geöffnet werden?

    • Eine Erfassungsmaske (detailsWindow) bildet die Detaildaten einer einzelnen Entität auf ein exklusiv für den Entitätstyp anwendbares Formular ab.

    • Eine Übersicht (listSearchWindow) ermöglicht den Zugriff auf Daten mehrerer Entitäten desselben Entitätstyp, indem es das Ergebnis einer Tupel-Suche auf ein Datengrid abbildet.

    • Eine Kombinierte Ansicht (listDetailsWindow) kombiniert Erfassungsmaske und Übersicht (mit Datengrid) für denselben Entitätstyp in derselben View.

    • Portale und Dashboards sind nicht an einen bestimmten Entitätstyp gebunden. Ungebundene Views werden typischerweise per Öffne Portal (o. ä.) geöffnet.

    • Sofern die Datenzuweisung eine Entität des Entitätstyps bereitstellt, mit dem die zu öffnende View (Erfassungsmaske, Übersicht, Kombinierte Ansicht) verknüpft ist, werden diese Daten abhängig vom Typ der zu öffnenden View wie folgt verarbeitet:

      • Eine Erfassungsmaske (detailsWindow) wird ggf. geöffnet (s. Nur eine Instanz) und lädt die zugewiesenen Daten ins Formular.

      • Eine Übersicht (listSearchWindow) wird ggf. geöffnet (s. Nur eine Instanz) und zusätzlich erscheint als eigenständige View die für den Kontext anwendbare Erfassungsmaske mit den zugewiesenen Daten als Formulardaten. Das Ergebnis ähnelt dem Zustand, den ein Benutzer durch das Öffnen der Erfassungsmaske aus der Übersicht erreicht (z. B. per "Neu", "Bearbeiten" oder Doppelklick). Allerdings erscheint eine existierende Entität, auf die sich die Datenzuweisung bezieht, in der Übersicht nicht selektiert, sofern sie aufgrund von definierten Einschränkungen, Filtern und Paging dort überhaupt angezeigt wird.

        WICHTIG◄ Wenn volatile Daten für eine existierende Entität, direkt in eine Erfassungsmaske geladen werden, können diese - ggf. unter Berücksichtigung von in der Maske vorgenommenen Änderungen - nur dann erfolgreich gespeichert werden, wenn serverseitig kein neuerer Änderungsstand für die Entität registriert ist als der aus der Datenzuweisung. Im Konfliktfall tritt beim "Speichern" ein Fehler auf und der veraltete Stand mit den ungespeicherten Änderungen aus der Maske kann nur verworfen werden.

        HINWEIS◄ Parameter der Öffne View (Aktion), die das Anzeigeverhalten steuern, betreffen in dieser Konstellation nur die Übersicht und nicht die als "sekundäre" View geöffnete Erfassungsmaske. In der per Standard anwendbaren View-Anordnung mit nur einem View Slot verdeckt die Erfassungsmaske dabei die Übersicht. Außerdem ist das Warten auf eine Datenrückgabe aus der indirekt geöffneten Erfassungsmaske bzw. das Schließen dieser View ohne Wertrückgabe nicht vorgesehen.

      • Eine Kombinierte Ansicht (listDetailsWindow) wird ggf. geöffnet (s. Nur eine Instanz) und lädt die zugewiesenen Daten in den Detailbereich, also die eingebettete Erfassungsmaske. Sofern sich die Datenzuweisung auf eine bestehende Entität bezieht, die aufgrund der ggf. definierten Einschränkung (s. Eigene Übersichten) in der Übersicht erscheinen kann, wird diese Entität auch dann selektiert, wenn sie aufgrund von Paging oder anwendbaren Filtern nicht sichtbar erscheint.

  • Welchen Datentyp liefert die Datenzuweisung?

    • Sofern die Datenzuweisung das Datenobjekt einer Suche (Search-Objekt) oder eine "Sucheinschränkung" (ISearchRestriction, s. Einschränkungen) bereitstellt, wird diese abhängig vom Typ der zu öffnenden View wie folgt verarbeitet:

        • Eine Erfassungsmaske (detailsWindow) wird ggf. geöffnet, erscheint aber leer, weil einer Erfassungsmaske keine Einschränkung zugeordnet werden kann.

        • Eine Übersicht (listSearchWindow) oder eine Kombinierte Ansicht (listDetailsWindow) wird ggf. geöffnet (s. Nur eine Instanz), wobei die zugewiesene Suche oder "Sucheinschränkung" als Einschränkung für die Liste verwendet wird. Die View listet dann nur Entitäten auf, die die Suchkriterien aus der Zuweisung erfüllen. Dieser beim Öffnen zugewiesene "Filter" kann auch nicht entfernt werden, indem per Ribbon der Befehl "Liste / Zurücksetzen" ausgeführt wird. Wird eine Eigene Übersicht (s. Eigene Übersichten) geöffnet, deren Definition bereits eine "Einschränkung" vorsieht, dann sind zwei Fälle zu unterscheiden:

        • Aus einer zugewiesenen Suche wird eine Sub-Suche erzeugt, die als Einschränkung für die geöffnete Übersicht wirkt. Die in der Eigenen Übersicht definierte "Einschränkung" wird per UND-Verknüpfung (s. Such-Verknüpfung ) mit dieser Sub-Suche kombiniert.

        • Eine zugewiesene "Sucheinschränkung" wird per UND-Verknüpfung direkt mit der "Einschränkung" der Eigenen Übersicht kombiniert.


          WICHTIG◄ Im Kontext einer der Suche können Joins verwendet werden, um die Suche direkt (als INNER JOIN) oder über Bedingungen, die sich über Projektionen auf Joins beziehen, da diese in die erzeugte Sub-Suche-Einschränkung übernommen werden können. Wird stattdessen eine "Sucheinschränkung" bereitgestellt, ist die Verwendung von Joins potenziell heikel, wenn diese nicht über eine Verkettete Projektion abgebildet werden. Sofern die "Sucheinschränkung" Projektionen verwendet, die sich auf einen "Join Alias" beziehen, kann die Einschränkung zur Laufzeit nur fehlerfrei funktionieren, wenn die beim Öffnen der View über Zuordnungskriterien dynamisch zugewiesene Datengrid-Definition in jedem Fall einen "passenden" Join mit diesem "Join Alias" beinhaltet. Ist der Join nicht vorhanden, tritt beim Öffnen eine Datenbank-Fehlermeldung auf und die Übersicht wird ohne Daten geöffnet.

Die Beschreibung für die folgenden Fälle beruht auf der Annahme, dass die Option Laden erzwingen abgewählt ist (Standard).

images/download/attachments/169633796/image-2024-3-20_18-7-47-version-1-modificationdate-1710954467876-api-v2.png

    • Sofern die Datenzuweisung ein anderweitiges komplexes Datenobjekt enthält (weder eine "passende" Entität noch eine Suche oder Sucheinschränkung), wird versucht aus diesem eine Referenz auf die ID einer Entität des Typs zu gewinnen, mit dem die zu öffnende View verknüpft ist:

      • Falls im Parameter Datenfeld ein Datenfeldname angegeben ist, wird dessen Rückgabewert wie im nächsten Absatz beschrieben verarbeitet.

      • Ohne Angabe für den Parameter Datenfeld wird der Rückgabewert für das Feld id wie im nächsten Absatz beschrieben verarbeitet.

    • Sofern die Datenzuweisung einen simplen Wert direkt bereitstellt oder, wie im vorherigen Absatz beschrieben, ein solcher Wert aus einem komplexen Datenobjekt gewonnen werden kann, wird dieser als Referenz auf die ID einer Entität des Typs interpretiert:

      • Sofern es sich nicht bereits um einen Long-Wert handelt, wird eine Typumwandlung zu Long versucht.

      • Sofern die zu öffnende View überhaupt mit einem Entitätstyp verknüpft ist, wird nach einer Entität mit der angegebenen bzw. ermittelten "ID" (id) gesucht. Danach greift folgende Fallunterscheidung abhängig vom Typ der View:

        • Eine Erfassungsmaske (detailsWindow) wird ggf. geöffnet (s. Nur eine Instanz) und lädt die Daten der referenzierten Entität ins Formular.

        • Eine Übersicht (listSearchWindow) wird ggf. geöffnet (s. Nur eine Instanz) und zusätzlich erscheint als eigenständige View die für den Kontext anwendbare Erfassungsmaske mit den Daten der referenzierten Entität als Formulardaten. Das Ergebnis entspricht dem Zustand, den ein Benutzer durch das Öffnen der Erfassungsmaske aus der Übersicht erreicht (z. B. per "Neu", "Bearbeiten" oder Doppelklick). Allerdings erscheint die referenzierte Entität, auf die sich die Datenzuweisung bezieht, in der Übersicht nicht selektiert, sofern sie aufgrund von definierten Einschränkungen, Filtern und Paging dort überhaupt angezeigt wird.

          HINWEIS◄ Parameter der Öffne View (Aktion), die das Anzeigeverhalten steuern, betreffen in dieser Konstellation nur die Übersicht und nicht die als "sekundäre" View geöffnete Erfassungsmaske. In der per Standard anwendbaren View-Anordnung mit nur einem View Slot verdeckt die Erfassungsmaske dabei die Übersicht. Außerdem ist das Warten auf eine Datenrückgabe aus der indirekt geöffneten Erfassungsmaske bzw. das Schließen dieser View ohne Wertrückgabe nicht vorgesehen.

        • Eine Kombinierte Ansicht (listDetailsWindow) wird ggf. geöffnet (s. Nur eine Instanz) und lädt die Daten der referenzierten Entität in den Detailbereich, also die eingebettete Erfassungsmaske. Sofern die refernzierte Entität aufgrund der ggf. definierten Einschränkung (s. Eigene Übersichten) in der Übersicht erscheinen kann, wird diese Entität auch dann selektiert, wenn sie aufgrund von Paging oder anwendbaren Filtern nicht sichtbar erscheint.

Wird die Option Laden erzwingen ausgewählt, dann werden sowohl komplexe Datenobjekte als auch simple Werte direkt an die geöffnete View zugewiesen, sofern es sich nicht um eine Suche oder "Sucheinschränkung" (s. o.) handelt.

images/download/attachments/169633796/image-2024-3-20_18-21-14-version-1-modificationdate-1710955274113-api-v2.png

Das Auswählen der Option Laden erzwingen ermöglicht so etwa das Zuweisen eines Client-Objekts (als Beispiel für ein komplexes Datenobjekt) an ein Portal.

Ist Laden erzwingen nicht ausgewählt, wird in dieser Konstellation sonst versucht, aus dem komplexen Datenobjekt das designierte Datenfeld (bzw. das Standardfeld id) zu lesen. Sofern dieser Zugriff einen Rückgabewert vom Typ Long liefert oder in einen Long-Wert umgewandelt werden kann, wird dieser Wert dem id-Feld in einem eigens erzeugten Client-Objekt zugewiesen, das an die View (hier: Portal) übergeben wird.

Datenrückgabe aus der View (optional)

WICHTIG◄ Die Ereignisaktion Öffne View (Aktion) kann verwendet werden, um beim Öffnen einer View die Ereignisbehandlung im Aufrufkontext anzuhalten, bis die geöffnete View geschlossen wird oder eine maximale "Wartezeit" abläuft. Die Öffne View (Formulardesigner)-Aktion unterstützt diese Vorgehensweise nicht. Die Ausführung nachfolgender Aktionen innerhalb des aufrufenden Verhaltens kann nicht aufgehalten werden. Stattdessen kann ein Verhalten angegeben werden, das beim Schließen der geöffneten View ausgeführt wird. Eine maximale "Wartezeit" ist nicht vorgesehen.


Der optionale Parameter Verhalten nach Schließen ausführen benennt das Verhalten, das beim Schließen der geöffneten View ausgeführt werden soll. Per Standard ist kein Verhalten ausgewählt.

Eine Datenrückgabe aus der geöffneten View kann nur die Aktion Schließen anfordern veranlassen, auf die nur im Kontext eines Verhaltens in einem Formular Zugriff besteht. Die Datenrückgabe kann also nur aus einer View erfolgen, die ein Formular ist (Erfassungmaske, Portal, Dashboard) oder beinhaltet (Kombinierte Ansicht). Aus einer einfachen Übersicht ohne Detailbereich kann kein Rückgabewert übergeben werden. Trotzdem kann ein Verhalten ausgewählt werden, das nach dem Schließen der Übersicht ausgeführt wird.

images/download/attachments/169633796/image-2024-3-20_14-40-22-version-1-modificationdate-1710942022841-api-v2.png

Per Standard listet das Dropdown für den Parameter Verhalten nach Schließen ausführen nur die Verhaltensnamen auf, die für das Formularelement mit dem aufrufenden Verhalten definiert sind.

Um ein Verhalten für ein anderes Formularelement innerhalb desselben Formulars auswählen und ausführen zu können, muss vorher das betreffende Element als Zielelement für die Aktion Öffne View (Formulardesigner) verknüpft werden. Per Standard ist Kein Zielement verlinkt. Die Zielelement-Verknüpfung ist - wie üblich - an erster Stelle unter den Eigenschaften der Aktion zu finden. Der Bearbeitungsmodus für die Verknüpfung wird per Mausklick aktiviert.


images/download/attachments/169633796/image-2024-3-20_15-14-36-version-1-modificationdate-1710944076115-api-v2.png
images/download/attachments/169633796/image-2024-3-20_15-16-25-version-1-modificationdate-1710944185805-api-v2.png

Anzeigeverhalten der View

HINWEIS◄ Die Option Laden erzwingen betrifft nicht das "Anzeigeverhalten der View" sondern die "Datenzuweisung für die zu öffnende View" (s. oben).

Wenn die Option Modal nicht ausgewählt ist (Standard), soll soll die View als eigenständige View geöffnet werden. Dann entscheidet die Option Nur eine Instanz , ob die View auch dann geöffnet wird, wenn schon (mindestens) eine Instanz der View nicht-modal - also als eigenständige View - geöffnet ist.

Ist die Option Modal ausgewählt, wird die View beim Öffnen innerhalb der aktuellen View angezeigt. Die Option Nur eine Instanz wird dann nicht beachtet. In der Konfiguration erscheinen außerdem zusätzliche Optionen:

  • Die Option Volle Größe entscheidet, ob eine modal geöffnete View die aktuelle View als "Vollbild" ("flächendeckend") ausfüllen oder als Dialogfenster zentriert innerhalb der aktuellen View erscheinen soll.

    • Ist diese Option abgewählt (Standard), werden zusätzliche Parameter eingeblendet, die die Dimensionierung des Dialogfensters betreffen (Breite, Höhe, Min. Breite und Min. Höhe). Diesen können optional ganzzahlige Werte (Einheit: Pixel) zugewiesen werden.

    • Das Auswahlfeld für Größe veränderbar betrifft ebenfalls nur für die Darstellung als Dialogfenster (also: Vollbild abgewählt). Die gewählte Option steuert, ob die Höhe und/oder Breite des Dialogs zur Laufzeit interaktiv geändert werden kann oder nicht.

  • Die Option Schließbar ist per Standard ausgewählt. Sie kann abgewählt werden, um zu verhindern, dass die Titelleiste des modalen Fensters das X-Symbol zum Schließen einer modal angezeigten View anzeigt. Dies ist empfehlenswert, wenn eine Datenrückgabe aus der View (s. o.) erwartet wird. Ein Klick auf das X-Symbol würde anderenfalls die modale View schließen, ohne dass das Verhalten mit der Aktion Schließen anfordern ausgeführt wird, das der einzige Weg zur Bereitstellung eines Rückgabeobjekts ist.

    • Die Option Zeige "Zurück Button" ist nur relevant und sichtbar, solange die Option Schließbar ausgewählt ist (Standard). Sie kann dann abweichend vom Standard ausgewählt werden, damit in der geöffneten View ein Ribbon Button Zurück (per Standard ganz links in der Hauptkategorie Allgemein) erscheint. Ein Klick auf Zurück bewirkt das Schließen der modal geöffneten View, genau wie ein Klick auf das X-Symbol rechts oben im Titel der View. In beiden Fällen gilt "Kein Wert" ($null) als Rückgabewert.

images/download/attachments/169633796/image-2024-3-20_16-11-51-version-1-modificationdate-1710947511011-api-v2.png Initial sind nur drei Optionen sichtbar.


images/download/attachments/169633796/image-2024-3-20_16-6-12-version-1-modificationdate-1710947172686-api-v2.png Mit "Modal" ausgewählt, erscheinen weitere Parameter.


images/download/attachments/169633796/image-2024-3-20_17-40-26-version-1-modificationdate-1710952826917-api-v2.png Mit "Volle Größe", fallen einige Parameter wieder weg.


images/download/attachments/169633796/image-2024-3-20_17-41-19-version-1-modificationdate-1710952879751-api-v2.png Ohne "Schließbar" entfällt "Zurück Button".

Beispiele

Einfacher Anwendungsfall: Erfassungsmaske für "Besitzer"-Firmenkonto öffnen

In einer Erfassungsmaske für eine beliebige Entität (hier: "Bestellung") sollen beim Anklicken des schreibgeschützt angezeigten Auswahlfeld/Combobox-Elements für den "Besitzer" (ownerId) eine Erfassungsmaske mit den Detaildaten des betreffenden Firmenkontos geöffnet werden. Die Firmenkonto-Maske soll innerhalb der aufrufenden View modal als Vollbild mit "Zurück"-Button geöffnet werden.

Konfiguration:

Der Screenshot rechts zeigt die Editor-Ansicht einer Erfassungsmaske für Bestellungen, in der das Auswahlfeld/Combobox-Element für das Feld "Besitzer" (ownerId) selektiert ist.

In der Eigenschaften-Leiste (rechts) ist der "Verhalten"-Tab ausgewählt, der ein Verhalten mit dem Verhaltensnamen "click" zeigt:

  • Als Auslöser ist Angeklickt ausgewählt.

  • Als Verhalten ist die Verhaltensweise Berechnen ausgewählt:

    • Der Berechnungsausdruck wird hier verwendet, um die interne ID des als "Besitzer" ausgewählten Firmenkontos zu ermitteln. Dieser Wert wird durch den Ausdruck $el(44) als Rückgabewert des Auswahlfeld/Combobox-Elements gelesen.

    • Aktionen bei "wahr" werden nur ausgeführt, wenn der Prüfungsausdruck "wahr" ($true) liefert. Die Bedingung $cmp($input,>,0,i) stellt hier sicher, dass die Firmenkonto-Maske nur geöffnet wird, wenn das ownerId-Feld einen positiven Wert enthält. Das ist der Fall, wenn ein Firmenkonto als "Besitzer" zugeordnet ist. Allerdings prüft die Bedingung nicht, ob das über die ownerId referenzierte Konto überhaupt existiert.

  • Die unter Aktionen bei "wahr" konfigurierte Aktion Öffne View (Formulardesigner) adressiert im Parameter View- oder Menüknotenname die Standard-Erfassungsmaske für Firmenkonten über deren Viewnamen:
    de.lobster.scm.base.company::CompanyAccount|detailsWindow

    • Da der Berechnungsausdruck einen ganzzahligen Wert bereitstellt, ist keine Angabe für den Parameter Datenfeld erforderlich.

    • Die Optionen Modal, Volle Größe, Schließbar und Zeige "Zurück Button" sind ausgewählt, damit die Erfassungsmaske für das "Firmenkonto" als untergeordnetes Fenster innerhalb der aufrufenden View (hier: "Bestelldetails") erscheint:

      images/download/attachments/169633796/image-2024-4-3_13-58-9-version-1-modificationdate-1712145489476-api-v2.png

images/download/attachments/169633796/image-2024-4-3_13-31-8-version-1-modificationdate-1712143868840-api-v2.png

ANMERKUNG◄ Per Standard erfolgt die Pflege von Firmenkonten über eine "Kombinierte Ansicht", in der die Standard-Erfasssungsmaske in Verbindung mit einem Datengrid verwendet wird. Ein eigener Menüpunkt zum Öffnen einer Erfassungsmaske für Firmenkonten erscheint daher nicht. Über den Viewnamen de.lobster.scm.base.company::CompanyAccount|detailsWindow kann eine reine Erfassungsmaske trotzdem direkt geöffnet werden.

Komplexerer Anwendungsfall: Übersicht mit direkt untergeordneten Firmen öffnen

In einer Erfassungsmaske für Firmen soll ein Button angeboten werden, über den "Direkt untergeordnete Firmen" als Liste in einer modal geöffneten Übersicht angezeigt werden können.

Konfiguration:

Für den Button "Direkt untergeordnete Firmen" ist mit dem Verhaltensnamen "childCompanies" das folgende Verhalten konfiguriert:

  • Der Auslöser Angeklickt reagiert, wenn der Button betätigt wird.

  • Als Verhalten wird hier ein Client Workflow ausgelöst, dessen Aufgabe es ist, im Ergebnisausdruck - {restriction} verweist auf eine Variable - eine geeignete "Such-Einschränkung" als Eingabewert ($input) für die Aktion Öffne View (Formulardesigner) bereitzustellen:

    • Die "direkt untergeordneten Firmen" können über eine Einfache Feld-Einschränkung identifiziert werden, die eine Übereinstimmung zwischen dem Feld "ID" (id) der in der Erfassungsmaske angezeigten Firma und dem Listenfeld "Übergeordnete Firmen" (parentCompanies) der zu prüfenden Firma verlangt.

  • Die unter Aktionen bei "wahr" konfigurierte Aktion Öffne View (Formulardesigner) bezieht sich hier auf den Viewnamen für eine Firmenüberischt ohne Detailbereich:
    de.lobster.scm.base.company::CompanyAccount|llistSearchWindow

  • Die Optionen Modal, Volle Größe, Schließbar und Zeige "Zurück Button" sind ausgewählt, damit die "Firmenübersicht" als untergeordnetes Fenster innerhalb der aufrufenden Kombinierten Ansicht (hier: "Firmenübersicht") erscheint:

images/download/attachments/169633796/image-2024-4-3_14-54-25-version-1-modificationdate-1712148865320-api-v2.png


images/download/attachments/169633796/image-2024-4-3_14-29-1-version-1-modificationdate-1712147341027-api-v2.png

Der Screenshot rechts zeigt die Konfiguration für den Client Workflow:

  • Die Prüfende Regel verwendet eine Typprüfung, um für die weitere Konfiguration den Kontext des Entitätstyps "Firmenkonto" zu definieren. Innerhalb der UND-Verknüpfung prüft eine Objekt-Feld-Regel mit dem Vergleiche mit (Formulardesigner)-Vergleichstyp, ob das Feld "ID" (id) einen Wert > 0 enthält.

  • Als Aktion bei bestandener Regel wird eine Setze Wert-Ereignisaktion ausgeführt, die über den Erzeuge Instanz mit Werten eine Einfache Feld-Einschränkung erzeugt und mit den folgenden Werten der Variablen restriction zuweist:

    • Dem Feld "Projektion" (projection) wird der Name des auszuwertenden Felds parentCompanies als statischer Text zugewiesen.

    • Als "Vergleichstyp" (compareType) wird der String "==" (Übereinstimmung) zugewiesen.

    • Dem Feld "Long-Wert" (longValue) wird der Wert aus dem Objekt-Feld "ID" (id) zugewiesen.

ANMERKUNG◄ Diese Einfache Feld-Einschränkung gilt als erfüllt, wenn die ID der Entität in der übergeordneten View in der Liste von IDs im Feld parentCompanies enthalten ist. Insofern listet die geöffnete View ausschließlich die "direkt untergeordneten Firmen" auf.

images/download/attachments/169633796/image-2024-4-3_14-57-29-version-1-modificationdate-1712149049629-api-v2.png