4D v14

Arrays, PopUps, Listboxen

Home

 
4D v14
Arrays, PopUps, Listboxen

Arrays, PopUps, Listboxen    


 

 

Zusätzlich zu den Erläuterungen im Video sollten Sie noch folgendes beachten:

Arrays sind eine unverzichtbare Funktionalität vieler Programmiersprachen. Sie sind praktisch, unbegrenzt, dynamisch, ein- oder zweidimensional, sie sind ein “Raum” im Speicher, der sich in Formularen über Objekte wie PopUps, Comboboxen, Listboxen, rollbare Bereiche, etc. anzeigen lässt.

Wir haben bereits das Konzept und die Verwendung von einwertigen Variablen behandelt. Ein Array ist eine mehrwertige Variable, die wir für jedes seiner Elemente lesen oder schreiben können.

Wir definieren ein Array durch Festlegen der darin enthaltenen Zeilen und des Typs. Nachfolgende Übersicht zeigt die verschiedenen Stadien einer Variablen und die Lebensdauer eines Array:

SchrittEinfache VariableArray Variable
InitialisierungC_TEXT(vText)ARRAY TEXT(ArrayText;10) `10 Zeilen
BewertungvText:="Klassiksammlung"ArrayText{1}:="Bach" `Zeile 1
ArrayText{2}:="Beethoven" `Zeile 2
ArrayText{3}:="Bruckner" `Zeile 3
...
Verwendung$NumChar:=Length(vText)$Amant:=ArrayText{1}
Inhalt entfernenCLEAR VARIABLE(vText)ARRAY TEXT(ArrayText;0)
(unterschiedliches Verhalten in interpretierter und kompilierter
Anwendung, mehr dazu siehe 4D Dokumentation)
Ansicht im FormularDen Variablennamen einem Objekt vom Typ Variable übergebenDen Variablennamen einem Objekt vom Typ rollbarer Bereich/PopUp-Menü übergeben
TypenGanzzahl, Lange Ganzzahl, Zahl, Alpha, Text, Boolean, Datum, Zeit, Bild, BLOB, ZeigerIdentisch zu Variablentypen außer Zeit und BLOB

Wie Sie sehen, haben Variablen und Arrays viele Ähnlichkeiten.

Der Name eines Array wird manchmal mit geschweiften Klammern { }, manchmal direkt verwendet. In diesem Fall ist es eine Variable vom Typ Lange Ganzzahl, die 4D automatisch anlegt. Diese einem Array zugewiesene Variable dient als ein Array Index (Zeilennummer). Über diese Variable erfahren wir, welche Zeile der Benutzer ausgewählt hat oder erzwingen die Auswahl einer spezifischen Zeile im PopUp-Menü.

Das ist, was wir oft mit der spezifischen Syntax in Anwendungen sehen:

 [INTERVENTIONS]Object:=ObjectsArr{ObjectsArr}

Wir können es folgendermaßen entschlüsseln: "Objekt := Array Inhalt {bei der ausgewählten Zeile}"
Sie finden auch folgende Syntax, die noch präziser und generischer ist. Sie verwendet die Funktion Self mit einem Zeiger auf das Objekt, dessen Methode ausgeführt wird:

 [INTERVENTIONS]Object:=Self->{Self->}

Unabhängig von der gewählten Syntax ist das Verhalten gleich.

In 4D ist eine Registerkarte ein einmaliges Objekt mit mehreren Titeln (Werte). Es ist ein Beispiel für ein Oberflächenobjekt, das ein Array darstellen kann. In der Regel setzen wir Registerkarten auf Seite 0 im Formular (mehr dazu siehe Sequenz zu diesem Thema).

Wie Sie sehen, werden Arrays rasch recht nützlich und bald zur Notwendigkeit.

Ein Array enthält nur Einträge vom gleichen Typ. Sie können kein Array haben mit einem Element Alpha, einem Element Datum und einem dritten Element Zeit. In diesem Fall können Sie ein Array mit Zeigern verwenden, die auf Variablen unterschiedlicher Typen zeigen.

Wie bereits in der Sequenz zu Zeigern erwähnt, können Sie Zeiger und Arrays kombinieren zu “Zeiger Arrays”.

Sie können auch eine Listbox verwenden, in der jede Spalte mit einem anderen Array (derselben Größe) verbunden ist.

Es ist ein Objekt, das ein oder mehrere Arrays gruppiert und synchronisiert.

In einer Listbox können Sie folgendes konfigurieren:

  • Die Listbox selbst
  • Jede Titelzeile der Spalte
  • Und jede Spalte

Bei einer Listbox mit X Spalten haben Sie 2X+1 Objekte (X Spalten, X Titel + 1 Listbox).

Mit Listboxen können Sie:

  • Daten eingeben
  • Zeilen und Spalten sortieren und bewegen
  • Wechselnde Farben anzeigen
  • Daten hierarchisch anzeigen
  • In Fußzeilen Gesamtsummen hinzufügen
  • Eine Listbox lässt sich, wie hier, mit Arrays oder mit Feldern der aktuellen bzw. der temporären Auswahl einer Tabelle synchronisieren
  • u.s.w.

Beachten Sie, dass die Listbox ihre Spalten synchronisiert; sie nimmt dafür die kleinste Anzahl der Zeilen aus dem Array. So kann es vorkommen, dass Sie Arrays haben, die mit Daten gefüllt sind, und trotzdem mit einer leeren Listbox enden, wenn eins ihrer Arrays leer ist.

 
 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays, PopUps, Listboxen

 
ARTIKELVERWENDUNG

Self-Training ( 4D v13)
Self-Training ( 4D v14)