Avec 4D v18 R2, 4D Write Pro est capable de gérer les objets de type formule à l’intérieur des documents. Pour ce faire, quatre nouvelles commandes ont été créées : WP Get formulas, WP Insert formula, WP Compute formulas, et WP Freeze formulas. Elles peuvent toutes être utilisées avec des cibles intuitives telles que document, corps, en-têtes, etc. Et comme vous l’avez peut-être deviné d’après les noms des commandes, les formules ne sont plus des expressions de texte mais de puissants objets de formule!
Tout en une fois
La première commande, WP Get formulas, permet d’obtenir toutes les formules d’une cible spécifique. Bien entendu, la première cible qui vient à l’esprit est le document complet lui-même, mais il peut également s’agir d’une partie plus spécifique du document, comme le corps, la deuxième section, l’en-tête gauche, etc. Cette commande renvoie une collection d’objets contenant le formula, le range (lorsque l’expression est en ligne), ou le anchoredID lorsque l’expression est attachée à une image ancrée.
Remarque: L’objet formula possède désormais un attribut lisible appelé source. Cet attribut est très utile pour trouver et remplacer des actions. (voir ci-dessous)
Les commandes WP Compute formulas et WP Freeze formulas peuvent être utilisées de manière très similaire(c’est-à-dire en utilisant une cible). Vous pouvez réévaluer toutes les expressions du document, ou décider de geler uniquement les expressions appartenant aux pieds de page. Simple et logique.
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
un par un
La quatrième commande, WP Insert formula, permet d’insérer une expression (sous forme d’objet de formule) dans une plage donnée. Elle peut également être utilisée pour remplacer des expressions existantes (une fois trouvées par la commande WP Get formulas ).
Voici un exemple de remplacement simple : votre document contient des expressions current date et vous souhaitez toutes les remplacer par une chaîne formatée telle que« Jeudi 14 novembre 2019« .
// define what to find
$find:=Formula(Current date)
// define the replacement
$formula :=Formula(String(Current date;System date long))
// find all expressions of the document
$_ expressions :=WP Get formulas(WParea)
// query the collection (could have been done on previous line, but easier to read this way!)
$_
expressions:=$_
expressions .
query("formula.source = :1" ;$find.source)
)
// then replace each expression with the new one
For each ($expression;$_ expressions
WP INSERT FORMULA ($expression.range;$formula;wk replace)
End for each
Autres améliorations
Certaines expressions existantes ont également été améliorées et simplifiées. Les variables locales réservées comme $wp_pageCount ou $wp_author ont été déclarées obsolètes même si elles sont toujours supportées. Elles ont été remplacées par l’utilisation de This.property , plus lisible et plus moderne . Voici la liste complète des propriétés disponibles :
$wp_subject -> | This.subject |
$wp_author -> | This.author |
$wp_company -> | This.company |
$wp_notes -> | This.notes |
$wp_dateCreation -> | This.dateCreation |
$wp_dateModified -> | This.dateModified |
$wp_pageNumber -> | This.pageNumber |
$wp_pageCount -> | This.pageCount |
$wp_title -> | This.title |
Plus puissant, plus simple
Pour conclure, nous sommes sûrs que l’utilisation de ces commandes natives va vraiment simplifier la façon dont vous gérez les formules dans les documents 4D Write Pro. N’hésitez pas à lire la documentation complète et à jeter un coup d’œil à la base de données HDI pour plus d’informations !