/

 

The manual

Self-training

Experimentation

Contact

 

Language

Les armoires

Lors de cette courte leçon, nous allons déployer un module complémentaire des trois précédents : le module des armoires.

Voici le module armoires complet, prêt à l'emploi :

   

Les armoires (organisations et personnes, et processus)

Ce module est très court puisqu'il ne contient qu'un formulaire de recherche peu utilisé, et un état qui liste l'ensemble des armoires. Une armoire peut être au choix une personne, une organisation ou un processus. La liste des armoires fourni la liste des endroits où l'on peut vouloir ranger une information dans cette organisation standardisée que nous vous proposons à ce niveau 2 de l'autoformation, et où, au niveau 3 de cette autoformation, on pourra vouloir créer un dossier primaire.

La liste des armoires

Techniquement, dans les modules organisations, personnes et processus, nous avons attribué au formulaire, en plus de son type de base, un second type 'cabinet'. Voici par exemple les propriétés d'une fiche personnes :

En définissant l'état 'cabinets_list' qui collecte les fiches de type 'cabinet' nous obtenons donc une liste qui comprend l'ensemble des personnes, plus l'ensemble des organisations, plus l'ensemble des processus.

Voyons maintenant la définition des champs de cet état :

Le champ 'Armoire' doit désigner le nom de l'armoire. La difficulté est que la manière de déterminer ce nom dépend du type de fiche collectée. On va donc définir un champ calculé à la collecte.
Sur la première ligne de la formule de collecte, on déclare les champs qui pourraient se trouver dans la fiche collectée, mais ne s'y trouvent pas toujours. C'est pour cela que l'on ne peut pas se contenter d'une définition implicite comme dans le cas des états précédents :

field Str organisation first_name name extra process

Ensuite, la seconde ligne du programme calcule le nom effectif de l'armoire :

shunt version:"organisation">0 organisation version:"people">0 (shunt first_name<>"" first_name+" " "")+" "+name+(shunt extra<>"" " "+extra "") version:"process">0 process ""

La fonction Storga 'version' teste le type du formulaire, et retourne le numéro de version associé à ce type, ou 'undefined', qui est une valeur négative, sinon. En conséquence 'version:"organisation">0' peut se lire sous la forme est-ce que le formulaire a le type 'organisation' ?
Donc l'ensemble de la ligne peut se lire : si le formulaire a le type 'organisation' alors le nom sera le champ 'organisation' du formulaire, sinon si le champ a le type 'people' alors le nom sera la concaténation des trois parties du nom séparées par des espaces, sinon si le champ a le type 'process' alors le nom sera le champ 'process', sinon le nom sera vide.

Le champ 'type' est aussi calculé à la collecte, via la formule :

shunt version:"organisation">0 "organisation" version:"people">0 "personne" version:"process">0 "processus" ""

Cette formule peut se lire : si le formulaire a le type 'organisation' alors ce champ type sera la chaîne de caractères 'organisation', sinon si le formulaire a le type 'personne', alors ce champ type sera la chaîne de caractères 'personne',  sinon si le formulaire à le type 'process', alors ce champ type sera la chaîne de caractères 'processus', sinon ce champ sera vide.

Enfin, le champ 'Couleur de fond' sert uniquement à fournir une couleur de fond pour la ligne. Sa formule est :

if type="organisation"
  background hsl 0 100 90 row
eif type="personne"
  background hsl 0 100 97 row
eif type="processus"
  background hsl 30 100 85 row
""

'background hsl 0 100 90 row' peut se lire : la couleur de fond de la ligne est la couleur 'hsl 0 100 90'. 'hsl' signifie 'hue', 'saturation', 'light'. 'hue' est la teinte angulaire, où 0 représente le rouge, 120 représente le vert et 240 représente le bleu. 'saturation' est le niveau de chromacité où 0 représente un gris et 100 représente une couleur pure. Enfin 'light' est la luminosité où 0 représente le noir et 100 représente le blanc.
L'ensemble de la formule peut donc se lire : si le type est 'organisation', alors colorer le fond de la ligne en rose, sinon si le type est 'personne', alors colorer le fond de la ligne en rose plus clair, sinon si le type est 'processus' alors colorer le fond de la ligne en orange.

La dernière ligne de la formule est constituée de deux doubles guillemets, c'est à dire la chaîne vide. Elle représente le résultat du calcul de la formule. En effet, 'bg' est un champ calculé de type texte, donc sa formule de calcul doit retourner une chaîne de caractères. Les lignes précédentes, qui sont la raison d'être de ce champ, ne sont que des effets de bord qui ne dispensent pas de calculer un résultat à la fin.

 

Nouveau message

From :

Message Title:

Message: