Con 4D v18 R2, 4D Write Pro è in grado di gestire gli oggetti formula all’interno dei documenti. A tal fine, sono stati creati quattro nuovi comandi: WP Get formulas, WP Insert formula, WP Compute formulas, e WP Freeze formulas. Tutti possono essere utilizzati con obiettivi intuitivi come documento, corpo, intestazioni, ecc. E come avrete intuito dai nomi dei comandi, le formule non sono più espressioni di testo, ma potenti oggetti formula!
Tutto in una volta
Il primo comando, WP Get formulas, consente di ottenere tutte le formule all’interno di un target specifico. Naturalmente il primo obiettivo che viene in mente è l’intero documento, ma potrebbe anche essere una parte più specifica del documento, come il corpo, la seconda sezione, l’intestazione di sinistra… Basta scegliere! Questo comando restituisce un insieme di oggetti contenenti l’oggetto formula, l’oggetto range (quando l’espressione è in linea) o l’oggetto anchoredID quando l’espressione è collegata a un’immagine ancorata.
Nota: l’oggetto formula ha ora un attributo leggibile chiamato source. Questo attributo è molto utile per trovare e sostituire le azioni. (vedere sotto)
I comandi WP Compute formulas e WP Freeze formulas possono essere usati in modo molto simile(cioè usando un obiettivo). È possibile rivalutare tutte le espressioni del documento, oppure decidere di congelare solo le espressioni appartenenti ai piè di pagina. Semplice e logico.
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
una per una
Il quarto comando, WP Insert formula, consente di inserire un’espressione (come oggetto formula) all’interno di un determinato intervallo. Può anche essere usato per sostituire espressioni esistenti (una volta trovate dal comando WP Get formulas ).
Ecco un semplice esempio di sostituzione: il documento contiene current date espressioni e si desidera sostituirle tutte con una stringa formattata come“Giovedì 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
Altri miglioramenti
Anche alcune espressioni esistenti sono state migliorate e semplificate. Le variabili locali riservate come $wp_pageCount o $wp_author sono state dichiarate obsolete anche se sono ancora supportate. Sono state sostituite dall’uso della più leggibile e moderna This.property. Ecco l’elenco completo delle proprietà disponibili:
$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 |
Più potente, più semplice
Per concludere, siamo certi che l’uso di questi comandi nativi semplificherà davvero il modo di gestire le formule all’interno dei documenti di 4D Write Pro. Non esitate a leggere la documentazione completa e a consultare il database HDI per ulteriori informazioni!