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 SET
|
OB SET ( objet ; propriété ; valeur {; propriété2 ; valeur2 ; ... ; propriétéN ; valeurN} ) | ||||||||
Paramètre | Type | Description | ||||||
objet | Champ objet, Objet |
![]() |
Objet structuré | |||||
propriété | Texte |
![]() |
Nom de la propriété à définir | |||||
valeur | Expression |
![]() |
Nouvelle valeur de la propriété | |||||
La commande OB SET permet de créer ou de modifier une ou plusieurs paires propriété/valeur dans l’objet de langage désigné par le paramètre objet.
objet doit avoir été défini via la commande _O_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 SET ATTRIBUTES (cf. exemple 11). Toutefois, à la différence de WP SET ATTRIBUTES, OB SET 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é à créer ou à modifier. Si la propriété existe déjà dans objet, sa valeur sera mise à jour. Si elle n’existe pas, elle est créée.
Attention, le paramètre propriété tient compte des majuscules/minuscules.
Passez dans le paramètre valeur la valeur de la propriété à définir. Plusieurs types de données sont pris en charge. A noter que :
Création d’un objet et ajout d’une propriété de type texte :
C_OBJECT($Object)
OB SET($Object ;"prénom";"John";"nom";"Smith")
//$Object = {"prénom":"John","nom":"Smith"}
Création d’un objet et ajout d’une propriété de type booléen :
C_OBJECT($Object)
OB SET($Object ;"nom";"smith";"age";42;"client";True)
//$Object = {"nom":"smith","age":42,"client":true}
Modification d’une propriété :
//$Object = {"prénom":"John","nom":"Smith"}
OB SET($Object ;"prénom";"Paul")
//$Object = {"prénom":"Paul","nom":"Smith"}
Ajout d’une propriété :
//$Object = {"prénom":"John","nom":"Smith"}
OB SET($Object ;"service";"Comptabilité")
//$Object = {"prénom":"Paul","nom":"Smith","service":"Comptabilité"}
Renommage d’une propriété :
C_OBJECT($Object)
OB SET($Object ;"nom";"James";"age";35)
//$Object = {"nom":"James","age":35}
OB SET($Object ;"prénom";OB Get($Object ;"nom"))
//$Object = {"prénom":""James","nom":"James","age":35}
OB REMOVE($Object ;"nom")
//$Object = {"prénom":""James","age":35}
Utilisation d’un pointeur :
//$Object = {"prénom":"Paul","nom":"Smith"}
C_TEXT($nom)
OB SET($Object ;"nom";->$nom)
//$Object = {"prénom":"Paul","nom":"->$nom"}
$JsonString:=JSON Stringify($Object)
//$JsonString="{"prénom":"Paul","nom":""}
$nom:="Wesson"
$JsonString:=JSON Stringify($Object)
//$JsonString="{"prénom":"Paul","nom":"Wesson"}
Utilisation d’un objet :
C_OBJECT($ref_smith)
OB SET($ref_smith ;"nom";"Smith")
C_OBJECT($ref_emp)
OB SET($ref_emp ;"employé";$ref_smith)
$Json_string :=JSON Stringify($ref_emp)
// $ref_emp = {"employé":{"nom":"Smith"}} (objet)
// $Json_string = "{"employé":{"nom":"Smith"}}" (chaîne)
Vous pouvez également changer une valeur à la volée :
OB SET($ref_smith ;"nom";"Smyth")
// $ref_smith = {"employé":{"nom":"Smyth"}}
$string :=JSON Stringify($ref_emp)
// $string = "{"employee":{"nom":"Smyth"}}"
Si vous avez défini le champ [Rect]Desc en tant que champ objet, vous pouvez écrire :
CREATE RECORD([Rect])
[Rect]Name:="Blue square"
OB SET([Rect]Desc;"x";"50";"y";"50";"color";"blue")
SAVE RECORD([Rect])
Vous souhaitez exporter des données en JSON contenant une date 4D que vous souhaitez convertir en chaîne sans fuseau horaire. A noter que la conversion a lieu au moment du stockage de la date dans l’objet, il faut donc appeler la commande SET DATABASE PARAMETER avant OB SET :
C_OBJECT($o)
$vDateParam:=Get database parameter(Dates dans objets) //on garde le paramétrage courant
SET DATABASE PARAMETER(Dates dans objets;String type without time zone)
OB SET($o ;"maDate";Current date) // conversion JSON
$json:=JSON Stringify($o)
SET DATABASE PARAMETER(Dates dans objets;$vDateParam)
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")
Vous souhaitez assigner une collection en tant que valeur d'une propriété. Vous pouvez écrire :
C_OBJECT($person)
C_COLLECTION($myCol)
$person:=New object
$myCol:=New collection("Mike";25;"Denis";12;"Henry";4;True)
OB SET($person;"Name";"Jones";"Children";$myCol)
Vous souhaitez stocker une image dans un champ objet. Vous pouvez écrire :
C_PICTURE($vPict)
READ PICTURE FILE("photo.jpg";$vPict)
If(OK=1)
OB SET([Emp]Children;"photo";$vPict)
End if
Produit : 4D
Thème : Objets (Langage)
Numéro :
1220
Créé : 4D v14
Modifié : 4D v15
Modifié : 4D v15 R4
Modifié : 4D v16 R4
Modifié : 4D v16 R6
4D - Langage ( 4D v20 R7)