4D v15.4OB Lire |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v15.4
OB Lire
|
OB Lire ( 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 Lire 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_OBJET ou désigner un champ objet 4D.
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 |
Est un booléen | Entier long | 6 |
Est un entier long | Entier long | 9 |
Est un numérique | Entier long | 1 |
Est un objet | Entier long | 38 |
Est un pointeur | Entier long | 23 |
Est un texte | Entier long | 2 |
Est une date | Entier long | 4 |
Est une heure | 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 :
Récupération d’une valeur numérique convertie en entier long :
OB FIXER($ref ;"age";42)
$age:=OB Lire($ref ;"age") // $age est un réel (défaut)
$age:=OB Lire($ref ;"age";Est un entier long) // $age est un entier long
Récupération des valeurs d’un objet :
C_OBJET($ref1;$ref2)
OB FIXER($ref1;"nom";"Smith") //$ref1={"nom":"Smith"}
OB FIXER($ref2;"fils";$ref1) //$ref2={"fils":{"nom":"Smith"}}
$fils:=OB Lire($ref2;"fils") //$fils={"name":"john"} (objet)
$nomfils:=OB Lire($fils ;"nom") //$nomfils="john" (texte)
Modifications de l’âge d’un employé :
C_OBJET($ref_john;$ref_jim)
OB FIXER($ref_john;"nom";"John";"age";35)
OB FIXER($ref_jim;"nom";"Jim";"age";40)
AJOUTER A TABLEAU($myArray;$ref_john) // on crée un tableau objet
AJOUTER A TABLEAU($myArray;$ref_jim)
// on passe l’âge de John de 35 à 25
OB FIXER($myArray{1};"age";25)
// On remplace l’âge de "John" dans le tableau
Boucle($i;1;Taille tableau($myArray))
Si(OB Lire($myArray{$i};"nom")="John")
OB FIXER($myArray{$i};"age";36) //au lieu de 25
// $ref_john={"nom":"John","age":36}
Fin de si
Fin de boucle
Désérialisation d’une chaîne date formatée en ISO :
C_OBJET($object)
C_DATE($anniv)
C_TEXTE($chainAnniv)
OB FIXER($object;"Anniversaire";"1990-12-25T12:00:00Z")
$chainAnniv:=OB Lire($object;"Anniversaire")
// $chainAnniv="1990-12-25T12:00:00Z"
$anniv:=OB Lire($object;"Anniversaire";Est une date)
//$anniv=25/12/90
Utilisation d'objets imbriqués :
C_OBJET($ref1;$child;$children)
C_TEXTE($childName)
OB FIXER($ref1;"firstname";"John";"lastname";"Monroe")
//{"firstname":"john","lastname";"Monroe"}
OB FIXER($children;"children";$ref1)
$child:=OB Lire($children;"children")
//$son = {"firstname":"John","lastname":"Monroe"} (objet)
$childName:=OB Lire($child;"lastname")
//$childName = "Monroe" (texte)
//ou bien
$childName:=OB Lire(OB Lire($children;"children");"lastname")
// $childName = "Monroe" (texte)
Récupération dans 4D d'une heure stockée dans un objet :
C_OBJET($obj_o)
C_HEURE($set_h;$get_h)
$set_h:=?01:00:00?+1
OB FIXER($obj_o;"myHour";$set_h)
// $obj_o == {"myHour":3601000}
// L'heure est stockée en millisecondes.
$get_h:=OB Lire($obj_o;"myHour";Est une heure)
// $get_h == ?01:00:01?
// L'heure est correctement lue
Exemples de manipulation de champs objet 4D :
// Définir une valeur
OB FIXER([Personnes]Identity_OB;"Prénom";$firstName)
OB FIXER([Personnes]Identity_OB;"Nom";$lastName)
// Lire une valeur
$firstName:=OB Lire([Personnes]Identity_OB;"Prénom")
$lastName:=OB Lire([Personnes]Identity_OB;"Nom")
Produit : 4D
Thème : Objets (Langage)
Numéro :
1224
Nom intl. : OB Get
Créé : 4D v14
Modifié : 4D v15
4D - Langage ( 4D v15)
4D - Langage ( 4D v15.4)
4D - Langage ( 4D v15.3)