Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
OB FIXER

OB FIXER 


 

OB FIXER ( objet ; propriété ; valeur {; propriété2 ; valeur2 ; ... ; propriétéN ; valeurN} ) 
Paramètre Type   Description
objet  Champ objet, Objet in Objet structuré
propriété  Texte in Nom de la propriété à définir
valeur  Expression in Nouvelle valeur de la propriété

La commande OB FIXER 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_OBJET ou désigner un champ objet 4D. 

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 :

  • si vous passez un pointeur, il est conservé tel quel, il est évalué à l’aide de la commande JSON Stringify,
  • si vous passez une date, elle sera stockée avec le type date ou sous forme de texte au format ISO, suivant votre paramétrage de date courant. Pour plus d'informations, reportez-vous à la description de l'option "Utiliser le type date au lieu du format date ISO dans les objets" dans la section Page Compatibilité.
  • si vous passez une heure, elle est stockée sous la forme d'un nombre de secondes (réel) dans objet.
  • si vous passez un objet de langage ou une collection, la commande utilise une référence et non une copie. Toute modification appliquée à un objet ou à une collection sera reportée à toutes les références.
  • à compter de 4D v16 R4, vous pouvez passer une image de tout type supporté (voir Formats natifs pris en charge).

Création d’un objet et ajout d’une propriété de type texte :

 C_OBJET($Object)
 OB FIXER($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_OBJET($Object)
 OB FIXER($Object ;"nom";"smith";"age";42;"client";Vrai)
     //$Object = {"nom":"smith","age":42,"client":true}

Modification d’une propriété :

     //$Object = {"prénom":"John","nom":"Smith"}
 OB FIXER($Object ;"prénom";"Paul")
     //$Object = {"prénom":"Paul","nom":"Smith"}

Ajout d’une propriété :

     //$Object = {"prénom":"John","nom":"Smith"}
 OB FIXER($Object ;"service";"Comptabilité")
     //$Object = {"prénom":"Paul","nom":"Smith","service":"Comptabilité"}

Renommage d’une propriété :

 C_OBJET($Object)
 OB FIXER($Object ;"nom";"James";"age";35)
     //$Object = {"nom":"James","age":35}
 OB FIXER($Object ;"prénom";OB Lire($Object ;"nom"))
     //$Object = {"prénom":""James","nom":"James","age":35}
 OB SUPPRIMER($Object ;"nom")
     //$Object = {"prénom":""James","age":35}

Utilisation d’un pointeur :

     //$Object = {"prénom":"Paul","nom":"Smith"}
 C_TEXTE($nom)
 OB FIXER($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_OBJET($ref_smith)
 OB FIXER($ref_smith ;"nom";"Smith")
 C_OBJET($ref_emp)
 OB FIXER($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 FIXER($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 :

 CREER ENREGISTREMENT([Rect])
 [Rect]Name:="Blue square"
 OB FIXER([Rect]Desc;"x";"50";"y";"50";"color";"blue")
 STOCKER ENREGISTREMENT([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 FIXER PARAMETRE BASE avant OB FIXER

 C_OBJET($o)
 $vDateParam:=Lire parametre base(Dates dans objets) //on garde le paramétrage courant
 FIXER PARAMETRE BASE(Dates dans objets;Type chaine sans fuseau horaire)
 OB FIXER($o ;"maDate";Date du jour// conversion JSON
 $json:=JSON Stringify($o)
 FIXER PARAMETRE BASE(Dates dans objets;$vDateParam)

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 souhaitez assigner une collection en tant que valeur d'une propriété. Vous pouvez écrire :

 C_OBJET($person)
 C_COLLECTION($myCol)
 
 $person:=Creer objet
 $myCol:=Creer collection("Mike";25;"Denis";12;"Henry";4;Vrai)
 OB FIXER($person;"Name";"Jones";"Children";$myCol)

Vous souhaitez stocker une image dans un champ objet. Vous pouvez écrire :

 C_IMAGE($vPict)
 LIRE FICHIER IMAGE("photo.jpg";$vPict)
 Si(OK=1)
    OB FIXER([Emp]Children;"photo";$vPict)
 Fin de si



Voir aussi  

OB FIXER NULL
OB FIXER TABLEAU
OB Lire
OB SUPPRIMER

 
PROPRIÉTÉS 

Produit : 4D
Thème : Objets (Langage)
Numéro : 1220
Nom intl. : OB SET

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v14
Modifié : 4D v15
Modifié : 4D v15 R4
Modifié : 4D v16 R4
Modifié : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)