Cómo mostrar una colección multinivel en diferentes cuadros de lista

Traducido automáticamente de Deepl

A partir de 4D v17, el contenido de una colección multinivel puede mostrarse fácilmente en diferentes cuadros de lista. Esto significa que puede enlazar varios cuadros de lista para mostrar detalles anidados… ¡sin una sola línea de código! Esto puede lograrse simplemente utilizando un objeto o una colección como fuente de datos para otro cuadro de lista.

Con el nuevo tipo de colección de cuadros de lista, se han añadido las propiedades «Elemento actual « y «Elementos seleccionados «. Tenga en cuenta que la propiedad «Elemento actual « permite obtener un objeto, mientras que la propiedad « Elemento seleccionado» devuelve una colección.

Veamos un ejemplo concreto y veamos cómo podemos mostrar los resultados de un análisis de sangre.

Ejemplo de base de datos

¿Qué hay?

En el primer nivel, tenemos el nombre del paciente, la fecha del examen y el nombre del médico. A continuación, los resultados se clasifican por categorías. Para cada categoría, hay una lista de exámenes con el valor del resultado, el mínimo, el máximo y la unidad.

En cuanto a la estructura de datos, tenemos un objeto con algunos atributos de primer nivel( es decir, nombre, apellido, etc.), así como una colección de objetos de categoría. Luego, para cada objeto de categoría, tenemos una colección de objetos de prueba. En resumen:

{
  "lastname": "Beal",
  "firstname": "Estele",
  ...,
  "results": [{
    "category": "Metabolic",
    "test": [
      { "name": "Albumin", "value": ... },
      { "name": ... }]
  }, {
    "category": "Lipoprotein",
    "test": [
      { "name": "HDL", "value": ...  },
      { "name": ... }]
  }, {...}]
}

El esquema siguiente describe cómo se muestran los resultados en dos cuadros de lista junto a la entrada de objetos. Todo esto… ¡sin una sola línea de código! De hecho, todas las propiedades están definidas en los objetos del formulario, la única parte en la que se necesita algo de codificación es al cargar el resultado. ¡Eso es todo, amigos! ?

Como puedes ver, este ejemplo hace que los resultados de los análisis de sangre sean más fáciles de leer y entender, especialmente cuando los datos incorrectos se resaltan con un toque de color.

Para ello, asociamos el siguiente método Decorate a la expresión meta de la propiedad del cuadro de lista:

If (This.value>(This.max*2))
$0 :=Form.meta.doubleOutOfRange
Else
If ((This.value>This.max) | (This.value<This.min))
$0 :=Form.meta.outOfRange

Else
$0 :=Form.meta.perfectValue

End if
End if

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.