4D v16 R6 poskytuje pokročilé možnosti manipulace s kolekcemi díky více než 40 metodám, které lze použít s objektovou notací. Jejich použitím budete moci psát kód efektivnějším způsobem. Nový kód je skvělý, ale také jsme pamatovali na to, že tento nový kód musí být snadno integrovatelný s vaším stávajícím kódem. Proto jsme zavedli speciální příkazy pro převod kolekcí na pole nebo řetězce a naopak.
Tento článek je druhým ze série příspěvků o manipulaci s kolekcemi pomocí metod přidaných v 4D v16 R6. Chcete-li prozkoumat další možnosti, stáhněte si náš databázový příklad s 12 různými příklady demonstrujícími nesčetné možnosti metod kolekcí!
Příklad databáze: Správa kolekcí
Nyní se zaměříme na převody kolekcí a několik příkladů kódu.
Pole a kolekce
KOLEKCE NA POLE
Stránka COLLECTION TO ARRAY naplní pole prvky z kolekce:
ARRAY TEXT($artFruits;0)
$fruits :=New collection("Orange"; "Banana"; "Apple"; "Grape")
// Convert the $fruits collection to a text array
COLLECTION TO ARRAY (
$fruits;$artFruits)
//$artFruits{1}="Orange"
//$artFruits{2}="Banana"
//..
Stejný příkaz lze použít také k naplnění několika polí z kolekce objektů:
ARRAY TEXT($city;0)
$col :=New collection(New object("name"; "Cleveland"; "zc";35049))
$col .push(New object("name"; "Blountsville"; "zc";35031))
// Convert $col collection to 2 arrays
COLLECTION TO ARRAY ($col;$city; "name";$zipCode; "zc")
//$city{1}="Cleveland"
//$city{2}="Blountsville"
//...
//$zipCode{1}="35049"
//$zipCode{2}="35031"
//...
POLE DO KOLEKCE
Odpovídajícím způsobem můžete pole převést na kolekci pomocí příkazu ARRAY TO COLLECTION:
$colFruits:=New collection
(
// Convert $artFruits array to a collection
ARRAY TO COLLECTION$colFruits;$artFruits)
//$colFruits=[Orange,Banana,Apple,Grape]
Nebo naplňte kolekci objektů z několika polí:
$colCity:=New collection
// Convert $city and $zipCode arrays to a collection of objects
ARRAY TO COLLECTION ($colCity;$city; "cityName";$zipCode; "Zip")
//$colCity[0]={cityName:Cleveland,Zip:35049}
//$colCity[1]={cityName:Blountsville,Zip:35031}
manipulace s řetězci pomocí kolekcí
. Split string rozdělí řetězec na kolekci podřetězců na základě oddělovacích znaků:
$text:="John;Doe;120 jefferson st.;Riverside;; NJ; 08075"
$col :=Split string($text;";")
//$col:=["John","Doe","120 jefferson st.","Riverside",""," NJ"," 08075"]
Některé prvky kolekce můžete také upravit a vytvořit nový řetězec pomocí příkazu join metodu:
$col[2]:="95 S Market St #240"
$col [3]:="San Jose"
$col [5]:="CA"
$col [6]:="95113"
$text :=$col.join(";")
//$text="John;Doe;95 S Market St #240;San Jose;;CA;95113"
O manipulaci s kolekcemi budou ještě další příspěvky, zůstaňte s námi!