Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
METHOD SET CODE

METHOD SET CODE 


 

METHOD SET CODE ( Pfad ; Code {; *} ) 
Parameter Typ   Beschreibung
Pfad  Text, Array Text in Text oder Text Array mit einem oder mehreren Methodenpfaden
Code  Text, Array Text in Code der angegebenen Methode(n)
Operator in Mit Stern: Befehl gilt für Host Datenbanken, wenn er von einer Komponente ausgeführt wird. (außerhalb dieses Kontexts wird der Parameter ignoriert.)

Der Befehl METHOD SET CODE ersetzt den Code der Methode(n), angegeben im Parameter Pfad mit dem im Parameter Code übergebenen Inhalt. Dieser Befehl kann auf den Code aller Methodentypen zugreifen: Datenbankmethoden, Klassendefinitionen, Trigger, Projekt-, Formular- und Objektmethoden.
Existiert eine Methode nicht, wird sie mit dem Inhalt des Parameters Code erstellt. 

Hinweis für Projekte: 

  • Das Erstellen einer neuen Methode mit diesem Befehl ist nur für Datenbankmethoden, Trigger und Projektmethoden möglich. 
  • Der Code wird mit oder ohne Token in neu erstellten Projekten gespeichert, abhängig von der Option Token in Projektquelldateien einschließen in den Voreinstellungen.

Sie können zwei Syntaxarten verwenden, die eine basiert auf Text Arrays, die andere auf Textvariablen:

 C_TEXT(tVpath// Textvariablen
 C_TEXT(tVcode)
 METHOD SET CODE(tVpath;tVcode) // Code einer einzelnen Methode

 ARRAY TEXT(arrPaths;0) // Text Arrays
 ARRAY TEXT(arrCodes;0)
 METHOD SET CODE(arrPaths;arrCodes) // Code mehrerer Methoden

Sie können die beiden Syntaxarten nicht miteinander mischen. 

Übergeben Sie einen ungültigen Pfadnamen, führt der Befehl nichts aus.

Wird METHOD SET CODE aufgerufen, werden die Methodenattribute standardmäßig zurückgesetzt. Enthält jedoch die erste Zeile der Methode Code gültige Metadaten (in JSON), werden damit die Methodenattribute spezifiziert und die erste Zeile wird nicht eingefügt. Beispiel für Metadaten:

  // %attributes = {"invisible":true,"lang":"fr","folder":"Security"}

Hinweis: Diese Metadaten werden automatisch vom Befehl METHOD GET CODE generiert. Weitere Informationen dazu finden Sie unter dem Befehl METHOD SET ATTRIBUTES.

Für die Eigenschaft "Ordner" der Metadaten gilt folgendes:

  • Ist diese Eigenschaft vorhanden und entspricht einem gültigen Ordner, wird die Methode in ihren Explorer-Ordner gesetzt.
  • Ist diese Eigenschaft nicht vorhanden oder existiert der Ordner nicht, macht der Befehl keine Änderung auf der Ebene des Explorer-Ordners.
  • Enthält diese Eigenschaft einen leeren String, wird die Methode auf die Root Ebene gesetzt.

Sie können diesen Befehl über eine Komponente ausführen, Sie müssen dann den Parameter * übergeben, da der Code der Komponente im Nur-Lesen Modus ist. Lassen Sie den Parameter * weg, wird der Fehler -9763 erzeugt.

Dieses Beispiel exportiert und importiert alle Projektmethoden einer Anwendung:

 $root_t:=Get 4D folder(Database folder)+"Methoden"+Folder separator
 ARRAY TEXT($fileNames_at;0)
 CONFIRM("Import oder Export der Methoden?";"Import";"Export")
 
 If(OK=1)
    DOCUMENT LIST($root_t;$fileNames_at)
    For($loop_l;1;Size of array($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       DOCUMENT TO BLOB($root_t+$filename_t;$blob_x)
       METHOD SET CODE($filename_t;BLOB to text($blob_x;UTF8 text without length))
    End for
 Else
    If(Test path name($root_t)#Is a folder)
       CREATE FOLDER($root_t;*)
    End if
    METHOD GET PATHS(Path project method;$fileNames_at)
    METHOD GET CODE($fileNames_at;$code_at)
    For($loop_l;1;Size of array($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       SET BLOB SIZE($blob_x;0)
       TEXT TO BLOB($code_at{$loop_l};$blob_x;UTF8 text without length)
       BLOB TO DOCUMENT($root_t+$filename_t;$blob_x)
    End for
 End if
 SHOW ON DISK($root_t)



Siehe auch 

METHOD GET CODE

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Zugriff Designobjekte
Nummer: 1194

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v13
Geändert: 4D v14
Geändert: 4D v15
Geändert: 4D v18 R3

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)