4D v13.4

METHOD SET CODE

Página Inicial

 
4D v13.4
METHOD SET CODE

METHOD SET CODE 


 

METHOD SET CODE ( rota ; codigo {; *} ) 
Parâmetro Tipo   Descrição
rota  Texto, Array texto in Texto ou array texto que contém uma ou mais rotas de método
codigo  Texto, Array texto in Código dos métodos designados
Operador in Se passado = o comando aplica ao banco de dados local quando é executado de um componente (parâmetro ignorado fora deste contexto)

O comando METHOD SET CODE modifica o código dos métodos designados pelo parâmetro rota com o conteúdo passado no parâmetro codigo. Este comando pode acessar ao código de todos os tipos de métodos: métodós de banco, triggers, métodos projeto, métodos formulário e métodos objeto.

No caso de um método projeto: se o método existir no banco, seu conteúdo é substituído; se não existir, é criado com os seus conteúdos.

Pode usar dois tipos de sintaxe, baseadas em arrays texto ou em variáveis texto:

 C_TEXT(tVpath// variáveis texto</p><p>C_TEXT(tVcode)</p><p>METHOD SET CODE(tVpath;tVcode) // código de um só método

 ARRAY TEXT(arrPaths;0) // arrays texto</p><p>ARRAY TEXT(arrCodes;0)</p><p>METHOD SET CODE(arrPaths;arrCodes) // código de vários métodos

Não é possível misturar as duas sintaxes.

Se passar uma rota de acesso errada, o comando não faz nada.

Se a primeira linha do codigo de um método contém metadados válidos, são usados para definir os atributos do método e a primeira linha não é inserida. Exemplo de metadados:

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

Nota: estes metadados são gerados automaticamente pelo comando METHOD GET CODE.

Pode executar o comando de uma componente, mas neste caso você deve passar o parâmetro * porque o acesso ao código do componente é somente leitura. Se omitir o parâmetro neste contexto, o erro -9763 é gerado.

Exemplo  

 Este exemplo faz a exportação e a importação da totalidade dos métodos projeto de uma aplicação:

 $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&NBSP;
    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)

 
PROPRIEDADES 

Produto: 4D
Tema: Accesso aos Objetos de Design
Número 1194

 
INDEX

Lista alfabética dos comandos

 
HISTÓRIA 

New
Criado por: 4D v13

 
VER TAMBÉM 

METHOD GET CODE