Bonjour,
je souhaite afficher un tableau croisé sur un boolean.
Mon attribut est un boolean non obligatoire. J’ai donc trois valeurs possibles : oui, non et rien.
Dans le tableau croisé, la valeur rien est remplacé par un non, ce qui entraîne une certaine confusion. Notre utilisateur souhaite faire la différence entre un champ jamais initialisé et un vrai non.
Un booléen n’est pas sensé avoir 3 valeurs, le défaut est donc que le tableau devrait n’avoir qu’une seule ligne “Non” et pas 2, mais surtout que votre champ n’est pas sensé être null. Dans les formulaires par exemple, un boolean null est affiché à “non” comme valeur par défaut, ce n’est pas une anomalie de ne pas avoir 3 radios buttons…
Si vous voulez 3 valeurs, modifiez simplement votre champ en type Énuméré facultatif avec la liste de valeur BOOL. C’est compatible avec les valeurs null, ‘0’ et un ‘1’ en base.
Bonjour,
merci pour votre retour. Un boolean ne peut pas être nul mais un Boolean si.
Je pensais que Simplicité gérait des Boolean puisqu’un attribut pouvait être mis en non obligatoire. Nous avions besoin de la valeur nulle afin de différencier un champ jamais renseigné d’un “Non” clair.
Quand à l’affichage, pas besoin de 3 radio button, juste deux suffisent et aucune valeur pré-renseignée.
Je prends note de votre solution. J’aurai aimé en avoir eu qui n’impose pas l’affichage d’un radio button “None”. Je vais voir pour le masquer en css.
Un champ facultatif permet de revenir un null, et même si on le prévoyait pour un booléen ce serait au final équivalent à un énuméré à 3 valeurs pour l’utilisateur (selectbox ou boutons radio à 3 entrées).
Votre cas est plus complexe puisque null semble autorisé qu’à la création, ensuite une fois Oui/Non sélectionné, on ne peut plus revenir à null ?
Il suffit de passer votre champ Enum BOOL en obligatoire pour faire disparaître le “aucun”.
Sinon le rendre obligatoire ou pas via le initUpdate en fonction de sa valeur (non obligatoire tant que vide).
C’est plus pérenne que du CSS qu’il faudra revoir en cas de changement de rendering (bootstrap 4 n’aime pas les radio-inline, ça va devenir des form-check-inline…).
Dans le cas de Bruno, j’aurai fait comme suit :
une nouvelle liste de valeurs à 3 entrées = 3 traductions back sans code front en dur (code 0 = no, 1 = yes, et N = Not answered)
obligatoire + valeur par défaut “N”
Et joué si besoin en back par code pour activer/désactiver l’item “N” par accesseur getField(“myfield”).getList() suivants les cas