Com 4D v18 R2, 4D Write Pro é capaz de gerir objectos de fórmula dentro de documentos. Para o fazer, foram criados quatro novos comandos: WP Get formulas, WP Insert formula, WP Compute formulas, e WP Freeze formulas. Todos eles podem ser utilizados com alvos intuitivos como documento, corpo, cabeçalhos, etc. E como já deve ter adivinhado a partir dos nomes dos comandos, as fórmulas já não são expressões de texto mas objectos de fórmula poderosos!
Tudo de uma só vez
O primeiro comando, WP Get formulas, permite obter todas as fórmulas dentro de um alvo específico. Claro que o primeiro alvo que me vem à mente é o próprio documento completo, mas também poderia ser uma parte mais específica do documento, como o corpo, a segunda secção, o cabeçalho à esquerda, basta nomeá-lo! Este comando devolve uma colecção de objectos contendo o formula, o range (quando a expressão está em linha), ou o anchoredID quando a expressão está anexada a uma imagem ancorada.
Nota: O objecto formula tem agora um atributo legível chamado source. Este atributo é muito útil para encontrar e substituir acções. (ver abaixo)
Os comandos WP Compute formulas e WP Freeze formulas podem ser utilizados de forma muito semelhante(isto é, utilizando um alvo). Pode reavaliar todas as expressões do documento, ou pode decidir congelar apenas as expressões pertencentes aos rodapés. Simples e lógico.
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
um a um
O quarto comando, WP Insert formula, permite a inserção de uma expressão (como objecto de fórmula) dentro de um determinado intervalo. Também pode ser utilizada para substituir expressões existentes (uma vez encontrada pelo comando WP Get formulas ).
Eis um exemplo simples de substituição: o seu documento contém expressões current date e gostaria de substituir todas elas por uma cadeia formatada, tal como“Thursday 14 November 2019“.
// define what to find
$find// query the collection (could have been done on previous line, but easier to read this way!):=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)
$_
expressions:=$_
expressions .
query("fórmula
.fonte = :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
Mais melhorias
Algumas expressões existentes foram também melhoradas e simplificadas. Variáveis locais reservadas como $wp_pageCount ou $wp_author foram agora declaradas obsoletas, mesmo que ainda sejam suportadas. Foram substituídas pela utilização da propriedade mais legível e moderna This. Aqui está a lista completa de propriedades disponíveis:
$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 |
Mais poderoso, mais simples
Para concluir, estamos certos de que a utilização destes comandos nativos irá realmente simplificar a forma como gere as fórmulas dentro dos documentos 4D Write Pro. Sinta-se à vontade para ler a documentação completa e dar uma vista de olhos na base de dados do HDI para mais informações!