4D v16.3

Unterformulare als Liste

Home

 
4D v16.3
Unterformulare als Liste

Unterformulare als Liste  


 

 

Ein Unterformular ist ein Listenformular aus einer anderen Tabelle, das in einem Detailformular angezeigt wird. Mit einem Unterformular als Liste können Sie Daten in anderen Tabellen eingeben, anzeigen und ändern. Sie verwenden normalerweise Unterformulare in Anwendungen, in der Sie Eine-zu-Viele-Verknüpfungen aufgebaut haben. Über ein Unterformular als Liste in einem Formular zu einer verknüpften Eine-Tabelle können Sie Daten aus einer verknüpften Viele-Tabelle anzeigen, eingeben und ändern. Sie können mehrere Unterformulare aus verschiedenen Tabellen im selben Formular haben. Sie können jedoch nicht zwei Unterformulare, die zur gleichen Tabelle gehören, auf dieselbe Seite des Formulars setzen.

Eine Anwendung zum Verwalten von Kontakten kann zum Beispiel ein Unterformular als Liste enthalten, das alle Telefonnummern für einen bestimmten Kontakt anzeigt. Obwohl die Telefonnummern in der Anzeige der Kontakte erscheinen, wird diese Information in einer verknüpften Tabelle gespeichert. Über eine Eine-zu-Viele-Verknüpfung in der Struktur lassen sich beliebig viele Telefonnummern pro Kontakt speichern. Mit automatischen Verknüpfungen können Sie die Dateneingabe direkt in die verknüpfte Viele-Tabelle unterstützen, ohne programmieren zu müssen.

Obwohl Unterformulare als Listen im allgemeinen Viele-Tabellen zugeordnet sind, kann einen Unterformular Instanz die Datensätze aus jeder anderen Tabelle der Anwendung anzeigen.

Sie können ein Unterformular als Liste mit dem Formularassistenten erzeugen.

Sie können ein Unterformular mit dem Formularassistenten erzeugen oder über den Formulareditor ein bestehendes Formular hinzufügen. Sie müssen das Listenformular, das sie als Unterformular verwenden wollen, zuerst erstellen.

In Unterformulare als Liste lassen sich Daten auf zwei Arten eingeben: Der Benutzer kann Daten direkt im Unterformular eingeben oder sie in einem zugeordneten Eingabeformular eingeben. Hierbei wird das Formular, das als Unterformular verwendet wird, als Listenformular bezeichnet; das Eingabeformular als Detailformular.

------>

Sie können dem Benutzer ermöglichen, Daten über das Listenformular einzugeben oder auf eine Zeile im Listenformular zu klicken, um das Detailformular zu öffnen.

Um ein Listenformular zu definieren, müssen Sie das Unterformular, welches Sie im Elternformular verwenden wollen, zuerst erstellen und einrichten. Weitere Informationen zu Listenformularen finden Sie im Kapitel Ausgabeformulare und Berichte

Im Elternformular erstellen Sie ein Objekt Unterformular über das Werkzeug Unterformular der seitlichen Objektleiste (Variation der letzten Schaltfläche). 

Hinweis: Sie können das Listenformular auch per Drag-and-Drop Operationen aus der Seite Formulare des Explorer anlegen.

Stellen Sie sicher, dass in der Eigenschaftenliste unter der Gruppe „Unterformular“ die Option Ausgabeformular markiert ist, wählen Sie unter Quelle die Quelltabelle sowie unter Ausgabeformular das passende Formular.

Im Elternformular können Sie den Unterformular Container beliebig in der Größe und Position verändern.

Sie können in einem Unterformular eigene Schaltflächen zum Steuern der Dateneingabe hinzufügen. Jeder Schaltflächentyp (invertierte, unsichtbare Schaltfläche, etc.) ist verwendbar. Sie können die Aktion dieser Schaltflächen über Programmierung (siehe Handbuch 4D Programmiersprache, Kapitel Eingabe) oder über Standardaktionen definieren. 

4D bietet drei Standardaktionen zum Verwalten der Grundfunktionen für Unterdatensätze: Unterdatensatz öffnen, Unterdatensatz löschen und Unterdatensatz hinzufügen. Enthält das Formular mehrere Unterformular Instanzen, gilt die Aktion für das Unterformular mit Fokus.

Weitere Informationen dazu finden Sie in den Abschnitten Schaltflächen und Standardaktionen.

Sie können verschiedene Eigenschaften für Unterformulare als Liste einrichten und so automatische Funktionalitäten und für Benutzer erlaubte Aktionen (Auswahl und Dateneingabe) steuern.

