PROCEDURE-Befehl

Markiert den Anfang einer Prozedur in einer Programmdatei.

PROCEDURE ProcedureName 
   [LPARAMETERS parameter1[,parameter2},...]
   Commands 
   [RETURN [eExpression]]
ENDFUNC

- Oder -

PROCEDURE ProcedureName([parameter1[,parameter2},...])
   Commands 
   [RETURN [eExpression]]
ENDFUNC

Parameter

  • ProcedureName
    Gibt den Namen der zu erstellenden Prozedur an.

Hinweise

PROCEDURE ist eine Anweisung in einer Programmdatei, die den Beginn der Prozedur in der Programmdatei angibt und den Namen der Prozedur definiert. Prozedurnamen müssen mit einem Buchstaben oder Unterstrich beginnen und können jede beliebige Kombination aus Buchstaben, Zahlen und Unterstrichen enthalten.

In Visual FoxPro können Prozedurnamen bis zu 254 Zeichen lang sein.

Kommentare können nach PROCEDURE und ENDPROC in dieselbe Zeile gestellt werden. Diese Kommentare werden beim Kompilieren und Ausführen des Programms ignoriert.

Der Anweisung PROCEDURE folgt eine Reihe von Befehlen, die die Prozedur bilden. RETURN kann überall in der Prozedur eingefügt werden, um die Steuerung an das aufrufende Programm oder ein anderes Programm zurückzugeben, und um einen Wert zu definieren, der von der Prozedur zurückgegeben wird. Wenn Sie in der Funktion keinen RETURN-Befehl einfügen, wird beim Verlassen der Funktion ein RETURN-Befehl automatisch ausgeführt. Wenn mit dem RETURN-Befehl kein Wert zurückgegeben wird (oder wenn dieser Befehl wie oben automatisch ausgeführt wird), weist Visual FoxPro dem Rückgabewert den Wert Wahr (.T.) zu.

Die Prozedur wird mit dem ENDPROC-Befehl beendet. Dieser Befehl ist optional; die Prozedur wird beendet, wenn sie einen anderen PROCEDURE-Befehl, einen FUNCTION-Befehl oder das Ende der Programmdatei entdeckt.

Anmerkung   Sie können normalen ausführbaren Programmcode nicht nach Prozeduren in einer Programmdatei einfügen; nur Prozeduren, benutzerdefinierte Funktionen und Klassendefinitionen können auf den ersten PROCEDURE- oder FUNCTION-Befehl in der Datei folgen.

Wenn Sie eine Prozedur mit DO ProcedureName ausführen, sucht Visual FoxPro in einer bestimmten Reihenfolge nach der Prozedur. Visual FoxPro durchsucht folgende Elemente:

  1. Das Programm, in dem DO ProcedureName steht.
  2. Die aktuelle Datenbank.
  3. Die mit SET PROCEDURE geöffneten Prozedurdateien.
  4. Programme in der Ausführungsfolge. Visual FoxPro durchsucht Programmdateien, beginnend mit dem Programm, das als letztes ausgeführt wurde, bis hin zu dem Programm, das als erstes ausgeführt wurde.
  5. Eine eigenständige Programmdatei. Wenn eine Programmdatei mit demselben Namen wie die in DO angegebene Datei gefunden wird, führt Visual FoxPro das Programm aus. Wenn der Name einer übereinstimmenden Programmdatei nicht auffindbar ist, generiert Visual FoxPro eine Fehlermeldung.

Geben Sie im DO-Befehl die IN-Klausel an, um eine Prozedur auszuführen, die Bestandteil einer bestimmten Datei ist.

Standardmäßig werden Parameter als Wert an Prozeduren übergeben. Weitere Informationen über die Übergabe von Parametern an Prozeduren über einen Verweis finden Sie in SET UDFPARMS. Es können maximal 27 Parameter an eine Prozedur übergeben werden. Parameter können an eine Prozedur durch eine PARAMETERS- oder LPARAMETERS-Zuweisung innerhalb der Prozedur übergeben werden oder aber durch Anhängen einer Liste von Parametern unmittelbar nach PROCEDURE ProcedureName. Die Parameter müssen hierbei in Klammern stehen und durch Kommas voneinander getrennt werden.

Weitere Informationen zur Verwendung des PROCEDURE-Befehls beim Erstellen von Klassen finden Sie in der Hilfe unter DEFINE CLASS und Fette Eingaben in Code von Klassen, Objekten und Variablen.

Beispiel

Das folgende Beispiel verdeutlicht, wie eine Prozedur aufgerufen wird, um eine bestimmte Aufgabe, wie den Eintrag in eine Protokolldatei, auszuführen. Die Prozedur öffnet die Protokolldatei (die in dem Beispiel als vorhanden vorausgesetzt wird), stellt einen Eintrag zusammen, der auf Informationen basiert, die in Parametern übergeben werden, trägt den Eintrag aus und schließt die Datei. Die Prozedur wird mit einem DO-Befehl, ähnlich dem zu Anfang des Programms, aufgerufen.

DO MakeLogEntry WITH "Logged in", "jsmith"

PROCEDURE MakeLogEntry
 PARAMETERS message, username
 pnHandle = FOPEN("LOG2.TXT",2)     && Assume the file exists
 pnSize = FSEEK(pnHandle,0,2)           && Move to end of file
 logEntry = dtoc(date())+","+time()+","+username+","+message
 =FPUTS(pnHandle, logEntry)
 =FCLOSE(pnHandle)  && Close file
ENDPROC

Das folgende Beispiel zeigt, wie eine Prozedur aufgerufen wird, um einen Wert zurückzugeben.

SET CENTURY ON
? longdate(({^1998-02-16}))  && Displays Monday, February 16, 1998

PROCEDURE longdate
 PARAMETER mdate
 RETURN CDOW(mdate) + ", " + MDY(mdate)
ENDPROC

Siehe auch

FUNCTION | LPARAMETERS | LOCAL | PARAMETERS | PARAMETERS( ) | PRIVATE | PUBLIC | RETURN | SET PROCEDURE | SET UDFPARMS