Les armoiresLors 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 : 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 armoiresTechniquement, 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. 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' ? 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' 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. 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.
|