4D v16.3

METHOD SET CODE

Home

 
4D v16.3
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: Datenbank-, Projekt-, Formular-, Objektmethoden und Trigger.

Bei einer Projektmethode gilt folgendes: Existiert diese Methode bereits in der Datenbank, wird ihr Inhalt ersetzt; existiert sie nicht, wird sie mit ihrem Inhalt erstellt. 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

 
GESCHICHTE 

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

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)