4D v14

Video Skript

Home

 
4D v14
Video Skript

Video Skript  


 

 

Dieses Video zeigt, wie Sie Methoden aufrufen und Parameter verwenden. Mehr zu Parametern vom Typ Zeiger im nächsten Video.

Ziel der generischen Programmierung ist, die Entwicklung zu optimieren und Wartung und Übertragbarkeit zu vereinfachen.

In der Datenbankmethode "On Startup" haben wir bereits Aufrufen einer Methode verwendet. Wir haben die Methode NAVIGATOR aufgerufen.

In den ersten Programmierschritten haben wir Schaltflächen konfiguriert, um eine bestimmte Seite im Formular aufzurufen.

Das wollen wir jetzt optimieren, so dass es nur eine Methode für alle Steuerungsschaltflächen gibt (All, Query, Order by, usw.).

  • Öffnen Sie den Explorer
  • Legen Sie eine neue Methode an
  • Eine Projektmethode mit Namen NAVIGATOR_FUNCTIONS

Sie empfängt 2 Parameter:

  •  Der erste bezieht sich auf die Aktion, die als Text ausgeführt werden soll (Suchen, Sortieren, etc.)
  •  Der zweite entspricht der Seite, wo die Klicks passieren (1, 2, 3 usw.)

Wir rufen diese Methode wie folgt auf:

In einer Schaltfläche rufen wir NAVIGATOR_FUNCTIONS auf

  • Den Text zur Aktion, die wir ausführen wollen
  • Und hier als 2. Parameter die betreffende Seite

NAVIGATOR_FUNCTIONS("All";FORM Get current page)
Wir wollen die Funktionen zur Steuerung für "All" verwenden und die Seite als 2. Parameter übergeben.

Es gibt zwei Wege, um die Parameter der Methode NAVIGATOR_FUNCTIONS zu typisieren:

  • Der 1. Parameter ist ein Text: C_TEXT($1)
  • Der 2. eine Lange Ganzzahl: C_LONGINT($2)

Sie sehen, dass wir die Syntax $1, $2, ... $n verwenden, um jeden Parameter zu finden.

Um Ihre Methode leicht lesbar zu machen, empfehlen wir für Variablen explizite Namen, denen Sie den Wert der empfangenen Parameter zuweisen. Schreiben Sie also:

 C_TEXT($1;$Action)

da wir in einer Compiler Direktive C_TEXT mehrere Variablen deklarieren können.

Hier die 2. Variable für die Seitennummer:

 C_LONGINT($2;$PageNum)

für den Wert von $1 in $Action und den Wert von $2 in $PageNumber schreiben Sie:

 $Action:=$1
 $PageNumber:=$2

Die restliche Methode ist eine Anpassung an das, was wir schon früher als Code angelegt haben; wir müssen nur die Aktion an die Anfrage anpassen und sie gemäß der Seite, also der gewählten Tabelle konfigurieren:

Wir verwenden:

  • Ein Case of

:($Action="All")

  • Hier finden wir den Code der Schaltfläche "All" wieder
  • Schneiden Sie ihn aus
  • Und passen ihn in der Methode an

Was passiert mit der Information, die ersetzt werden soll?

  • Die Funktion FORM Get current page wird nicht mehr benötigt, da sie von der aufrufenden Methode gesendet wird. Wir ersetzen sie durch $PageNumber
  • Im Moment müssen wir den Rest nicht verändern.

Wenn wir zu den Zeigern kommen, ersetzen wir das hier mit einer generischen Methode.

Wir können dasselbe mit der Schaltfläche Query ausführen.

  • Zum Kopieren ziehen wir den Code mit gedrückter ALT-Taste
  • Dann haben wir eine Aktion "Alle" und eine Aktion "Suchen"
  • Wir kopieren den Code von der Schaltfläche "All"
  • Setzen ihn in die Schaltfläche "Query"
  • Ersetzen die Aktion hier
  • Kopieren den Code von der Schaltfläche "Query"
  • Und gehen zur Methode hier zurück

und, wie zuvor, ersetzen wir FORM Get current page durch die empfangene Variable.

Wir setzen einen Unterbrechungspunkt und prüfen, ob wir beim Ausführen des Formulars zu dieser Methode gehen.

Klicken wir auf "All", sehen wir die Methode in der Ausführung, uns interessiert aber speziell das Ablaufen der Methoden:

  • Die zuletzt aufgerufene ist ganz oben
  • Die vorige ist unten

Bei Doppelklick auf diese Methode erscheint der Code, der uns zu diesem Punkt führt und wir sehen, dass die Methode NAVIGATOR_FUNCTIONS aufgerufen wurde (mit den Parametern "All", FORM Get current page).

Die Methode wurde empfangen. Sie hat die Parameter: $1 = "All", $2 = Seitennummer -- hier wird Seite 1 empfangen.

Als nächstes kommt $Action is "All", wir gelangen also zu diesem Teil
Dann $PageNumber is 1, also verwenden wir ALL RECORDS in der Tabelle Interventions, um die Anzahl der betroffenen Datensätze zu setzen.

Wir entfernen dann den Unterbrechungspunkt und führen die Methode aus:

Klicken Sie auf Technician und suchen z.B. nach Namen, die "bon" enthalten, erscheint BONAPARTE. Klicken Sie auf All, sehen Sie, dass die Methode korrekt arbeitet.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Generisches Programmieren (ohne Zeiger)

 
ARTIKELVERWENDUNG

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