4D v16

Búsqueda por formulario, aplicar una fórmula

Inicio

 
4D v16
Búsqueda por formulario, aplicar una fórmula

Búsqueda por formulario, aplicar una fórmula    


 

 

Además de las manipulaciones explicadas en el vídeo, también debe tener en cuenta que:

Mediante la aplicación de una fórmula, puede pasar un campo a mayúsculas o minúsculas, concatenar cadenas de caracteres o dividirlas (si este proceso no fue planeado antes de la importación o si sus formularios no especifican las conversiones y controles automáticos).

Todos los comandos del lenguaje 4D están a nuestra disposición en el editor de fórmulas (una versión limitada está disponible para los usuarios finales cuando acceden a los editores estándar).

El uso de fórmulas permite realizar el equivalente de una buscar/remplazar de alto nivel. Dado se utilizan los comandos del lenguaje 4D, entre más familiarizado esté con ellos, más podrá afinar la operación.

Veamos algunos ejemplos:

  • En el archivo que usted ha importado en una tabla Usuarios, olvidó poner en mayúsculas los nombres y los apellidos son mixtos (mayúsculas, minúsculas o las dos)
  • Por otra parte, los números de teléfono no todos tienen el mismo formato (algunos tienen espacios, algunos tienen guiones, otros no tiene ninguno, a veces el cero a la izquierda no importa, porque se trata de una hoja de cálculo no formateada correctamente durante la exportación...).

Tenemos que volver a procesar los datos incorrectos o mal formateados.

4D trabaja con el concepto de selección actual, es decir una lista de registros, cuyos números se guardan en la memoria y que sirven como base para todo proceso (salvo en casos excepcionales).

Recomendación: cuando aplique una fórmula, primero pruébela en unos pocos registros para comprobar si es válida y si cumple con sus expectativas.

Ejemplo de ordenación por fórmula:
El ejemplo más claro es la ordenación de un diccionario que, por definición, se ordena por orden alfabético y por lo tanto no necesita ser ordenado por una fórmula..

Sin embargo, ¿Qué pasa con un diccionario de Scrabble? En primer lugar tenemos que:

  • ordenar los nombres por longitud, en número de caracteres (palabras de 1 carácter, luego de 2, luego de 3 y así sucesivamente)
  • luego, dentro de estos grupos, ordenar por orden alfabético.

En este caso, es necesario utilizar una ordenación por fórmula para la primera ordenación.

Además:
También puede aplicar un método (que contiene varias líneas de código) a la selección.

En realidad, si es necesario aplicar varias fórmulas a la misma selección, usted puede:

  • Escribir las fórmulas a aplicar en un método
  • A continuación, indicar el nombre de este método en la línea de la fórmula a aplicar:

Las fórmulas también se pueden utilizar en las columnas del editor de informes rápidos, cuyo funcionamiento se trató en los capítulos anteriores. Esto le da un número ilimitado de combinaciones para realización de sus informes, exportaciones y procesamientos.

Hoy vamos a aprender a realizar búsquedas avanzadas y a modificar datos en masa y ordenarlos según una fórmula de cálculo.
Esto le permite refinar las búsquedas, las ordenaciones, los informes rápidos..., también le permite modificar los valores de una selección de registros "aplicando una fórmula".

Veamos un ejemplo con las intervenciones.

En primer lugar, queremos extraer todas las intervenciones realizadas en diciembre sin importar el año.

Dado que no tenemos una columna "Mes", una búsqueda convencional no es posible, porque tenemos que extraer el mes de la fecha.

En el menú "Records":

  • Seleccionar "Query"
  • luego "Query by Formula..."

El editor tiene 3 columnas:

  • tablas y campos
  • operadores
  • comandos 4D

Para constituir la fórmula de búsqueda:

  • en el tema "Date and time", hacemos doble clic en el mes
  • digitamos un paréntesis abierto
  • doble clic en "Intervention dates"
  • cerramos el paréntesis
  • y añadimos "=12"

Así que vamos a buscar todas las intervenciones cuyo mes es igual a 12.
Validamos y obtenemos 905 registros.

Podemos ordenarlos cronológicamente (2009, 2010,...) pero nos han pedido ordenarlos por día (todos los primeros juntos, luego los segundos y así sucesivamente).

En en el menú "Order By":

  • Eliminamos los criterios de ordenación anteriores
  • En la parte inferior derecha, hacemos clic en "Add Formula"

Como en el editor anterior:

  • en el tema "Date and Time", doble clic en Day of
  • abre paréntesis (
  • doble clic en "Intervention date"
  • cerrar el paréntesis)
  • validar la fórmula (volvemos al editor de ordenación)
  • clic en el botón "Order by"

Y tenemos todo los unos juntos, luego todos los dos y así sucesivamente, pero mezclados con 2010, 2009, 2011, etc.

Así que vamos a agregar un criterio de ordenación "normal" para que también se ordenen ascendentemente por año:

  • En el menú "Records" elegimos => "Order By"
  • Doble clic a la izquierda dela fecha de intervención
  • Doble clic a la izquierda de la hora de intervención (para tener una verdadera ordenación cronológica)
  • Luego clic en el botón "Order by"

Luego, obtenemos todas las intervenciones para el mes de diciembre, ordenadas por fecha y hora, año por año.

Ahora vamos a aplicar una fórmula, en otras palabras, modificar el valor de un campo para los registros mostrados. Atención: esta operación no se puede deshacer.

En orden, debemos:

  • Seleccionar los registros (crear una selección que coincida con los criterios).
  • A continuación, aplicar una (o más) fórmula(s).

En la importación de intervenciones que hicimos, la duración de las sesiones de formación no se incluía

Así que vamos a:

  • Crear el campo "Duration" en estructura en la tabla Interventions
  • Modificar el formulario "Output" para añadir el campo Duration
  • Colocar el campo Duration junto a las iniciales del técnico
  • Duplicar el campo y el texto
  • Modificar el título y el campo correspondiente
  • Guardar el formulario (vemos la modificación en el fondo de la lista de intervenciones)

  • Vamos a buscar las intervenciones de tipo formación
  • Luego, en el mismo menú, elija "Apply Formula"

Como en el editor anterior:

  • Hacemos doble clic en "Duration" en la lista de campos
  • Escribimos ":=" ya que es una asignación
  • Indicamos la duración entre signos de interrogación, así: ?07:00:00?
  • Clic en validar

Las duraciones ahora se asignan a todas las sesiones de formación.

 
 

 
PROPIEDADES 

Producto: 4D
Tema: Búsqueda por formulario, aplicar una fórmula

 
HISTORIA 

 
ARTICLE USAGE

Autoformación ( 4D v16)