4D v14

Video Skript

Home

 
4D v14
Video Skript

Video Skript  


 

 

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:

  1. Das Array im Speicher anlegen
  2. Im Formular ein Objekt zur Darstellung des Array setzen
  3. Prüfen, dass das Array die korrekte Information enthält
  4. 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//Vor Anzeige des Formulars
       ARRAY TEXT(PopObjects;5) //Definition des Array (Typ, Name und Anzahl Elemente)
 
  //Die Elemente des Array füllen
       PopObjects{1}:="Training"
       PopObjects{2}:="Software"
       PopObjects{3}:="Hardware"
       PopObjects{4}:="Network"
       PopObjects{5}:="System"
 
    :($evt=On Clicked//Wenn der Benutzer ein Element im Array wählt
       If(PopObjects#0) //Wenn der Benutzer ein Element ausgewählt hat
          $ChosenElement:=PopObjects //Das gewählte Element speichern
          $ChosenValue:=PopObjects{$ChosenElement//In diesem Element enthaltenen Wert speichern
          [Interventions]Object:=$ChosenValue  //Wert dem Feld zuweisen
       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.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays, PopUps, Listboxen

 
ARTIKELVERWENDUNG

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