Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
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 | Expression |
![]() |
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 _O_C_OBJET 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 LIRE ATTRIBUTS (cf. exemple 9).
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 null | Entier long | 255 |
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 collection | Entier long | 42 |
Est une date | Entier long | 4 |
Est une heure | Entier long | 11 |
Est une image | Entier long | 3 |
La commande retourne la valeur de la propriété. Plusieurs types de données sont pris en charge. A noter que :
Notes de compatibilité :
Récupération d’une valeur de type texte :
C_OBJET($ref)
C_TEXTE($prénom)
OB FIXER($ref;"Prénom";"Harry")
$prénom:=OB Lire($ref;"Prénom") // $prénom = "Harry" (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
Lorsque vous récupérez une date, la valeur résultante dépend du paramétrage courant de la base.
C_OBJET($object)
C_DATE($anniv)
C_TEXTE($chainAnniv)
OB FIXER($object;"Anniversaire";!30/01/2010!)
$anniv:=OB Lire($object;"Anniversaire";Est une date) //30/01/10
$chainAnniv:=OB Lire($object;"Anniversaire") //"2010-01-29T23:00:00.000Z" (Paris)
C_OBJET($object)
C_DATE($anniv)
OB FIXER($object;"Anniversaire";!30/01/2010!)
$anniv:=OB Lire($object;"Anniversaire") //30/01/10, pas besoin de <U>Est une date</U>
Note : Pour plus d'informations sur ce paramétrage, reportez-vous à la Page Compatibilité.
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":3601}
// L'heure est stockée en secondes
$get_h:=OB Lire($obj_o;"myHour";Est une heure)
// $get_h = ?01:00:01?
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")
Dans la méthode d'un formulaire contenant une zone 4D Write Pro, vous pouvez écrire :
Si(Evenement formulaire=Sur validation)
OB FIXER([MyDocuments]My4DWP;"myatt_Last edition by";Utilisateur courant)
OB FIXER([MyDocuments]My4DWP;"myatt_Category";"Memo")
Fin de si
Vous pouvez également lire les attributs personnalisés des documents :
vAttrib:=OB Lire([MyDocuments]My4DWP;"myatt_Last edition by")
Vous voulez connaître la taille d'une image stockée dans un objet :
C_ENTIER LONG($vSize)
$vSize:=Taille image(OB Lire($object;"photo";Est une image))
Note : si vous assignez le résultat de la commande à une variable image, la constante Est une image n'est pas nécessaire. Exemple :
C_IMAGE($vPict)
$vPict:=OB Lire($object;"photo") //"Est une image" est inutile dans ce cas
Produit : 4D
Thème : Objets (Langage)
Numéro :
1224
Nom intl. : OB Get
Créé : 4D v14
Modifié : 4D v15
Modifié : 4D v15 R4
Modifié : 4D v16 R4
Modifié : 4D v16 R6
4D - Langage ( 4D v20 R7)