4D Write Pro et formules

Traduit automatiquement de Deepl

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!

HDI : GetSetFormulas

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 !

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.