4D v16.3OB Get |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
OB Get
|
OB Get ( objet ; propriété {; type} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
objet | Objet, Champ objet |
![]() |
Objet structuré | |||||
propriété | Texte |
![]() |
Nom de la propriété à lire | |||||
type | Entier long |
![]() |
Type dans lequel convertir la valeur | |||||
Résultat | Booléen, Date, Objet, Pointeur, Réel, Texte |
![]() |
Valeur courante de la propriété | |||||
La commande OB Get retourne la valeur courante de la propriété de l’objet, convertie optionnellement dans le type défini.
objet doit avoir été défini via la commande C_OBJECT ou désigner un champ objet 4D.
Note : Cette commande prend en charge les définitions d'attributs dans les objets 4D Write Pro, comme la commande WP GET ATTRIBUTES (cf. exemple 9). Toutefois, à la différence de WP GET ATTRIBUTES, OB Get ne permet pas de manipuler directement une variable ou un champ image comme valeur d'attribut.
Passez dans le paramètre propriété le libellé de la propriété à lire. Attention, le paramètre propriété tient compte des majuscules/minuscules.
Par défaut, 4D retournera la valeur de la propriété dans son type d’origine. Vous pouvez "forcer" le typage de la valeur retournée à l’aide du paramètre optionnel type. Pour cela, vous pouvez passer dans type une des constantes suivantes, placées dans le thème Types champs et variables :
Constante | Type | Valeur |
Is Boolean | Entier long | 6 |
Is date | Entier long | 4 |
Is longint | Entier long | 9 |
Is object | Entier long | 38 |
Is pointer | Entier long | 23 |
Is real | Entier long | 1 |
Is text | Entier long | 2 |
Is time | Entier long | 11 |
La commande retourne la valeur de la propriété. Plusieurs types de données sont pris en charge. A noter que :
Récupération d’une valeur de type texte :
C_OBJECT($ref)
C_TEXT($prénom)
OB SET($ref;"Prénom";"Harry")
$prénom:=OB Get($ref;"Prénom") // $prénom = "Harry" (texte)
Récupération d’une valeur numérique convertie en entier long :
OB SET($ref ;"age";42)
$age:=OB Get($ref ;"age") // $age est un réel (défaut)
$age:=OB Get($ref ;"age";Is longint) // $age est un entier long
Récupération des valeurs d’un objet :
C_OBJECT($ref1;$ref2)
OB SET($ref1;"nom";"Smith") //$ref1={"nom":"Smith"}
OB SET($ref2;"fils";$ref1) //$ref2={"fils":{"nom":"Smith"}}
$fils:=OB Get($ref2;"fils") //$fils={"name":"john"} (objet)
$nomfils:=OB Get($fils ;"nom") //$nomfils="john" (texte)
Modifications de l’âge d’un employé :
C_OBJECT($ref_john;$ref_jim)
OB SET($ref_john;"nom";"John";"age";35)
OB SET($ref_jim;"nom";"Jim";"age";40)
APPEND TO ARRAY($myArray;$ref_john) // on crée un tableau objet
APPEND TO ARRAY($myArray;$ref_jim)
// on passe l’âge de John de 35 à 25
OB SET($myArray{1};"age";25)
// On remplace l’âge de "John" dans le tableau
For($i;1;Size of array($myArray))
If(OB Get($myArray{$i};"nom")="John")
OB SET($myArray{$i};"age";36) //au lieu de 25
// $ref_john={"nom":"John","age":36}
End if
End for
Désérialisation d’une chaîne date formatée en ISO :
C_OBJECT($object)
C_DATE($anniv)
C_TEXT($chainAnniv)
OB SET($object;"Anniversaire";"1990-12-25T12:00:00Z")
$chainAnniv:=OB Get($object;"Anniversaire")
// $chainAnniv="1990-12-25T12:00:00Z"
$anniv:=OB Get($object;"Anniversaire";Is date)
//$anniv=25/12/90
Utilisation d'objets imbriqués :
C_OBJECT($ref1;$child;$children)
C_TEXT($childName)
OB SET($ref1;"firstname";"John";"lastname";"Monroe")
//{"firstname":"john","lastname";"Monroe"}
OB SET($children;"children";$ref1)
$child:=OB Get($children;"children")
//$son = {"firstname":"John","lastname":"Monroe"} (objet)
$childName:=OB Get($child;"lastname")
//$childName = "Monroe" (texte)
//ou bien
$childName:=OB Get(OB Get($children;"children");"lastname")
// $childName = "Monroe" (texte)
Récupération dans 4D d'une heure stockée dans un objet :
C_OBJECT($obj_o)
C_TIME($set_h;$get_h)
$set_h:=?01:00:00?+1
OB SET($obj_o;"myHour";$set_h)
// $obj_o == {"myHour":3601000}
// L'heure est stockée en millisecondes.
$get_h:=OB Get($obj_o;"myHour";Is time)
// $get_h == ?01:00:01?
// L'heure est correctement lue
Exemples de manipulation de champs objet 4D :
// Définir une valeur
OB SET([Personnes]Identity_OB;"Prénom";$firstName)
OB SET([Personnes]Identity_OB;"Nom";$lastName)
// Lire une valeur
$firstName:=OB Get([Personnes]Identity_OB;"Prénom")
$lastName:=OB Get([Personnes]Identity_OB;"Nom")
Dans la méthode d'un formulaire contenant une zone 4D Write Pro, vous pouvez écrire :
If(Form event=On Validate)
OB SET([MyDocuments]My4DWP;"myatt_Last edition by";Current user)
OB SET([MyDocuments]My4DWP;"myatt_Category";"Memo")
End if
Vous pouvez également lire les attributs personnalisés des documents :
vAttrib:=OB Get([MyDocuments]My4DWP;"myatt_Last edition by")
Produit : 4D
Thème : Objets (Langage)
Numéro :
1224
Créé : 4D v14
Modifié : 4D v15
Modifié : 4D v15 R4
4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)