Víme, že někdy chcete změnit vlastnosti více metod, aniž byste museli otevírat dialogové okno vlastností pro každou metodu.
Například chcete nastavit všechny metody do stavu„Lze spustit v preemptivním režimu“ a poté zkompilovat databázi. Při chybách kompilace tak získáte přehled o metodách, které je třeba upravit tak, aby byly preemptivní.
Použití METHOD GET NAMES načtete z databáze seznam metod a poté pomocí příkazu METHOD SET ATTRIBUTES příkazu pro změnu atributů, můžete změnit všechny najednou!
Zde je příklad nastavení všech metod projektu do preemptivního režimu:
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; "preemptivní"; "schopný")
// Change the "preemptive" attribute value for all methods
For ($i;1;Size of array($arrName)
METHOD SET ATTRIBUTES (
$arrName{$i};$attributes)
End for
Použití kolekce pro manipulaci s vlastnostmi
4D má nyní nový typ, kolekce, a mnoho připravených metod pro manipulaci s kolekcemi.
Jak tedy tento nový typ použít? Do kolekce vkládáte názvy metod a vlastnosti, které můžete vyhledávat, upravovat nebo jednoduše zobrazovat v poli seznamu typu kolekce.
Zde je příklad pro uložení všech vlastností metod do kolekce:
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
Po úpravě atributů můžete výsledek uložit pomocí jednoduché smyčky na kolekci:
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