4D v16.3

OB FIXER

Accueil

 
4D v16.3
OB FIXER

OB FIXER 


 

OB FIXER ( objet ; propriété ; valeur {; propriété2 ; valeur2 ; ... ; propriétéN ; valeurN} ) 
Paramètre Type   Description
objet  Objet, Champ objet in Objet structuré
propriété  Texte in Nom de la propriété à définir
valeur  Texte, Date, Booléen, Pointeur, Numérique, Objet 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 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 FIXER ATTRIBUTS (cf. exemple 10). Toutefois, à la différence de WP FIXER ATTRIBUTS, OB FIXER 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 :

  • si vous passez un pointeur, il est conservé tel quel, il est évalué à l’aide de la commande JSON Stringify,
  • les dates sont stockées au format "YYYY-MM-DDTHH:mm:ss.SSSZ". Lors de la conversion d'une date 4D en texte avant stockage dans l'objet, par défaut le programme tient compte du fuseau horaire local. Vous pouvez modifier ce fonctionnement à l'aide du sélecteur JSON fuseau horaire local de la commande FIXER PARAMETRE BASE.
  • si vous passez une heure, elle est stockée sous la forme d'un nombre de millisecondes (réel) dans objet.
  • si vous passez un objet de langage, la commande utilise la référence de l’objet et non une copie.

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 convertie. 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)
 FIXER PARAMETRE BASE(JSON fuseau horaire local;0)
 OB FIXER($o ;"maDate";Date du jour// conversion JSON
 $json:=JSON Stringify($o)
 FIXER PARAMETRE BASE(JSON fuseau horaire local;1)

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")



Voir aussi  

OB FIXER NULL
OB FIXER TABLEAU
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

 
HISTORIQUE 

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

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)