Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
METHOD SET CODE
|
METHOD SET CODE ( rota ; codigo {; *} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
rota | Texto, Array texto |
![]() |
Texto ou array texto que contém uma ou mais rotas de método | |||||
codigo | Texto, Array texto |
![]() |
Código dos métodos designados | |||||
* | Operador |
![]() |
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étodos de banco, triggers, métodos projeto, métodos formulário e métodos objeto. Se um método não existir, é criado com os conteúdos codigo.
O comando pode acessar o código existente de todos os tipos de métodos: métodos de banco de dados, triggers, métodos projeto, métodos formulário e métodos objeto.
Se um método não existir, é criado com o conteúdos de código.
Nota para projetos:
Criar um novo método com esse comando só é possível para métodos de bancos de dados, triggers e métodos de projeto
O código é salvo com ou sem tokens em projetos criados recentemente dependendo da opção Include tokens in project source files nas Preferências.
Pode usar dois tipos de sintaxe, baseadas em arrays texto ou em variáveis texto:
C_TEXT(tVpath) // variáveis texto
C_TEXT(tVcode)
METHOD SET CODE(tVpath;tVcode) // código de um só método
ARRAY TEXT(arrPaths;0) // arrays texto
ARRAY TEXT(arrCodes;0)
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.
Quando se chama METHOD SET CODE, os atributos dos métodos se reinicializam por padrão. No entanto, se a primeira linha do codigo de um método contém metadados válidos (expressados em JSON), 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","folder":"Security"}
Nota: Estes metadados são gerados automaticamente pelo comando METHOD GET CODE. Para saber mais sobre atributos suportados, veja o comando METHOD SET ATTRIBUTES.
Concernente a propriedade "folder" dos metadados:
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.
Este exemplo exporta e importa a 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
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)
Produto: 4D
Tema: Accesso aos Objetos de Design
Número
1194
Criado por: 4D v13
Modificado: 4D v14
Modificado: 4D v15
Modificado: 4D v18 R3
Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)