Diese Eigenschaften verwenden Sie in der Regel für Unterformulare als Seite. Weitere Informationen dazu finden Sie im Abschnitt Unterformulare als Seite.

Quelle  

Damit können Sie die Art der Quelle für das Unterformular auswählen. Für Unterformulare als Liste wählen Sie die Tabelle, zu der das Unterformular gehört.

Damit können Sie dem Unterformular als Liste ein Eingabeformular zuordnen. Es dient zum Eingeben und Ansehen der Datensätze. Es enthält in der Regel mehr Informationen als im Unterformular als Liste angezeigt werden. Das Eingabeformular muss natürlich zur selben Tabelle wie das Unterformular gehören. Sie verwenden normalerweise ein Ausgabeformular als Listenformular und ein Eingabeformular als Detailformular. Definieren Sie kein Formular für den Listenmodus, verwendet 4D automatisch das standardmäßige Eingabeformular der Tabelle.

Je nach Konfiguration der Unterformulars kann der Benutzer das Detailformular durch Doppelklick auf einen Datensatz oder über die Befehle zum Hinzufügen und Bearbeiten der Datensätze im Unterformular anzeigen.

Hinweis: Sie können einem Unterformular als Liste ein Detailformular zuordnen, indem sie es bei gedrückter Großschreibtaste aus dem Explorer in den Unterformular Container ziehen.

Sie können einen Unterformularbereich in einem Formular wie jedes andere Objekt in der Größe ändern. 4D kann die Größe auch automatisch anpassen, so dass alle darin enthaltenen Datenfelder angezeigt werden. Dazu markieren Sie in der Eigenschaftenliste für das Unterformular die Option Automatische Breite.

Hinweis: Erstellen Sie einen Unterformularbereich direkt über das Symbol im Explorer, setzt 4D die Breite des Unterformulars automatisch.

Für Unterformulare als Liste gibt es drei Auswahlmodi für den Benutzer: Nichts, Einfach und Mehrfach.

  • Nichts
    In diesem Modus lässt sich kein Datensatz auswählen. Ein Klick in die Liste hat keine Auswirkung, außer die Option Eingebbar in Liste ist markiert. Die Tasten zum Navigieren ermöglichen nur das Blättern in der Liste, das Formularereignis On Selection Change wird nicht erzeugt.
  • Einfach
    In diesem Modus lässt sich immer nur ein Datensatz auswählen. Klicken Sie auf einen Datensatz, wird er ausgewählt und zum aktuellen Datensatz. Klicken Sie unter Windows mit gedrückter Strg-Taste, auf Mac OS mit gedrückter Befehlstaste auf einen Datensatz, wechseln Sie seinen Status (ausgewählt oder nicht ausgewählt).
    Über die Pfeiltasten Nach oben und Nach unten wählen Sie den vorigen/nächsten Datensatz in der Liste. Mit den anderen Tasten navigieren Sie in der Liste. Das Formularereignis On Selection Change wird jedes Mal generiert, wenn der Datensatz geändert wird.
  • Mehrfach
    In diesem Modus lassen sich mehrere Datensätze gleichzeitig auswählen. Die ausgewählten Unterdatensätze werden mit dem Befehl GET HIGHLIGHTED RECORDS zurückgegeben. Klicken Sie auf einen Datensatz, wird er ausgewählt. Dies verändert jedoch nicht den aktuellen Datensatz. Klicken Sie unter Windows mit gedrückter Strg-Taste, auf Mac OS mit gedrückter Befehlstaste auf einen Datensatz, wechseln Sie seinen Status (ausgewählt oder nicht ausgewählt). Mit der Kombination Strg-Taste+Großschreibtaste+Klick unter Windows, Befehlstaste+Großschreibtaste+Klick auf Mac OS können Sie mehrfache Auswahlen treffen.
    Über die Pfeiltasten Nach oben und Nach unten wählen Sie den vorigen/nächsten Datensatz in der Liste. Mit den anderen Tasten navigieren Sie in der Liste. Das Formularereignis On Selection Change wird jedes Mal generiert, wenn der ausgewählte Datensatz geändert wird.

Ist ein Unterformular als Liste im Modus Eingebbar in Liste, kann der Benutzer die Daten im Datensatz direkt in der Liste ändern, ohne das dazugehörige Eingabeformular zu verwenden. Er muss lediglich zweimal auf das Feld für die Bearbeitung klicken (Lassen Sie genügend Zeit zwischen den beiden Klicks, damit Sie keinen Doppelklick auslösen).
Diese Option ist standardmäßig für alle Unterformulare als Liste aktiviert. 

Ist diese Option nicht markiert, ist die Eingabe nur über das zugeordnete Eingabeformular möglich.

