Saltar al contenido principal
Versión: 20 R9

Gestión de fórmulas

Generalidades

Los documentos 4D Write Pro pueden contener referencias a fórmulas 4D como variables, campos, expresiones, métodos proyecto o comandos 4D. Información específica como el número de página también puede ser referenciada a través de fórmulas (ver Inserción de documentos y expresiones de página más abajo).

La inserción de fórmulas en las áreas de 4D Write Pro se realiza con el comando WP INSERT FORMULA y puede leerse utilizando el comando WP Get formulas. También los devuelve el comando WP Get text.

Las fórmulas son evaluadas:

  • cuando se insertan en un objeto de formulario que muestra valores calculados
  • cuando el objeto 4D Write Pro se carga en un objeto de formulario que muestra valores calculados
  • cuando se llama al comando WP COMPUTE FORMULAS
  • cuando estén "congelados" usando el comando WP FREEZE FORMULAS (si aún no se ha calculado)
  • antes de imprimir (si no se ha calculado ya)
  • antes de exportar a .docx (si la fórmula no se puede asignar con fórmulas MS Word)
  • cuando se llaman las acciones estándar para congelar, imprimir, exportar o calcular fórmulas. Ver Acciones estándar

Las fórmulas no son evaluadas cuando un documento es cargado (usando WP New, WP Insert document body, o wpArea:=[table]field):

  • si el documento sólo está fuera de la pantalla,
  • si el documento se muestra en pantalla pero el objeto formulario sólo muestra referencias.

Las fórmulas se convierten en valores estáticos si se llama al comando WP FREEZE FORMULAS (excepto para el número de página y el recuento de páginas, ver más abajo).

Nota de compatibilidad: el manejo de expresiones utilizando los comandos ST INSERT EXPRESSION, ST Get expression, ST COMPUTE EXPRESSIONS, y ST FREEZE EXPRESSIONS es obsoleto, sin embargo, sigue siendo soportado en 4D Write Pro por compatibilidad.

Ejemplo

Desea sustituir la selección en un área de 4D Write Pro por el contenido de una variable:

 var fullName: Text
var $sel: Object
fullName:="John Smith"
$sel:=WP Selection range(4DWPArea)
Case of
:(Form event code=On Clicked)
WP INSERT FORMULA($sel;Formula(fullName);wk replace)
End case

Objeto de contexto de fórmula

Puede insertar expresiones especiales relacionadas con los atributos del documento en cualquier área del documento (cuerpo, encabezado, pie de página) utilizando el comando WP Insertar fórmula. Dentro de una fórmula, un objeto contextual de la fórmula se expone automáticamente. Puede utilizar las propiedades de este objeto a través de This:

PropiedadesTipoDescripción
This.titleTextTítulo definido en el atributo wk title
This.authorTextAutor definido en el atributo wk author
This.subjectTextAsunto definido en el atributo wk subject
This.companyTextEmpresa definida en el atributo wk company
This.notesTextNotas definidas en el atributo wk notes
This.dateCreationFechaFecha de creación definida en el atributo wk date creation
This.dateModifiedFechaFecha de modificación definida en el atributo wk date modified
This.pageNumber (*)NumberPage number as it is defined:
  • - From the document start (default) or
  • - From the section page start if it is defined by section page start.
  • Esta fórmula siempre es dinámica; no se ve afectada por el comando FORMULAS WP FREEZE.
    This.pageCount (*)NumberNúmero de páginas: número total de páginas.
    Esta fórmula siempre es dinámica; no se ve afectada por el comando FORMULAS WP FREEZE.
    This.documentObjectDocumento 4D Write Pro
    This.dataObjectContexto de datos del documento 4D Write Pro definido por WP SET DATA CONTEXT
    This.sectionIndexNumberEl índice de la sección en el documento 4D Write Pro a partir de 1
    This.pageIndexNumberEl número de página real en el documento 4D Write Pro a partir de 1 (independientemente de los números de página de la sección)
    This.sectionNameStringEl nombre que el usuario da a la sección
    nota

    Existen propiedades de contexto adicionales cuando se trabaja con tablas. Vea Gestión de tablas para más información.

    (*) Importante: This.pageNumber, This.pageIndex y This.pageCount sólo deben utilizarse directamente en una fórmula 4D Write Pro (deben estar presentes en la cadena formula.source). Devolverán valores incorrectos si son utilizados por el lenguaje 4D dentro de un método llamado por la fórmula. Sin embargo, pueden pasarse como parámetros a un método llamado directamente por la fórmula:

    • Esto funcionará: " formatNumber(This.pageNumber) "
    • Esto NO funcionará: « formatNumber » con el método formatNumber de procesamiento This.pageNumber.

    Por ejemplo, para insertar el número de página en el pie de página:

     $footer:=WP Get footer(4DWP;1)
    WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
    //Usando Formula(myMethod) con myMethod procesando This.pageNumber
    //no funcionaría correctamente

    Inserción de fórmulas de fecha y hora

    Date

    Cuando se inserta en una fórmula el comando Current date, una variable de fecha o un método que devuelve una fecha, ésta se transformará automáticamente en texto utilizando el formato abreviado de fecha del sistema.

    Time

    When the Current time command, a time variable, or a method returning a time is inserted in a formula, it must be enclosed within a String command because time type is not supported in JSON. Considera los siguientes ejemplos de fórmulas:

      // Este código es la mejor práctica
    $formula1:=Formula(String(Current time)) //OK

    // Este código funcionará pero normalmente no se recomienda, excepto después de "Edit formula"
    $formula2:=Formula from string("String(Current time)") //OK

    // Código incorrecto porque los valores de tiempo se mostrarían como un longint para los segundos (o milisegundos), no como un tiempo
    $formula3:=Formula from string("Current time") //NO válido
    $formula4:=Formula(Current time) //NO válido

    Soporte de estructura virtual

    Las expresiones de tablas y campos insertadas en los documentos 4D Write Pro soportan la definición de la estructura virtual de la base de datos. La estructura virtual expuesta a las fórmulas se define mediante los comandos SET FIELD TITLES(...;*) y SET TABLE TITLES(...;*).

    Cuando se define una estructura virtual:

    • las referencias a expresiones que contienen campos muestran nombres virtuales cuando el documento 4D Write Pro muestra referencias y no valores.
    • WP Get text devuelve nombres de estructura virtual si la opción wk expressions as source está establecida en el parámetro de expresiones.
    • WP Insert formula ignora la estructura virtual y siempre espera nombres de tablas/campos reales
    nota

    Cuando un documento se visualiza en modo "expresiones de visualización", las referencias a tablas o campos que no pertenecen a la estructura virtual se muestran con caracteres "?", por ejemplo [VirtualTableName]? cuando el campo no está definido en la estructura virtual.

    Mostrar fórmulas

    Puede controlar cómo se muestran las fórmulas en sus documentos:

    • como valores o como *referencias
    • cuando se muestran como referencias, muestran el texto, símbolo o nombre de la fuente.

    Referencias o valores

    Por defecto, las fórmulas 4D se muestran como valores. Al insertar una fórmula 4D, 4D Write Pro calcula y muestra su valor actual. Si desea saber qué fórmula se utiliza o cuál es su nombre, debe mostrarla como referencia.

    Para mostrar fórmulas como referencias, puede:

    • check the Show references option in the Property list (see Configuring View properties), or
    • utilizar la acción estándar visibleReferences (ver Expresiones dinámicas), o bien
    • usa el comando WP SET VIEW PROPERTIES con el selector wk visible references en True.

    Las referencias a fórmulas pueden mostrarse como:

    • textos fuente (por defecto)
    • symbols
    • names

    Referencias como textos fuente (por defecto)

    Cuando las fórmulas se muestran como referencias, por defecto el texto fuente de la fórmula aparece en su documento, con un fondo gris por defecto (puede personalizarse usando el selector wk formula highlight).

    Por ejemplo, ha insertado la fecha actual junto con un formato, la fecha se muestra:

    Cuando se muestran fórmulas como referencias, se muestra la fuente de la fórmula:

    Referencias como símbolos

    Cuando los textos fuente de las fórmulas se muestran en un documento, el diseño puede resultar confuso si se trabaja con plantillas sofisticadas que utilizan tablas, por ejemplo, y cuando las fórmulas son complejas:

    En este caso, puede mostrar las referencias a fórmulas como símbolos , para que el documento sea más compacto:

    Para mostrar las referencias a fórmulas como símbolos, puede:

    • check the Display formula source as symbol option in the Property list (see Configuring View properties), or
    • utilizar la acción estándar displayFormulaAsSymbol (ver Uso de las acciones estándar de 4D Write Pro), o bien
    • usa el comando WP SET VIEW PROPERTIES con el selector wk display formula as symbol en True.

    Referencias como nombres

    Puede asignar nombres a las fórmulas, haciendo que los documentos de plantilla de 4D Write Pro sean más fáciles de leer y entender para los usuarios finales. Cuando las fórmulas se muestran como referencias (y no como símbolos) y se ha definido un nombre para una fórmula, se muestra el nombre de la fórmula.

    Por ejemplo, las siguientes referencias a fórmulas se muestran como texto fuente por defecto:

    Si asigna nombres a las fórmulas, se mostrarán en lugar de los textos:

    Para asignar un nombre a una fórmula, debe utilizar el comando WP Insert formula con un parámetro objeto. Por ejemplo:

      //inserta el día anterior en el documento
    $o:=New object("formula";Formula(Current date-1); "name"; "Yesterday")
    $range:=WP Text range(WPArea;wk start text;wk end text)
    WP INSERT FORMULA($range;$o;wk append)

    nota

    Sólo las fórmulas en línea pueden tener un nombre (las fórmulas para imágenes ancladas, romper filas y las fórmulas de fuentes de datos de tablas no pueden tener nombres).

    Consejos sobre fórmulas

    Sea cual sea el modo de visualización de las fórmulas, puede obtener información adicional sobre las fórmulas a través de tips que se muestran al pasar el ratón sobre las fórmulas.

    • Cuando las fórmulas no tienen nombre, los consejos proporcionan el texto fuente de las fórmulas:

    • Cuando las fórmulas tienen nombre pero se muestran como valores o como símbolos, el consejo ofrece el nombre de las fórmulas:

    En este contexto, puede visualizar el texto fuente de la fórmula pulsando Ctrl (Windows) o Cmd (macOS) mientras pasa el ratón sobre la fórmula.

    • Cuando las fórmulas tienen nombres y se muestran como nombres, no se muestra ningún consejo por defecto. Puede mostrar el texto original de la fórmula presionando Ctrl (Windows) o Cmd (macOS) mientras pasa el cursor sobre la fórmula:

      !

    Ver también

    Descargar base de datos HDI
    Usar comandos del tema Texto con estilo