Alterar as propriedades de vários métodos ao mesmo tempo por código

Tradução automática de Deepl

Sabemos que, por vezes, se pretende alterar as propriedades de múltiplos métodos sem ter de abrir o diálogo de propriedades para cada método.

Por exemplo, pretende definir todos os métodos para o estado“Pode ser executado em modo preventivo“, e depois compilar a sua base de dados. Assim, com erros de compilação, obtém uma visão geral dos métodos a modificar para ser preemptivo.

Usando o METHOD GET NAMES para recuperar a lista de métodos da sua base de dados, e depois utilizando o comando METHOD SET ATTRIBUTES comando para modificar os atributos, permite-lhe modificá-los todos ao mesmo tempo!

Aqui está um exemplo que define todos os métodos de projecto para o modo preventivo:

ARRAY TEXT($arrName;0)
C_OBJECT ($attributes)

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

// Create object with the "preemptive" attribute set to "capable"
OB SET ($attributes; "preemptivo"; "capaz")

// Change the "preemptive" attribute value for all methods
For ($i;1;Size of array($arrName)
METHOD SET ATTRIBUTES (
$arrName{$i};$attributes)
End for

Utilizar uma colecção para manipular as propriedades

4D tem agora um novo tipo, colecções, e muitos métodos prontos a usar para manusear colecções.

Então, como se utiliza este novo tipo? Insere-se nomes de métodos e propriedades numa colecção para pesquisar, modificar, ou simplesmente exibi-la numa caixa de listagem de tipo de colecção.

Aqui está um exemplo para armazenar todas as propriedades do método numa colecção:

C_OBJECT$i$attributes($attributes)
C_COLLECTION (colMethod)
ARRAY TEXT ($arrName;0)
colMethod :=New collection()

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

For ($i;1;Size of array($arrName)
$attributes :=New object()
// Retrieve the attributes for each method
METHOD GET ATTRIBUTES ($arrName{$i};$attributes)

// Add item in the collection
colMethod .push(New object("nome";$arrName{ xml

End for

Depois de editar os atributos, pode guardar o resultado com um simples laço na colecção:

C_OBJECT($item;$tmp)
// Loop for each item in the collection
For each ($item;colMethod)
// Save attributes
$tmp :=$item.attributes
METHOD SET ATTRIBUTES ($item.name;$tmp)
End for each

Demonstração: Alterar propriedades do método por código

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.