Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20
Gestión de fórmulas

Gestión de fórmulas  


 

Los documentos 4D Write Pro pueden contener referencias a fórmulas 4D tales como variables, campos, expresiones, métodos proyecto, o comandos 4D. Variables específicas como el número de página también se pueden referenciar (ver Insertar expresiones de documento y de página abajo).

La inserción de fórmulas en áreas 4D Write Pro se realiza con el comando WP INSERT FORMULA y se pueden leer con el comando WP Get formulas. También se devuelven por el comando WP Get text.

Se evalúan las fórmulas:

  • 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" utilizando el comando WP FREEZE FORMULAS (si aún no se ha calculado)
  • antes de imprimir (si aún no se ha calculado)
  • antes de exportar a .docx (si la fórmula no se puede asignar con fórmulas de 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 se evalúan cuando se carga un documento (utilizando WP New, WP INSERT DOCUMENT o wpArea:=[table]field):

  • si el documento solo está fuera de pantalla,
  • si el documento se muestra en pantalla pero el objeto de formulario solo muestra referencias.

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

Nota de compatibilidad: el manejo de expresiones utilizando los comandos ST INSERT EXPRESSIONST Get expression, ST COMPUTE EXPRESSIONS y ST FREEZE EXPRESSIONS es obsoleto, sin embargo, aún es soportado en 4D Write Pro por razones de compatibilidad.

Ejemplo  

Usted quiere reemplazar la selección en un área 4D Write Pro con el contenido de una variable:

 C_TEXT(fullName)
 C_OBJECT($sel)
 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

Puede insertar expresiones especiales relacionadas con atributos documentos o atributos página en toda área de documento (cuerpo, encabezado, pie) utilizando el comando WP INSERT FORMULA.

 

Sintaxis de la fórmula Tipo Descripción
This .title Texto Título definido en el atributo wk title
This .author  Texto Autor definido en el atributo wk author
This .subject  Texto Asunto definido en el atributo wk subject
This .company Texto Empresa definida en el atributo wk company
This .notes Texto Notas definidas en el atributo wk notes
This .dateCreation Fecha Fecha de creación definida en el atributo wk date creation
This .dateModified Fecha Fecha de modificación definida en el atributo wk date modified
This .pageNumber Entero largo Número de página, como está definido: 
  • desde el principio del documento (por defecto) o
  • desde la página de inicio de la sección si está definida por inicio página de la sección.

Esta fórmula siempre es dinámica, no se ve afectada por el comando WP FREEZE FORMULAS.  

This .pageCount (*) Entero largo Número de páginas: recuento total de páginas.

Esta fórmula siempre es dinámica, no se ve afectada por el comando WP FREEZE FORMULAS.
This .document Objeto Documento 4D Write Pro

 

(*) Importante: This .pageNumber y This .pageCount deben utilizarse solo 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, se pueden pasar 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 procesando This.pageNumber.

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

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

Nota de compatibilidad: las variables $wp_ variables en documentos de versiones anteriores a 4D v18 R2 aún se soportan y evalúan.

Fecha

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

Hora

Cuando el comando Current time, una variable tiempo o un método que devuelve un tiempo se inserta en una fórmula, debe incluirse dentro de un comando String porque el tipo de tiempo no es soportado en JSON. Considere 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 generalmente no se recomienda, excepto después de "Editar fórmula"
 $formula2:=Formula from string("String(Current time)") //OK
 
  // Código incorrecto porque los valores de tiempo se mostrarían como una indicación larga durante segundos (o milisegundos), no como un tiempo
 $formula3:=Formula from string("Current time") //NO válido
 $formula4:=Formula(Current time//NO válido

Las expresiones de tabla y campo insertadas en documentos 4D Write Pro soportan la definición de estructura virtual de la base. 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 los nombres de la estructura virtual si la opción wk expressions as source está definida en el parámetro expresiones.
  • WP INSERT FORMULA ignora la estructura virtual y siempre espera nombres reales de tabla/campo.

Nota: cuando se muestra un documento en el 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.

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

  • como valores o como referencias
  • cuando se muestran como referencias, mostrar el texto fuente o el símbolo.

Por defecto, las fórmulas 4D se muestran como valores. Cuando inserta una fórmula 4D, 4D Write Pro calcula y muestra su valor actual. Si desea saber qué fórmula se muestra, debe mostrarla como una referencia.

 

Para mostrar las fórmulas como referencias, puede:

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

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

 
Si muestra las fórmulas como referencias, la referencia se muestra:
 

Por defecto, cuando se muestran las referencias a las fórmulas, el texto fuente de la fórmula se escribe en el documento. Cuando se trabaja con plantillas sofisticadas que utilizan tablas, por ejemplo, y cuando las fórmulas fuente son complejas, el diseño podría ser confuso:

 

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

Para mostrar las referencias de fórmula como símbolos, puede:

Siempre se puede obtener el texto fuente de una fórmula en un consejo que se muestra al pasar el ratón sobre el símbolo:

Nota: el consejo está realmente disponible sea cual sea el modo de visualización de la fórmula.



Ver también 

Download HDI database
Utilizar los comandos del tema Texto con estilo

 
PROPIEDADES 

Producto: 4D
Tema: Gestión de fórmulas

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v16
Modificado: 4D v17 R4
Modificado: 4D v18 R2
Renombrar: 4D v18 R2

 
ARTICLE USAGE

Referencia 4D Write Pro ( 4D v20)