Sie können festlegen, wie sich ein Unterformular bei Doppelklick des Benutzers verhalten soll. In Anwendungen, die mit einer früheren Version von 4D erstellt wurden, können Sie auch eine Reaktion bei Doppelklick auf eine leere Zeile definieren (Option Kompatibilität).

  • Doppelklick auf Zeile: Auszuführende Aktion bei Doppelklick auf einen Datensatz des Unterformulars. Es gibt folgende Optionen:
    • Nichts: Doppelklick ignorieren.
    • Datensatz bearbeiten: Ändert den Datensatz im Unterformular in den Bearbeitungsmodus. Die Änderungen werden direkt in der Liste ausgeführt, wenn die Option Eingebbar in Liste markiert ist. Sonst wird sie im Detailformular ausgeführt, das mit dem Unterformular verknüpft ist.
    • Datensatz anzeigen: Zeigt die Daten eines Datensatzes im Detailformular, das mit dem Unterformular verknüpft ist (nur Lesen).
  • Doppelklick auf Leerzeile: Sie können definieren, welche Aktion bei Doppelklick auf eine Leerzeile im Unterformular ausgeführt wird. Es gibt folgende Optionen:
    • Nichts: Doppelklick ignorieren.
    • Datensatz hinzufügen: Erstellt einen neuen Datensatz im Unterformular und wechselt in den Bearbeitungsmodus. Er wird direkt in der Liste erstellt, wenn die Option Eingebbar in Liste markiert ist. Sonst wird er im Detailformular ausgeführt, das mit dem Unterformular verknüpft ist.

Der Benutzer kann standardmäßig Datensätze in einem Unterformular über die Tasten Del oder Rückschritt löschen.
Da dies jedoch die Standardoperationen in der Oberfläche einiger Anwendungen beeinträchtigen kann – z.B. wenn sie auf Schaltflächen basieren – können Sie es über die Option Erlaube Löschen verhindern.

Ist diese Option inaktiv, kann der Benutzer über die Löschtasten keine Datensätze in Unterformularen löschen.

Auf Objekte im Unterformular lässt sich die Eigenschaft Fokusfähig (Gruppe Eingabe) anwenden. Ein Unterformular mit Fokus kann der Benutzer über die Navigationstasten steuern, bei einer mehrzeiligen Auswahl das Menü Alle auswählen verwenden, etc.

Erhält oder verliert ein Unterformular den Fokus, wird die Formularmethode des Hauptformulars über die Ereignisse On getting focus oder On losing focus aufgerufen. In diesem Fall gibt die 4D Funktion OBJECT Get pointer oder Focus object einen Zeiger auf die Tabelle des Unterformulars zurück.

Wie bei allen fokusfähigen Objekten lässt sich über die Eigenschaft Fokusrahmen ausblenden die grafische Anzeige des Fokus ausblenden.

Drucken  

Da es mehr Datensätze geben kann, als der Unterformularbereich aufnehmen kann, bietet 4D unter der Gruppe „Drucken“ drei Optionen an, die das Drucken von Datensätzen in Unterformularen steuern:

  • Variabel (Standardeinstellung)
    Mit dieser Option erweitert oder verringert 4D den Unterformularbereich, um alle Datensätze zu drucken.
  • Fest (abgeschnitten)
    Mit dieser Option druckt 4D nur die Datensätze, die im Unterformularbereich erscheinen. Das Formular wird nur einmal gedruckt, nicht gedruckte Datensätze werden ignoriert.
  • Fest (mehrere Datensätze)
    Mit dieser Option wird die Ausgangsgröße des Unterformularbereichs beibehalten, 4D druckt das Formular jedoch mehrmals, um alle Datensätze auszudrucken.
    Hinweise:
    • Sie können keine Objekte neben den Rahmen des Objekts Unterformular Container legen, da jedes Objekt vor oder nach diesem Rahmen für jede Zeile des Unterformulars wiederholt wird.
    • Sie können immer nur eine Unterformular Instanz aus derselben Tabelle auf derselben Formularseite drucken.
    • Die Funktionen Print object und Print form sind nicht kompatibel mit den Druckoptionen für variable Größe.
    • Mit dem Befehl OBJECT SET PRINT VARIABLE FRAME lässt sich die Option Drucke variable Größe per Programmierung setzen.
    • Weitere Informationen zum Drucken von Objekten mit variabler Größe finden Sie im Abschnitt WA OPEN BACK URL.



Siehe auch 

Unterformulare als Seite

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Unterformulare und Widgets

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v16)
4D Designmodus ( 4D v16.1)
4D Designmodus ( 4D v16.3)