Gli oggetti sono fantastici, lo dicono tutti. Oltre alla loro straordinaria flessibilità, sono incredibilmente veloci. È possibile cercare tra milioni di record in una frazione di secondo. 4D v16 consente persino di ordinare in base agli attributi degli oggetti e di eseguire calcoli come la somma o la media.
Con 4D v16 R4, il linguaggio 4D è stato drasticamente migliorato per rendere l’uso degli oggetti molto più comodo, grazie al supporto della notazione degli oggetti. Veloce, flessibile, efficiente e ora anche elegante!
Cosa è possibile fare?
Gli oggetti del linguaggio 4D possono essere gestiti utilizzando la notazione standard degli oggetti per ottenere o impostare i loro valori. Con la notazione a oggetti:
- si può accedere alle proprietà degli oggetti utilizzando il simbolo del “punto” (ad esempio, employee.name)
- si può accedere agli elementi della collezione di oggetti usando le parentesi quadre (ad esempio, stanze[2])
- si può accedere a sotto-oggetti e proprietà di sotto-oggetti incorporati tramite una sequenza di simboli (ad esempio, employee.children[2].age).
Buone notizie, ora avete un mezzo per sbarazzarvi di tutte quelle OB Get e OB SET nel vostro codice! E sapete cosa? L’esecuzione del codice è 10 volte più veloce con la notazione a oggetti rispetto a OB Get/OB SET …!
Esempi di notazione a oggetti
Supponiamo di avere un oggetto $o contenente le seguenti informazioni:
{ "Lastname": "Doe", "Firstname": "John", "Avatar": "[object Picture]" "Child": [{ "Name": "Susan", "Age": 3 } , { "Name": "Bob", "Age": 8 }] }
Per recuperare l’attributo “Firstname“, si scrive:
Con la notazione a oggetti
C_TEXT($name)
$name :=$o.Firstname
Senza notazione degli oggetti
C_TEXT($name)
$name :=OB Get($o; "Firstname")
Per recuperare l’attributo “Name” del secondo figlio, si scrive:
Con notazione dell’oggetto
C_TEXT($name)
$name :=$o.Child[1].Name
Senza notazione dell’oggetto
ARRAY OBJECT($aChild;0)
C_TEXT ($name)
OB GET ARRAY ($o; "Figlio";$aChild)
$name :=OB GET($aChild{2}; "Nome")
Per aggiungere altri bambini, si scrive:
Con la notazione a oggetti
$o.Child[2].Name:="Mike"
$o .Child[2].Age:=9
Senza notazione dell’oggetto
ARRAY OBJECT($aChild;0)
C_OBJECT ($kid)
OB GET ARRAY ($o; "Bambino";$aChild)
OB SET ($kid; "Nome"; "Mike")
OB SET ($kid; "Età";9)
APPEND TO ARRAY ($aChild;$kid)
OB SET ARRAY ($o; "Bambino";$aChild)
Per saperne di più sulle collezioni >
Per aggiungere un’immagine in un attributo di oggetto, si scrive:
Con la notazione degli oggetti
C_PICTURE($img)
READ PICTURE FILE("img.jpg";$img )
$o .Avatar:=$img
Senza la notazione dell’oggetto
C_PICTURE($img )
READ PICTURE FILE ("img.jpg";$img )
OB SET ($o; "avatar";$img)
Per saperne di più su Immagini negli oggetti >
Per utilizzare la notazione a puntatore, si scrive:
Con la notazione a oggetti
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=$p->Nome
Senza notazione degli oggetti
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=OB Get($p->; "Firstname")
Come si abilita la notazione a oggetti?
Per poter usufruire della notazione degli oggetti, è necessario andare alla pagina Impostazioni di compatibilità nella finestra di dialogo Impostazioni database e fare clic sul pulsante “Attiva notazione oggetti”:
Ci sono alcuni prerequisiti prima di attivare la notazione degli oggetti, ma vi aiutiamo a prepararvi: