Con 4D v18 R2, 4D Write Pro es capaz de gestionar objetos de fórmula dentro de los documentos. Para ello, se han creado cuatro nuevos comandos: WP Get formulas, WP Insert formula, WP Compute formulas, y WP Freeze formulas. Todos ellos pueden ser utilizados con objetivos intuitivos como documento, cuerpo, cabeceras, etc. Y como habrá adivinado por los nombres de los comandos, las fórmulas ya no son expresiones de texto sino potentes objetos de fórmula.
Todo a la vez
El primer comando, WP Get formulas, permite obtener todas las fórmulas dentro de un objetivo específico. Por supuesto, el primer objetivo que nos viene a la mente es el documento completo, pero también podría ser una parte más específica del documento, como el cuerpo, la segunda sección, la cabecera izquierda, ¡sólo hay que nombrarlo! Este comando devuelve una colección de objetos que contienen el formula, el range (cuando la expresión está en línea), o el anchoredID cuando la expresión está unida a una imagen anclada.
Nota: El objeto formula tiene ahora un atributo legible llamado source. Este atributo es muy útil para encontrar y reemplazar acciones. (ver más abajo)
Los comandos WP Compute formulas y WP Freeze formulas pueden utilizarse de forma muy similar(es decir, utilizando un objetivo). Puede reevaluar todas las expresiones del documento, o puede decidir congelar sólo las expresiones pertenecientes a los pies de página. Es sencillo y lógico.
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
uno a uno
El cuarto comando, WP Insert formula, permite insertar una expresión (como objeto de fórmula) dentro de un rango determinado. También puede utilizarse para sustituir expresiones existentes (una vez encontradas por el comando WP Get formulas ).
He aquí un sencillo ejemplo de sustitución: su documento contiene expresiones current date y desea sustituirlas todas por una cadena formateada como«Jueves 14 de noviembre de 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
Más mejoras
También se han mejorado y simplificado algunas expresiones existentes. Las variables locales reservadas, como $wp_pageCount o $wp_author, se han declarado obsoletas aunque sigan siendo compatibles. Se han sustituido por el uso de la más legible y moderna This.property. Esta es la lista completa de propiedades 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 |
Más potente, más simple
Para concluir, estamos seguros de que el uso de estos comandos nativos realmente simplificará la forma de gestionar las fórmulas dentro de los documentos de 4D Write Pro. No dude en leer la documentación completa y echar un vistazo a la base de datos de HDI para obtener más información.