Modificare le proprietà di più metodi contemporaneamente tramite codice

Tradotto automaticamente da Deepl

Sappiamo che a volte si desidera modificare le proprietà di più metodi senza dover aprire la finestra di dialogo delle proprietà per ciascun metodo.

Ad esempio, si desidera impostare tutti i metodi sullo stato“Può essere eseguito in modalità preventiva“, quindi compilare il database. In questo modo, in caso di errori di compilazione, si ottiene una panoramica dei metodi da modificare per renderli preemptive.

Utilizzando il comando METHOD GET NAMES per recuperare l’elenco dei metodi dal database e poi usare il comando METHOD SET ATTRIBUTES per modificare gli attributi, consente di modificarli tutti contemporaneamente!

Ecco un esempio di impostazione di tutti i metodi del progetto in modalità preemptive:

ARRAY TEXTOB SET$i($arrName;0)
C_OBJECT ($attributes)

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

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

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

Utilizzare una collezione per manipolare le proprietà

4D ha ora un nuovo tipo, le collezioni, e molti metodi pronti all’uso per gestire le collezioni.

Come si usa questo nuovo tipo? Si inseriscono i nomi dei metodi e delle proprietà in una collezione per cercarli, modificarli o semplicemente visualizzarli in una casella di riepilogo di tipo collection.

Ecco un esempio per memorizzare tutte le proprietà dei metodi in una raccolta:

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

Dopo aver modificato gli attributi, è possibile salvare il risultato con un semplice ciclo sull’insieme:

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

Dimostrazione: Modificare le proprietà dei metodi tramite codice

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.