Comment afficher une collection à plusieurs niveaux dans différentes boîtes de liste !

Traduit automatiquement de Deepl

A partir de 4D v17, le contenu d’une collection multi-niveaux peut facilement être affiché dans différentes boîtes de liste. Cela signifie que vous pouvez lier plusieurs boîtes de liste pour afficher des détails imbriqués… sans une seule ligne de code! Pour ce faire, il suffit d’utiliser un objet ou une collection comme source de données pour une autre boîte de liste !

Avec le nouveau type de collection de boîtes de liste, les propriétés « Current item » et « Selected items » ont été ajoutées. Gardez à l’esprit que la propriété « Current item » vous permet d’obtenir un objet, tandis que la propriété « Selected item » renvoie une collection.

Prenons un exemple concret et voyons comment nous pouvons afficher les résultats d’une analyse de sang !

Exemple de base de données

Qu’est-ce qu’il y a dedans ?

Au premier niveau, nous avons le nom du patient, la date de l’examen et le nom du médecin. Ensuite, les résultats sont classés par catégorie. Pour chaque catégorie, il y a une liste de tests avec la valeur du résultat, le min, le max, et l’unité.

En termes de structure de données, nous avons un objet avec des attributs de premier niveau(i.e. prénom, nom, etc.), ainsi qu’une collection d’objets catégories. Ensuite, pour chaque objet catégorie, nous avons une collection d’objets test. Pour résumer :

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

Le schéma ci-dessous décrit comment les résultats sont affichés dans deux boîtes de liste à côté de la saisie des objets. Tout cela … sans une seule ligne de code ! En fait, toutes les propriétés sont définies dans les objets du formulaire, la seule partie où un peu de codage est nécessaire est lors du chargement du résultat. C’est tout, les amis ! ?

Comme vous pouvez le constater, cet exemple rend les résultats des tests sanguins plus faciles à lire et à comprendre, surtout lorsque les données incorrectes sont mises en évidence par une touche de couleur.

Pour ce faire, nous avons associé la méthode Decorate suivante à la méta-expression dans la propriété de la boîte de liste :

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
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.