4D v16.3METHOD SET CODE |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
METHOD SET CODE
|
METHOD SET CODE ( Pfad ; Code {; *} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Pfad | Text, Array Text |
![]() |
Text oder Text Array mit einem oder mehreren Methodenpfaden | |||||
Code | Text, Array Text |
![]() |
Code der angegebenen Methode(n) | |||||
* | Operator |
![]() |
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:
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)
Produkt: 4D
Thema: Zugriff Designobjekte
Nummer:
1194
Erstellt: 4D v13
Geändert: 4D v14
Geändert: 4D v15
4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)