4D v13.4

METHOD SET CODE

Inicio

 
4D v13.4
METHOD SET CODE

METHOD SET CODE 


 

METHOD SET CODE ( ruta ; codigo {; operador} ) 
Parámetro Tipo   Descripción
ruta  Texto, Array texto in Texto o array texto que contiene una o varias rutas de métodos
codigo  Texto, Array texto in Código de los métodos designados
operador  Operador in Si se pasa = el comando se aplica a la base local cuando se ejecuta desde un componente (parámetro ignorado fuera de este contexto)

El comando METHOD SET CODE modifica el código de los métodos designados por el parámetro ruta con el contenido pasado en el parámetro codigo. Este comando puede acceder al código de todos los tipos de métodos: métodos base, triggers, métodos proyecto, métodos formulario y métodos objeto.

En el caso de un método proyecto: si este método ya existe en la base, su contenido se remplaza; si no existe, se crea con sus contenidos. 

Puede utilizar dos tipos de sintaxis, basadas en arrays texto o en variables texto:

 C_TEXT(tVpath// variables texto
 C_TEXT(tVcode)
 METHOD SET CODE(tVpath;tVcode) // código de un sólo método

 ARRAY TEXT(arrPaths;0) // arrays texto
 ARRAY TEXT(arrCodes;0)
 METHOD SET CODE(arrPaths;arrCodes) // código de varios métodos

No es posible mezclar las dos sintaxis.

Si pasa una ruta de acceso invalida, el comando no hace nada. 

Si la primera línea del codigo de un método contiene metadatos validos, se utilizan para definir los atributos del método y no se inserta la primera línea. Ejemplo de metadatos:

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

Nota: estos metadatos son generados automáticamente por el comando METHOD GET CODE.

Puede ejecutar el comando desde un componente, en este caso, debe pasar el parámetro * por el acceso al código del componente en modo sólo lectura. Si omite el parámetro * en este contexto, se genera el error -9763l.

Ejemplo  

Este ejemplo exporta e importa la totalidad de los métodos proyecto de una aplicación:

 $root_t:=Get 4D folder(Database Folder)+"methods"+Folder separator
 ARRAY TEXT($fileNames_at;0)
 CONFIRM("Import or export methods?";"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)

 
PROPIEDADES 

Producto: 4D
Tema: Acceso a los objetos de desarrollo
Número 1194

 
INDEX

Lista alfabética de los comandos

 
HISTORIA 

New
Creado por: 4D v13

 
VER TAMBIÉN 

METHOD GET CODE