4D v14

Video Skript

Home

 
4D v14
Video Skript

Video Skript  


 

 

Dieses Video erläutert Zeiger und zeigt, wie Sie damit Ihre Programmierung optimieren und generisch machen können.

In der vorigen Übung haben wir jede Aktion, wie Suchen, Sortieren, in der Methode NAVIGATOR_FUNCTIONS eingerichtet. Das ist mühselig. Jetzt wollen wir die Aktion der Tabelle zur jeweiligen Seite zuordnen.

Es ist einfacher, die entsprechende Tabelle nur einmal zu Beginn der Methode anzugeben. Wir können diese Anweisung in einer Variablen speichern und sie dann in Befehlen verwenden.

Eine Variable ist nicht dasselbe wie eine Tabelle; beide sind vollkommen unterschiedlich und haben auch anderen Inhalt. Eine Variable ist vom Typ Ganzzahl, Text, Bild, etc. und enthält einen Wert. Eine Tabelle ist dagegen kein “Inhalt” wie es ein Wert vom Typ Zahl ist.

Die Lösung ist, eine Variable vom Typ Zeiger zu verwenden.

Wir setzen diese Variable, es ist eine lokale Variable:

 C_POINTER($TablePointer)

Diese Variable existiert im Speicher. Um einen Wert zuzuweisen, verwenden wir folgende Syntax:

 $TablePointer:=->[INTERVENTIONS]

Wie für Variablen üblich, haben wir:

  • Initialisierung
  • Wertzuweisung

und später können wir die Tabelle Interventions überall, wo sie verwendet wird, mit dieser Variablen ersetzen, die wir dann noch "dereferenzieren" müssen.

Da der gesamte Code hier liegt, lässt sich der Bereich einfach durch Ändern der Tabelle und Kopieren-Einsetzen dieser 2 Zeilen Code ersetzen, vorausgesetzt, wir haben zuvor einen Zeiger auf die Tabelle gesetzt, der sie dann gemäß der Seitennummer wählt.

Wir nehmen also den zuvor geschriebenen Code und geben folgendes ein:

  • Sind wir auf Seite 1, zeigen wir auf die Einsätze (->[INTERVENTIONS])
  • Sind wir auf Seite 2, zeigen wir auf die Techniker (->[TECHNICIANS])

Damit müssen wir hier nicht mehr die Seiten testen und wir brauchen diese doppelte Programmierung nicht mehr.

Wir haben einen Code, mit dem wir:

  • Die entsprechende Tabelle passend zur Seite setzen
  • Und dann die Aktion unabhängig von der Seite setzen

Dasselbe Prinzip gilt für Suchläufe:

  • Wir ziehen den Code hierhin
  • Entfernen hier komplett die "Case of" Anweisung
  • Und ersetzen "Intervention" mit einem Zeiger auf die Tabelle, da wir auf Seite 2 sind

Verweist der Zeiger auf "Technicians", läuft die Suche in der Tabelle "Technicians". Die Anzahl der gefundenen Datensätze ist die Anzahl der gefundenen Datensätze in der Tabelle "Technicians".

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Zeiger

 
ARTIKELVERWENDUNG

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