Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Objekt Arrays in Spalten
|
Wertetyp | Standard Widget | Alternative Widget(s) |
text | Texteingabe | Dropdown-Menü (Erforderlich-Liste) oder Combobox (Auswahlliste) |
real | vorgegebene Eingabe (Zahlen und Trenner) | Dropdown-Menü (Erforderlich-Liste) oder Combobox (Auswahlliste) |
integer | vorgegebene Eingabe (nur Zahlen) | Dropdown-Menü (Erforderlich-Liste), Combobox (Auswahlliste) oder Optionsfeld mit drei Stadien |
boolean | Optionsfeld | Dropdown-Menü (Erforderlich-Liste) |
color | Hintergrundfarbe | Text |
event | Schaltfläche mit Bezeichnung | Alle Widgets können eine zusätzliche Schaltfläche zum Wählen der Einheit (unit toggle button) oder für weitere Optionen (...) (ellipsis button) haben, die der Zelle zugeordnet ist |
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:
WerteTyp | Standardformat | Eingabekontrolle |
text | so wie in Objekt definiert | beliebig (keine Kontrolle) |
real | so wie in Objekt definiert (mit Dezimaltrenner des Systems) | "0-9" und "." und "-" |
"0-9" und "." wenn min>=0 | ||
integer | so wie in Objekt definiert | "0-9" und "-" |
"0-9" wenn min>=0 | ||
boolean | Optionsfeld | - |
color | - | - |
event | - | - |
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.
valueType | text | real | integer | boolean | color | event | |
Attribut | Beschreibung | ||||||
value | Zellenwert (Eingabe oder Ausgabe) | x | x | x | x | x | |
min | Mindestwert | x | x | ||||
max | Maximumwert | x | x | ||||
behavior | "DreiStadien" Wert | x | |||||
requiredList | Im Objekt definierte Dropdown-Liste | x | x | x | |||
choiceList | In Objekt definierte Combobox | x | x | x | |||
requiredListReference | 4D Listenref, richtet sich nach "SichernAls" Wert | x | x | x | |||
requiredListName | 4D Listenname, richtet sich nach "SichernAls" Wert | x | x | x | |||
saveAs | "Referenz" oder "Wert" | x | x | x | |||
choiceListReference | 4D Listenref, Anzeige Combobox | x | x | x | |||
choiceListName | 4D Listenname, Anzeige Combobox | x | x | x | |||
unitList | Array mit n Elementen | x | x | x | |||
unitReference | Index des gewählten Elements | x | x | x | |||
unitsListReference | 4D Listenref für Einheiten | x | x | x | |||
unitsListName | 4D Listenname für Einheiten | x | x | x | |||
alternateButton | Wechsel-Schaltfläche hinzufügen | x | x | x | x | x |
Zellenwerte werden im Attribut "value" gespeichert. Es wird für Eingabe und Ausgabe verwendet.
Beispiel:
ARRAY OBJECT(obColumn;0) //Spalten Array
C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob1;"valueType";"text")
OB SET($ob1;"value";$entry)
C_OBJECT($ob2)
OB SET($ob2;"valueType";"integer")
OB SET($ob2;"value";2/3)
C_OBJECT($ob3)
OB SET($ob3;"valueType";"boolean")
OB SET($ob3;"value";True)
APPEND TO ARRAY(obColumn;$ob1)
APPEND TO ARRAY(obColumn;$ob2)
APPEND TO ARRAY(obColumn;$ob3)
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. Ist der Eingabewert kleiner als der Mindestwert (min) bzw. größer als der Maximumwert (max), wird er abgewiesen: Der vorige Wert bleibt bestehen und es erscheint eine entsprechende Meldung.
Beispiel:
C_OBJECT($ob3)
$entry3:=2015
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";$entry3)
OB SET($ob3;"min";2000)
OB SET($ob3;"max";3000)
Das Attribut "behavior" bietet Variationen zur regulären Darstellung von Werten. In 4D v15 ist folgende Variante verfügbar:
Attribut | Verfügbare Werte | WerteTyp(en) | Beschreibung |
behavior | threeStates | Ganzzahl | Zeigt einen numerischen Wert als Optionsfeld mit drei Stadien. 2=halb-markiert, 1=markiert, 0=nicht markiert, -1=unsichtbar, -2=nicht markiert ist deaktiviert, -3=markiert ist deaktiviert, -4=halb-markiert ist deaktiviert |
Beispiel:
C_OBJECT($ob3)
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";-3)
C_OBJECT($ob4)
OB SET($ob4;"valueType";"integer")
OB SET($ob4;"value";-3)
OB SET($ob4;"behavior";"threeStates")
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:
ARRAY TEXT($RequiredList;0)
APPEND TO ARRAY($RequiredList;"Open")
APPEND TO ARRAY($RequiredList;"Closed")
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"Closed")
OB SET ARRAY($ob;"requiredList";$RequiredList)
ARRAY LONGINT($ChoiceList;0)
APPEND TO ARRAY($ChoiceList;5)
APPEND TO ARRAY($ChoiceList;10)
APPEND TO ARRAY($ChoiceList;20)
APPEND TO ARRAY($ChoiceList;50)
APPEND TO ARRAY($ChoiceList;100)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";10) //10 als Standardwert
OB SET ARRAY($ob;"choiceList";$ChoiceList)
Ü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:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"saveAs";"value")
OB SET($ob;"value";"blue")
OB SET($ob;"requiredListName";"Farben")
<>List:=New list
APPEND TO LIST(<>List;"Paris";1)
APPEND TO LIST(<>List;"London";2)
APPEND TO LIST(<>List;"Berlin";3)
APPEND TO LIST(<>List;"Madrid";4)
C_OBJECT($ob)
OB SET($ob;"valueType";"Ganzzahl")
OB SET($ob;"saveAs";"reference")
OB SET($ob;"value";2) //zeigt standardmäßig London an
OB SET($ob;"requiredListReference";<>List)
Ü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)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"blue")
OB SET($ob;"choiceListName";"colors")
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)
APPEND TO ARRAY($_units;"Zeilen")
APPEND TO ARRAY($_units;"Pixel")
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";2) // 2 "units"
OB SET($ob;"unitsReference";1) //"Zeilen"
OB SET ARRAY($ob;"unitsList";$_units)
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)
$entry:="Hello world!"
OB SET($ob;"valueType";"text")
OB SET($ob;"alternateButton";True)
OB SET($ob;"value";$entry)
Über valueType "color" können Sie entweder eine Farbe oder einen Text anzeigen.
C_OBJECT($ob4)
OB SET($ob4;"valueType";"color")
OB SET($ob4;"value";0x00FF0000)
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)
OB SET($ob;"valueType";"event")
OB SET($ob;"label";"Edit...")
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.
Produkt: 4D
Thema: Listboxen
Erstellt: 4D v15
4D Designmodus ( 4D v20 R7)