4D Write Pro e formule

Tradotto automaticamente da Deepl

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!

HDI: GetSetFormulas

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!

Roland Lannuzel
- Product Owner ed esperto di 4D - Dopo aver studiato elettronica, Roland è passato all'IT industriale come sviluppatore e consulente, realizzando soluzioni per i clienti con una varietà di database e tecnologie. Alla fine degli anni '80 si è innamorato di 4D e lo ha utilizzato per scrivere applicazioni aziendali che includono sistemi di contabilità, fatturazione e posta elettronica. Entrato a far parte dell'azienda nel 1997, Roland ha dato il suo prezioso contributo progettando specifiche, strumenti di test e demo, oltre a formare e parlare alla comunità 4D in occasione di numerose conferenze. Continua a plasmare attivamente il futuro di 4D definendo nuove funzionalità e strumenti di sviluppo di database.