4D v16.3Objekt Arrays in Spalten von Listboxen (4D View Pro) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Objekt Arrays in Spalten von Listboxen (4D View Pro)
Objekt Arrays in Spalten von Listboxen (4D View Pro)
Ab 4D v15 können Spalten von Listboxen Arrays vom Typ Objekt verwalten. Da diese Arrays unterschiedliche Datentypen erlauben, ermöglicht dieses leistungsstarke Feature, jetzt in den Zeilen einer Spalte verschiedene Eingabetypen zu mischen und auch unterschiedliche Widgets anzuzeigen. Sie können z.B. in der ersten Zeile eine Texteingabe, in der zweiten ein Optionsfeld und in der dritten ein DropDown-Menü setzen. Objekt Arrays ermöglichen auch Zugriff auf neue Widget-Typen, wie Schaltflächen oder Farbpaletten. Die folgende Listbox wurde mit einem Objekt Array gestaltet: Hinweis zur Lizensierung: Der Einsatz von Objekt Arrays in Listboxen ist der erste Schritt für das geplante Tool "4D View Pro", das dann nach und nach das Plug-In 4D View ersetzen wird. Deshalb benötigen Sie zur Nutzung dieser Funktionalität eine gültige 4D View Lizenz. Weitere Informationen dazu finden Sie auf der 4D Web Site. Um ein Objekt Array einer Spalte der Listbox zuzuordnen, setzen Sie den Namen des Objekt Array entweder in der Eigenschaftenliste im Feld "Variablenname" oder im Befehl LISTBOX INSERT COLUMN, genauso wie für eine Spalte mit zugeordnetem Array. In der Eigenschaftenliste können Sie jetzt für die Spalte als Variablentyp Objekt auswählen: Für Spalten vom Typ Objekt sind Standardeigenschaften zu Koordinaten, Größe und Stil verfügbar. Sie können über die Eigenschaftenliste oder per Programmierung Stil, Schriftfarbe und Ein-/Ausblenden für jede Zeile einer Spalte vom Typ Objekt definieren. Solche Spalten lassen sich auch ausblenden. Für objektbasierte Spalten der Listbox ist die Gruppe Datenquelle nicht verfügbar. Der Inhalt jeder Zelle der Spalte richtet sich nach den Attributen, die dem jeweiligen Element des Objekt Array zugewiesen ist. Jedes Objekt Element kann folgendes definieren:
Um diese Eigenschaften zu definieren, müssen Sie im Objekt passende Attribute setzen (Liste siehe unten). Sie können z.B. "Hello World!" in einer Spalte vom Typ Objekt mit folgendem Code schreiben : ARRAY OBJECT(obColumn;0) //Spalten Array Hinweis: Für eine Spalte vom Typ Objekt lassen sich keine Anzeigeformate und Eingabefilter setzen. Diese richten sich automatisch nach dem Typ des Werts. Wird eine Spalte der Listbox einem Objekt Array zugewiesen, basiert die Anzeige, Eingabe oder Bearbeitung der Zelle auf dem Attribut "valueType" des Array Elements. Es gibt folgende Werte:
4D verwendet Standard Widgets für den Wertetyp, z.B. "text" wird als Widget für Texteingabe angezeigt, "boolean" als Optionsfeld. Über Optionen sind auch Alternativen verfügbar. So lässt sich ein Boolean Wert auch als DropDown-Liste mit den Optionen "ja"/"nein" darstellen. Nachfolgende Tabelle zeigt die verschiedenen Möglichkeiten:
Sie können die Zellenanzeige und Optionen über spezifische Attribute in jedem Objekt anpassen (siehe unten). Für Spalten vom Typ Objekt können Sie keine Anzeigeformate oder Eingabefilter setzen. Sie werden automatisch gemäß dem Typ des Werts definiert. Es gibt folgende Optionen:
Jedes Element des Objekt Array ist ein Objekt mit einem oder mehreren Attributen, die den Inhalt der Zelle und die Anzeige der Daten definieren (siehe Beispiel oben). Nur das Attribut "valueType" ist zwingend, unterstützt werden "text", "real", "integer", "boolean", "color" und "event". Nachfolgende Tabelle zeigt alle Attribute, die abhängig vom Typ, in Objekt Arrays in Listboxen unterstützt werden (alle anderen Attribute werden ignoriert). Details zu den Anzeigeformaten und Beispiele siehe unten.
Zellenwerte werden im Attribut "value" gespeichert. Es wird für Eingabe und Ausgabe verwendet. Beispiel: ARRAY OBJECT(obColumn;0) //Spalten Array Ist "valueType" vom Typ "real" oder "integer", erlaubt das Objekt auch min und max Attribute mit passenden Werten (die Werte müssen vom gleichen Typ wie der Wertetyp sein). Damit können Sie den Bereich von Eingabewerten steuern, wenn die Zelle bestätigt wurde, d.h. wenn sie den Fokus verliert:
Beispiel: C_OBJECT($ob3) Das Attribut "behavior" bietet Variationen zur regulären Darstellung von Werten. In 4D v15 ist folgende Variante verfügbar:
Beispiel: C_OBJECT($ob3) Ist im Objekt ein Attribut "choicelist" oder "requiredList" vorhanden, wird die Texteingabe je nach Typ durch eine DropDown-Liste oder eine Combobox ersetzt:
In beiden Fällen wird über das Attribut "value" ein Wert im Widget vorab ausgewählt. Hinweis: Die Werte des Widget werden über ein Array definiert. Wollen Sie dem Widget eine vorhandene 4D Liste zuweisen, müssen Sie die Attribute "requiredListReference", "requiredListName", "choiceListReference", oder "choiceListName" verwenden. Beispiele:
Über die Attribute "requiredListName" und "requiredListReference" können Sie in einer Zelle der Listbox eine in 4D definierte Liste anzeigen, die entweder über die Toolbox im Designmodus oder über den Befehl New list erstellt wurde. Die Zelle erscheint dann als DropDown-Liste, d.h. der Benutzer kann nur einen der vorgegebenen Werte auswählen. Je nachdem, wo die Liste angelegt wird, wählen Sie "requiredListName" oder "requiredListReference": Stammt sie von der Toolbox, übergeben Sie einen Namen, wurde Sie per Programmierung erstellt, übergeben Sie eine Referenz. In beiden Fällen lässt sich über das Attribut "value" im Widget ein Wert vorab auswählen. Hinweis: Wollen Sie die Werte über ein einfaches Array definieren, müssen Sie das Attribut "requiredList" verwenden. In diesem Fall definiert das Attribut "saveAs", ob der gewählte Eintrag als "value" oder "reference" gespeichert wird.
Weitere Informationen dazu finden Sie im Abschnitt Als Wert oder Referenz sichern des Handbuchs Designmodus. Hinweis: Enthält die Liste Texteinträge mit Zahlenwerten, muss der Dezimaltrenner ein Punkt (".") sein, unabhängig von den lokalen Einstellungen. Beispiel: "17.6" "1234.456". Beispiele:
Über die Attribute "choiceListName" und "choiceListReference" können Sie in einer Zelle der Listbox eine in 4D definierte Liste anzeigen, die entweder über die Toolbox im Designmodus oder über den Befehl New list erstellt wurde. Die Zelle erscheint dann als DropDown-Liste, d.h. der Benutzer kann einen Wert auswählen oder eintippen. Je nachdem, wo die Liste angelegt wird, wählen Sie "choiceListName" oder "choiceListReference": Stammt sie von der Toolbox, übergeben Sie einen Namen, wurde Sie per Programmierung erstellt, übergeben Sie eine Referenz. In beiden Fällen lässt sich über das Attribut "value" im Widget ein Wert vorab auswählen. Hinweis: Wollen Sie die Werte über ein einfaches Array definieren, müssen Sie das Attribut "choiceList" verwenden. In diesem Fall lässt sich das Attribut "saveAs" nicht verwenden. Ausgewählte Einträge werden automatisch als "value" gesichert. Hinweis: Enthält die Liste Texteinträge mit Zahlenwerten, muss der Dezimaltrenner ein Punkt (".") sein, unabhängig von den lokalen Einstellungen. Beispiel: "17.6" "1234.456". Beispiel: Eine Combobox mit der Liste "colors" anzeigen, die in der Toolbox definiert wurde (mit den Werten "blue", "yellow" und "green"), "blue" standardmäßig auswählen: C_OBJECT($ob) Sie können spezifische Attribute für Einheiten verwenden, die Zellenwerten zugeordnet sind, wie z.B. "10 cm", "20 Pixel". Dafür können Sie folgende Attribute verwenden:
Jede dieser Einheitenliste lässt sich über folgendes Attribut zuordnen:
Die aktuelle Einheit wird als Schaltfläche angezeigt, die bei jedem Anklicken die Werte von "unitsList", "unitsListReference" oder "unitsListName" durchläuft ("Pixel" -> "Zeilen" -> "cm" -> "Pixel" -> etc.) Beispiel: Die numerische Eingabe mit den beiden Einheitenvarianten "Zeilen" oder "Pixel" einrichten. Der aktuelle Wert ist "2" + "Zeilen". Wir verwenden Werte, die direkt im Objekt definiert wurden (Attribut "unitsList"): ARRAY TEXT($_units;0) Um in einer Zelle die Schaltfläche [...] hinzuzufügen, müssen Sie im Objekt "alternateButton" mit dem Wert True übergeben. Die Schaltfläche erscheint automatisch in der Zelle. Klickt der Benutzer auf diese Schaltfläche, wird das Ereignis On Alternate Click generiert, das Sie nach eigenen Wünschen verwalten können. Weitere Informationen dazu finden Sie im Abschnitt "Ereignisverwaltung". Beispiel: C_OBJECT($ob1) Über valueType "color" können Sie entweder eine Farbe oder einen Text anzeigen.
valueType "event" zeigt eine einfache Schaltfläche, die bei Anklicken das Ereignis On Clicked generiert. Es lassen sich keine Daten oder Werte übergeben bzw. zurückgeben. Optional können Sie ein Attribut "label" übergeben. Beispiel: C_OBJECT($ob) In Listboxen mit einem Objekt Array lassen sich verschiedene Ereignisse verwalten:
Hinweis: On Alternative Click ist der neue Name für das Ereignis On Arrow Click, das in bisherigen 4D Versionen schon verfügbar war. Es wurde umbenannt, da seine Reichweite in 4D v15 erweitert wurde.
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Erstellt: 4D v15 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||