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 v19
Gérer des formules

Gérer des formules  


 

Les documents 4D Write Pro peuvent contenir des références à des formules 4D telles que des variables, des champs, des expressions, des méthodes projet ou des commandes du langage. Des informations spécifiques telles que le numéro de page peuvent également être référencées à l'aide de formules (voir Insérer des expressions de page et de document ci-dessous).

L'insertion de formules dans 4D Write Pro se fait à l'aide de la commande WP INSERT FORMULA. Les formules peuvent être lues à l'aide de la commande WP Get formulas. Elles peuvent aussi être retournées via la commande WP Get text

Les formules sont évaluées :

  • lorsqu'elles sont insérées dans un objet formulaire qui affiche des valeurs calculées
  • lorsque l'objet 4D Write Pro est chargé dans un objet formulaire qui affiche des valeurs calculées
  • lorsque la commande WP COMPUTE FORMULAS est appelée
  • lorsqu'elles sont "gelées" à l'aide de la commande WP FREEZE FORMULAS (si elles ne sont pas encore calculées)
  • avant impression (si elles ne sont pas encore calculées)
  • avant d'être exportées au format .docx (si la formule ne peut pas être avec mappée avec les formules MS Word)
  • lorsque les actions standard permettant de figer, imprimer, exporter ou calculer des formules sont appelées. Voir Actions standard

Les formules ne sont pas évaluées lorsqu'un document est chargé (à l'aide de WP New, WP INSERT DOCUMENT ou wpArea:=[table]field) :

  • si le document est uniquement hors écran
  • si le document s'affiche à l'écran mais l'objet formulaire ne montre que les références.

Les formules deviennent des valeurs statiques si vous appelez la commande WP FREEZE FORMULAS (à l'exception du nombre et du numéro de pages, voir ci-dessous).

Note de compatibilité : La gestion des expressions à l'aide des commandes ST INSERT EXPRESSIONST Get expression, ST COMPUTE EXPRESSIONS et ST FREEZE EXPRESSIONS est obsolète, mais toujours prise en charge par 4D Write Pro à des fins de compatibilité.

Exemple  

Vous voulez remplacer la sélection dans une zone 4D Write Pro par le contenu d'une variable :

 C_TEXT(nomComplet)
 C_OBJECT($sel)
 nomComplet:="John Smith"
 $sel:=WP Selection range(4DWPArea)
 Case of
    :(Form event code=On Clicked)
       ST INSERT EXPRESSION($sel;Formula(nomComplet);wk replace)
 End case

Vous pouvez insérer des expressions spéciales relatives aux attributs de document ou aux attributs de page en utilisant la commande WP INSERT FORMULA.

 

Formule Type Description
This.title Texte Titre défini dans l'attribut wk title 
This.author  Texte Auteur défini dans l'attribut wk author 
This.subject  Texte Sujet défini dans l'attribut wk subject 
This.company Texte  Société définie dans l'attribut wk company 
This.notes Texte  Notes définies dans l'attribut wk notes 
This.dateCreation Date  Date de création définie dans l'attribut wk date creation 
This.dateModified Date  Date de modification définie dans l'attribut wk date modified 
This.pageNumber (*) Entier long Numéro de page tel que défini 
  • à partir du début du document (par défaut) ou
  • à partir du début de la section s'il est défini par le début de la section

Cette formule est toujours dynamique, elle n'est pas affectée par la commande WP FREEZE FORMULAS.  

This.pageCount (*) Entier long Nombre de pages : Nombre total de pages. 

Cette formule est toujours dynamique, elle n'est pas affectée par la commande WP FREEZE FORMULAS.
This.document Objet Document 4D Write Pro

 

(*) Important : This.pageNumber et This.pageCount doivent être utilisées uniquement et directement dans une formule 4D Write Pro (elles doivent figurer dans la chaîne formula.source). Elles retourneront des valeurs incorrectes si elles sont utilisées par le langage 4D dans une méthode appelée par la formule. Toutefois, elles peuvent être passées comme paramètres à une méthode appelée directement par la formule :

  • Ceci fonctionnera : « formatNumber(This.pageNumber) »
  • Ceci ne fonctionnera PAS : « formatNumber » avec la méthode formatNumber traitant This.pageNumber.

Par exemple, pour insérer le numéro de page dans la zone de pied sélectionnée :

 $footer:=WP Get footer(4DWP;1)
 WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
  //L'utilisation de Formula(myMethod) avec myMethod traitant This.pageNumber
  //ne fonctionnera pas correctement

Note de compatibilité : Les variables Existing $wp_ contenues dans les documents des versions antérieures à 4D v18 R2 sont toujours prises en charge et évaluées.

 

Date

Lorsque la commande Current date, une variable de type date ou une méthode retournant une date est insérée dans une formule, elle sera automatiquement transformée en texte à l'aide du format  system date short

Heure

Lorsque la commande Current time, une variable de type heure ou une méthode retournant une heure est insérée dans une formule, elle doit être spécifiée dans une formule String car le type heure n'est pas pris en charge en JSON. Prenons les exemples de formule suivants :

  // Ce code est la meilleure pratique
 $formula1:=Formula(String(Heure courante)) //OK 
 
  // Ce code fonctionnera mais il n'est généralement pas recommandé, excepté après l'exécution de la commande "Edit formula"
 $formula2:=Formula from string("Chaine(Heure courante)") //OK
 
  // Code erroné car les valeurs d'heure s'afficheront sous forme d'entiers longs pour les secondes (ou milisecondes), et non pas sous forme d'heure
 $formula3:=Formula from string("Heure courante") //NON valide
 $formula4:=Formula(Current time//NON valide

Les expressions de table et de champ insérées dans les documents 4D Write Pro prennent en charge la définition de structure virtuelle de la base. La structure virtuelle exposée dans les formules est définie à l'aide des commandes SET FIELD TITLES(...;*) et SET TABLE TITLES (...;*). 

Lorsqu'une structure virtuelle est définie :

  • les références à des expressions contenant des champs affichent des noms virtuels lorsque le document 4D Write Pro montre les références et non les valeurs.
  • la commande WP Get text retourne les noms de structure virtuelle si l'option wk expressions as source est définie dans expressions
  • la commande WP INSERT FORMULA ignore les noms de structure virtuelle et attend toujours des noms réels de tables/champs

Note : Lorsqu'un document est affiché dans le mode "afficher expressions", les références à des tables ou à des champs qui n'appartiennent pas à la structure virtuelle s'affichent avec le caractère "?", par exemple [VirtualTableName]? lorsque le champ n'est pas défini dans la structure virtuelle.



Voir aussi  

Download HDI database
Utiliser les commandes du thème Texte multistyle

 
PROPRIÉTÉS 

Produit : 4D
Thème : Gérer des formules

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16
Modifié : 4D v17 R4
Modifié : 4D v18 R2
Renommé : 4D v18 R2

 
UTILISATION DE L'ARTICLE

4D Write Pro ( 4D v19)