4D v16.3Hierarchische Listen verwalten |
||
|
4D v16.3
Hierarchische Listen verwalten
Hierarchische Listen verwalten
Hierarchische Listen sind Formularobjekte zum Anzeigen von Daten in Form einer Liste mit einer oder mehreren Ebenen, die sich auf- oder zuklappen lassen. In Formularen dienen hierarchische Listen zur Anzeige oder Eingabe von Daten. Jeder Eintrag kann bis zu 2 Millionen Zeichen enthalten (maximale Größe eines Textfeldes) und mit einem Icon versehen werden. Sie unterstützen in der Regel Klicks, Doppelklicks, die Steuerung über Tastatur sowie Drag-and-Drop. Sie können auch nach dem Inhalt einer Liste suchen (Funktion Find in list). Hierarchische Listen lassen sich komplett per Programmierung erstellen (über die Funktionen New list oder Copy list) oder über Listen, die im Listeneditor des Designmodus definiert wurden (Funktion Load list). Inhalt und Darstellung hierarchischer Listen werden über die Befehle und Funktionen dieses Kapitels per Programmierung gesteuert. Einige spezifische Darstellungsmerkmale lassen sich auch über die generischen Befehle im Kapitel Objekte (Formulare) steuern (siehe unten). Über den Befehl OBJECT SET LIST BY REFERENCE oder OBJECT SET LIST BY NAME können Sie Referenzen auf hierarchische Listen dynamisch mit Formularobjekten aus Auswahllisten (Quellen, erforderliche und ausgeschlossene Werte) verbinden. Sie können auch Auswahllisten zuweisen, die über die Eigenschaftenliste im Listeneditor mit Formularobjekten definiert wurden. Eine hierarchische Liste ist sowohl ein Programmierspracheobjekt im Speicher als auch ein Formularobjekt. Es gibt im Speicher immer nur eine Instanz des Programmierspracheobjekts und jede Änderung im Objekt erscheint sofort an allen Stellen, wo es verwendet wird. Sie können die hierarchische Liste "Programmierspracheobjekt" mit der hierarchischen Liste "Formularobjekt" über eine Variable mit dem Wert ListRef verbinden. Schreiben Sie zum Beispiel: mylist:=New list ... können Sie den Variablennamen mylist einfach mit dem Formularobjekt der hierarchischen Liste in der Eigenschaftenliste verbinden, so dass dieser das Programmierspracheobjekt steuert, dessen ListRef in mylist gespeichert ist. Jede Darstellung der Liste hat Merkmale, die für alle Darstellungen gleich sind, und solche, die nur für eine bestimmte Darstellung gelten. Folgende Merkmale sind für jede Darstellung der Liste spezifisch:
Andere Merkmale wie Schrift, Eingabekontrolle, Inhalt der Liste, Icons, etc. und die Attribute, die auf der Ebene des Programmierspracheobjekts (ListRef) definiert sind, sind für alle Darstellungen gleich und lassen sich nicht einzeln ändern. Verwenden Sie Befehle, die mit auf-/zugeklappten Einträgen oder dem aktuellen Eintrag arbeiten, wie z.B. Count list items (ohne den Parameter *), muss gewährleistet sein, dass die zu verwendende Darstellung in eindeutiger Weise bestimmbar ist. Warnung: Beachten Sie, dass bei Befehlen, die Eigenschaften setzen, die Syntax mit dem Objektnamen nicht bedeutet, dass der Befehl nur das angegebene Formularobjekt ändert. Die Aktion des Befehls richtet sich vielmehr nach dem Status des Objekts. So werden die Merkmale für hierarchische Listen immer in allen Darstellungen geändert. Sie können, wie in Routinen zur Verwaltung von Objekteigenschaften, im Parameter Objektname das Zeichen “@” verwenden. Damit bestimmen Sie in der Regel einen Satz Objekte im Formular. Bei Befehlen für hierarchische Listen ist das jedoch nicht für alle Fälle geeignet. Diese Syntax hat je nach Befehlsart zwei unterschiedliche Auswirkungen:
Sie können die Darstellung einer hierarchischen Liste in einem Formular mit mehreren generischen 4D Befehlen verändern. Sie übergeben in diesen Befehlen entweder den Objektnamen der hierarchischen Liste (mit dem Parameter *) oder ihren Variablennamen (Standardsyntax). Hinweis: Bei hierarchischen Listen enthält die Variable des Formulars den Wert ListRef. Führen Sie einen Befehl aus, der ein Attribut über die Variable der hierarchischen Liste verändert, lässt sich bei mehrfacher Darstellung keine Zielliste festlegen. Nur der Objektname ermöglicht die individuelle Unterscheidung zwischen den verschiedenen Darstellungen. Folgende Befehle lassen sich mit hierarchischen Listen verwenden: Hinweis: Diese Befehle verändern alle Darstellungen derselben Liste, auch wenn Sie nur eine Liste über ihren Objektnamen angeben. Davon ausgenommen ist der Befehl OBJECT SET SCROLL POSITION. Bestimmte Eigenschaften einer hierarchischen Liste, wie z.B. das Attribut „Eingebbar“ oder die Farbe, lassen sich auf drei Arten setzen: Über die Eigenschaftenliste im Designmodus, über einen Befehl aus dem Kapitel Objekte (Formulare) oder einen Befehl aus dem Kapitel “Hierarchische Listen”. Dabei gilt folgende Priorität in der Reihenfolge:
Diese Priorität gilt unabhängig von der Reihenfolge, in der die Befehle aufgerufen werden. Ändern Sie die Eigenschaft einer Zeile individuell mit einem Befehl für hierarchische Listen, hat der entsprechende Befehl für Objekteigenschaft keine Auswirkung auf diese Zeile, selbst wenn er danach aufgerufen wird. Ändern Sie z.B. die Farbe einer Zeile mit dem Befehl SET LIST ITEM PROPERTIES, hat der Befehl OBJECT SET COLOR keine Auswirkung auf diese Zeile. Es gibt zwei Möglichkeiten, um mit dem Inhalt hierarchischer Listen zu arbeiten: nach Position oder nach Referenz.
Jeder Eintrag einer hierarchischen Liste hat eine Referenznummer (EintragRef) vom Typ Lange Ganzzahl. Dieser Wert dient nur für Ihren eigenen Gebrauch: 4D stellt diesen lediglich bereit. Warnung: Sie können als Referenznummer einen beliebigen Wert vom Typ Lange Ganzzahl verwenden, außer 0 (Null). Die meisten Befehle dieses Kapitels verwenden den Wert 0 zur Angabe des zuletzt in der Liste hinzugefügten Eintrags. Hier ein paar Tipps zur Verwendung von Referenznummern: 1. Sie müssen nicht jeden Eintrag mit einer einmaligen Nummer identifizieren (Anfängerebene).
2. Sie müssen die Einträge der Liste z.T. identifizieren (mittlere Ebene). 3. Sie müssen alle Einträge der Liste individuell identifizieren (fortgeschrittene Ebene). Hinweis: Verwenden Sie Bit Operatoren, können Sie Referenznummern für Einträge auch zum Speichern von Information verwenden, die sich in eine Lange Ganzzahl setzen lässt, z.B. 2 Ganzzahlen, 4-byte Werte oder 32 Booleans. In den meisten Fällen, bei Verwendung hierarchischer Listen für Benutzerzwecke und wenn nur der aktuelle Eintrag bearbeitet wird (der angeklickte oder per Drag-and-Drop bewegte Eintrag), benötigen Sie überhaupt keine Referenznummern für Einträge. Hier reichen die Routinen Selected list items und GET LIST ITEM vollkommen aus. Außerdem ermöglichen die Befehle INSERT IN LIST und DELETE FROM LIST die Bearbeitung der Liste in Bezug auf den gewählten Eintrag. Im allgemeinen benötigen Sie Referenznummern für Einträge nur, wenn Sie direkt auf einen beliebigen Eintrag per Programmierung zugreifen wollen, der nicht zwingenderweise der aktuell in der Liste ausgewählte Eintrag ist.
Siehe auch
OBJECT SET COLOR
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |