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
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.

Vous pouvez contrôler comment les formules sont affichées dans vos documents :

  • en tant que valeurs ou références
  • lorsqu'ils sont affichés en tant que références, affichent le texte, le symbole ou le nom de la source.

Par défaut, les formules 4D sont affichées sous forme de valeurs. Lorsque vous insérez une formule 4D, 4D Write Pro calcule et affiche sa valeur courante. Si vous souhaitez savoir quelle formule est utilisée ou quel est son nom, vous devez l'afficher en tant que référence.

Pour afficher les formules en tant que références, vous pouvez :

Les références de formules peuvent être affichées sous forme de :

  • textes sources (par défaut)
  • symboles
  • noms

Lorsque les formules sont affichées en tant que références, par défaut, le texte source de la formule apparaît dans votre document, avec un fond gris par défaut (il peut être personnalisé à l'aide du sélecteur wk formula highlight).

Par exemple, vous avez inséré la date du jour accompagnée d'un format, la date s'affiche comme suit :
 

 
Si vous affichez des formules en tant que références, la source de la formule est affichée :
 

Lorsque les textes sources des formules sont affichés dans un document, la conception peut être confuse si vous travaillez sur des modèles sophistiqués utilisant des tableaux, par exemple, et si les formules sont complexes :



Dans ce cas, vous pouvez afficher les références des formules sous forme de symboles afin de rendre le document plus compact :


Pour afficher les références de formule sous forme de symboles, vous pouvez :

Vous pouvez assigner des noms aux formules, ce qui permet aux utilisateurs finaux de lire et de comprendre plus facilement les modèles de documents de 4D Write Pro. Lorsque les formules sont affichées sous forme de références (et non sous forme de symboles) et que vous avez attribué un nom à une formule, le nom de la formule est affiché.

Par exemple, les références de formule suivantes sont affichées par défaut sous forme de texte source :

Si vous attribuez des noms aux formules, ils sont affichés à la place des textes :

Pour attribuer un nom à une formule, vous devez utiliser la commande WP INSERT FORMULA avec un paramètre objet. Par exemple :

  //insere la veille dans le document
 $o:=New object("formula";Formula(Current date-1);"name";"Yesterday")
 $range:=WP Text range(WPArea;wk start text;wk end text)
 WP INSERT FORMULA($range;$o;wk append)

Note : Seules les formules en ligne peuvent avoir un nom (les formules pour les images ancrées, les ruptures de lignes et les formules de source de données de tableau ne peuvent pas avoir de nom).

Quel que soit le mode d'affichage de la formule, vous pouvez obtenir des informations supplémentaires sur les formules à travers des bulles d'aide qui s'affichent lorsque vous survolez les formules.

  • Lorsque les formules n'ont pas de nom, les bulles d'aide fournissent le texte source des formules :
  • Lorsque les formules ont des noms mais sont affichées sous forme de valeurs ou de symboles, la bulle d'aide fournit le nom des formules :

    Dans ce contexte, vous pouvez afficher le texte source de la formule en appuyant sur Ctrl (Windows) ou Cmd (macOS) lorsque vous survolez la formule.
  • Lorsque les formules ont des noms et sont affichées sous forme de noms, aucune bulle d'aide n'est affichée par défaut.
    Vous pouvez afficher le texte source de la formule en appuyant sur Ctrl (Windows) ou Cmd (macOS) lorsque vous survolez la formule :



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
Modifié : 4D v20 R2
Modifié : 4D v20 R3

 
UTILISATION DE L'ARTICLE

4D Write Pro ( 4D v20 R7)