Ändern Sie die Eigenschaften mehrerer Methoden auf einmal per Code

Automatisch übersetzt von Deepl

Wir wissen, dass Sie manchmal die Eigenschaften mehrerer Methoden ändern möchten, ohne den Eigenschaftsdialog für jede Methode öffnen zu müssen.

Sie möchten zum Beispiel alle Methoden auf den Status„Kann im präemptiven Modus ausgeführt werden“ setzen und dann Ihre Datenbank kompilieren. So erhalten Sie bei Kompilierungsfehlern einen Überblick über die Methoden, die Sie so ändern müssen, dass sie präemptiv sind.

Mit dem Befehl METHOD GET NAMES Befehls, um die Liste der Methoden aus Ihrer Datenbank abzurufen, und dann mit dem METHOD SET ATTRIBUTES um die Attribute zu ändern, können Sie sie alle gleichzeitig ändern!

Hier ist ein Beispiel, bei dem alle Projektmethoden auf den präemptiven Modus eingestellt werden:

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; "preemptive"; "capable")

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

Verwendung einer Sammlung zur Bearbeitung von Eigenschaften

4D hat jetzt einen neuen Typ, Sammlungen, und viele gebrauchsfertige Methoden, um Sammlungen zu handhaben.

Wie verwenden Sie diesen neuen Typ? Sie fügen Methodennamen und Eigenschaften in eine Sammlung ein, um sie zu suchen, zu ändern oder einfach in einem Listenfeld vom Typ Sammlung anzuzeigen.

Hier ist ein Beispiel für die Speicherung aller Methodeneigenschaften in einer Sammlung:

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("name";$arrName{ xml

End for

Nachdem Sie die Attribute bearbeitet haben, können Sie das Ergebnis mit einer einfachen Schleife in der Sammlung speichern:

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

Demo: Methodeneigenschaften per Code ändern

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.