Dieses Video zeigt, wie Sie Arrays erstellen und programmieren und welche Objekte sich zum Darstellen in Formularen eignen.
Wie bei Variablen gilt für Arrays folgendes:
- Es muss deklariert sein
- Einen Wert enthalten
- und dann verwendet werden
Wir erstellen ein Array im Formular DETAIL der Tabelle INTERVENTIONS.
Dieses Array dient für ein PopUp-Menü. Dazu müssen wir:
- Das Array im Speicher anlegen
- Im Formular ein Objekt zur Darstellung des Array setzen
- Prüfen, dass das Array die korrekte Information enthält
- Beim Wählen eines Wertes ihn in das Feld übertragen
Um es einfacher zu machen, setzen wir die Programmierung in das Objekt. So können wir auch Ereignisse noch mal erläutern.
- Wählen Sie das Listenobjekt PopUp/DropDown
- Zeichnen Sie es rechts neben dem Feld OBJECT
- Nennen Sie es PopObjects
- Wir markieren die Ereignisse On Load und On Clicked
Dann bearbeiten wir die Methode wie folgt:
$evt:=Form event
Case of
:($evt=On Load)
ARRAY TEXT(PopObjects;5)
PopObjects{1}:="Training"
PopObjects{2}:="Software"
PopObjects{3}:="Hardware"
PopObjects{4}:="Network"
PopObjects{5}:="System"
:($evt=On Clicked)
If(PopObjects#0)
$ChosenElement:=PopObjects
$ChosenValue:=PopObjects{$ChosenElement}
[Interventions]Object:=$ChosenValue
End if
End case
Die Objektmethode verwendet eine bestimmte Anzahl Elemente:
- Zu Beginn Ereignis prüfen
- Ist es "On Load", erstellen wir ein Array mit 5 Elementen, das 1. ist "Training" u.s.w.
- Dann klicken wir auf das Objekt, der Transfer passiert hier im Objekt
Wir testen diese Methode im Schrittmodus.
Wir sehen, dass wir bei Doppelklick auf einen Einsatz zu On Load gehen.
Wir können nun das Array mit 5 Elementen anzeigen, sie sind schrittweise zugewiesene Werte.
Der Einsatz erscheint.
Wählen wir einen Wert im Menü, sehen wir hier die Zeilennummer in einer Variablen. Sie hat denselben Namen wie das Array, jedoch den Typ Lange Ganzzahl. Wir sehen die Elemente 1 bis 5 und dann Null - mehr dazu später.
Wird diese Methode ausgeführt:
- Ist das betroffene Ereignis "On Clicked"
- Wir können prüfen, ob ein Element ausgewählt wurde
- Wurde das Element ausgewählt, können wir:
- Über die Zwischenvariable gehen (hier "ChosenElement")
- Den gewählten Wert herausfinden, schauen wir auf ChosenElement, sehen wir, dass es "Hardware" ist
- Und den gewählten Wert auf das Objekt übertragen
Wir können diese 3 Zeilen durch 1 Zeile ersetzen:
[Interventions]Object:=PopObjects{PopObjects}
Warum?
Weil dieser Wert hier die Ganzzahl-Variable mit den 3 vorigen ist, er gibt also die Zeilennummer des entsprechenden Array an (es hat denselben Namen).
Bei generischem Code finden Sie oft diese Art Syntax, die einen Zeiger auf das Objekt verwendet:
[Interventions]Object:=Self->{Self->}
Da die Programmierung auf das Objekt selbst ausgeführt wird, bezieht sich Self auf das Objekt. Self->{Self->} gibt das Array {an der gewählten Zeile im Array} an und wir übertragen den Inhalt direkt in das Objekt.
Wir prüfen im Schrittmodus, dass wir dasselbe Ergebnis erhalten.
- Wir haben derzeit "system" im [Intervention] Objekt.
- Zeigen wir PopObjects{PopObjects} an, haben wir "System"
- Zeigen wir Self->{Self->}, haben wir auch "System"
Diese Aufschlüsselung hilft uns, zu verstehen. Wir schreiben wieder kompakt.
Wir erstellen jetzt ein neues Array, in das wir ein Datum mit plus bzw. minus 10 Tagen eingeben können.
- Objekt duplizieren
- Umbenennen
- Kopieren
- Und seine Methode ändern
Dies ist ein Array Datum mit 21 Elementen: Heute + 10 Tage - 10 Tage
das ist die kompakteste Schreibweise dieses Code
Wie füllen wir diese Elemente nun auf? Wir setzen eine Schleife, in der wir dem Array einen Wert wie folgt zuweisen: (Current date + $i-11).
Das Array hat natürlich den korrekten Namen. Jetzt können wir es testen:
Wir sehen hier, dass der Wert beim Auswählen im Array neben das Einsatzdatum gesetzt wird.
Da Sie nun die Programmierung von Arrays kennen, können Sie sie in Objekten darstellen, z.B. Listboxen.
Eine Listbox ist ein Objekt aus einer oder mehreren Spalten mit Titeln. Hier interessiert uns die Spalte, in der wir einfach den Namen des Array schreiben, das wir im Speicher verwalten.
Geben wir nun einen Einsatz zurück, enthält die Listbox die verschiedenen Werte des Array und wir sehen die direkte Synchronisation zwischen Listbox und Array.
Wir programmieren die Listbox genauso, so dass sich der Wert des Objekts beim Anklicken oder einer neuen Auswahl darin automatisch ändert.
Dazu markieren wir in der Listbox die Ereignisse On Clicked und On Selection Change.
Sie müssen nur folgende Zeile in die Objektmethode der Listbox kopieren:
[Interventions]Object:=PopObjects{PopObjects}
Wählen wir beim Benutzen mit der Maus oder den Pfeiltasten einen Wert in der Listbox aus, werden die Werte automatisch übertragen.
Natürlich lässt sich, dort wo die Bereiche drag- oder dropfähig sind, auch Drag-and-Drop verwenden.