I. Sommaire▲
4D 2004 introduit une myriade de nouvelles fonctionnalités, parmi lesquelles se trouve la case à cocher à trois états. Ce nouvel outil ouvre une série de possibilités dans la création de dialogues interactifs avec l’utilisateur. La note technique suivante explique l’utilisation des cases à cocher à trois états et propose un exemple d’application.
II. Introduction▲
Dans les versions précédentes de 4D, l’implémentation d’une case à cocher à trois états était une tâche lourde. Cela nécessitait trois images différentes pour représenter les trois états de la case. Les images étaient alors stockées dans un tableau accessible par un bouton image. À chaque sélection du bouton image, une image du tableau apparaissait. Vous pouviez alors capturer une valeur basée sur l’image choisie, 0 (non cochée), 1 (cochée) ou 2 (état intermédiaire). Le même concept est maintenant un comportement standard de 4D 2004. On peut maintenant aisément mettre en œuvre cette nouvelle possibilité dans l’éditeur de formulaires.
Les cases à cocher à trois états permettent une interface plus dynamique dans un dialogue avec un utilisateur. Il peut y avoir des cas où vous ne vous intéressez pas seulement au noir et au blanc, mais au noir et au blanc et à tout ce qui est entre les deux.
Par exemple, vous pouvez améliorer un dialogue de recherche en implémentant une case à cocher à trois états pour chercher quelque chose qui peut être vrai, faux ou sans objet. Certaines recherches peuvent avoir besoin que certains paramètres soient spécifiques et d’autres plus généraux. Les cases à cocher à trois états sont des objets parfaitement adaptés à de telles tâches.
III. Scénario : ajout de fonctionnalités à une recherche▲
Restons sur l’exemple mentionné ci-dessus. Vous avez décidé de créer votre propre dialogue de recherche dans 4D. Vous vous rendez compte que vos utilisateurs effectuent une recherche spécifique à de nombreuses occasions et qu’avec votre nouveau dialogue de recherche, ils pourront utiliser l’application de manière plus efficace. Dans notre base, nous avons une table de TACHES. Chaque tâche a les champs suivants qui lui sont associés (Figure 1).
Dans notre exemple, de nombreuses recherches sont basées sur la personne chargée de la tâche, la tâche elle-même et une description. Toutefois, les champs Prévue et Terminée sont aussi des critères de recherche importants. Donc, la question reste posée, comment pouvons-nous inclure tous ces champs dans un dialogue de recherche simple, mais efficace ?
Le champ Terminée est de type Booléen et le champ Prévue de type Date. Pour notre exemple, nous implémenterons une case à cocher pour ces deux champs. Pour la date, si nous avons une valeur attribuée, la tâche est prévue ; donc, la date vide (00/00/00) signifie non prévue. Dans notre exemple, nous pouvons aisément utiliser deux cases à cocher à deux états pour gérer ces options (Figure 2).
Cela soulève une question : et si un utilisateur veut chercher toutes les tâches d’une certaine personne ? Par exemple, l’utilisateur veut connaître toutes les tâches de John. Avec notre implémentation telle quelle, nous pouvons avoir toutes les tâches terminées de John ou toutes ses tâches prévues. Nous ne pouvons pas demander les deux.
De manière similaire, qu’arrive-t-il lorsqu’un utilisateur veut trouver toutes les tâches concernant un certain sujet, indépendamment du fait qu’elles soient prévues ou non ? Ce sont des cas pratiques que les utilisateurs peuvent rencontrer. L’implémentation de cases à cocher à trois états fournit un moyen de faire une requête sur certains critères en laissant ouvertes d’autres options. Nous pouvons aisément modifier ce formulaire et passer les cases à cocher au nouveau format à trois états (Figure 3).
Maintenant que nous avons créé notre formulaire et activé nos cases à cocher à trois états, écrivons un peu de code. À chacun des trois états est affecté un nombre unique. Comme pour la case à cocher à deux états, 0 est pour non cochée et 1 pour cochée. Avec le troisième état, nous avons maintenant la valeur 2, pour l’état intermédiaire (Figure 4).
Ci-dessous se trouve le code utilisé lors de l’exécution de la recherche :
Nom de la méthode : ExecuteFind
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
C_TEXTE
(
vName)
TABLEAU TEXTE
(
findType;
3
)
`L'utilisateur doit choisir dans un menu déroulant un des champs
` dans lequel s'effectue la recherche.
Au cas ou
: (
findType{findType}=
« Personne »)
CHERCHER
([
TACHES];[
TACHES]
Personne=
vName;*)
: (
findType{findType}=
« Tâche »)
CHERCHER
([
TACHES];[
TACHES]
Tâche=
vName;*)
: (
findType{findType}=
« Description »)
CHERCHER
([
TACHES];[
TACHES]
Description=
vName;*)
Fin de cas
` Test des trois états pour Terminée
Au cas ou
: (
cCom=
0
)
CHERCHER
([
TACHES];
&
;[
TACHES]
Terminée=
Faux
;*)
: (
cCom=
1
)
CHERCHER
([
TACHES];
&
;[
TACHES]
Terminée=
Vrai
;*)
: (
cCom=
2
)
`C'est l'état intermédiaire, donc ça m'est égal qu'elle soit terminée ou non.
Fin de cas
` Test des trois états pour Prévue
Au cas ou
: (
cDue=
0
)
CHERCHER
([
TACHES];
&
;[
TACHES]
Prévue=
!00/00/00!
;*)
: (
cDue=
1
)
CHERCHER
([
TACHES];
&
;[
TACHES]
Prévue>
!00/00/00!
;*)
: (
cDue=
2
)
`C'est l'état intermédiaire, donc ça m'est égal qu'elle soit prévue ou non.
Fin de cas
`Complétez la requête! Elle peut avoir été terminée sur un paramètre *
`par un des appels ci-dessus, les quelques lignes ci-dessous la complèteront.
Au cas ou
: (
findType{findType}=
« Personne »)
CHERCHER
([
TACHES];[
TACHES]
Personne=
vName)
: (
findType{findType}=
« Tâche »)
CHERCHER
([
TACHES];[
TACHES]
Tâche=
vName)
: (
findType{findType}=
« Description »)
CHERCHER
([
TACHES];[
TACHES]
Description=
vName)
Fin de cas
IV. Utilisation de la base▲
Lorsque vous ouvrez la base, vous arrivez en mode Menus créés. Sélectionnez Tâches dans le menu Démo. Vous obtenez une liste de tâches assignées à John et Sue. Si vous sélectionnez Chercher dans le menu Démo (ou Ctrl-F pour Windows, Cde-F pour Mac), vous appelez le nouveau dialogue de recherche. Voici un exemple illustrant les nouvelles possibilités des cases à cocher à trois états.
Essayez ceci :
Faites une recherche pour John avec Prévue cochée et Terminée en position intermédiaire.
Résultat :
Cette recherche va retourner 80 tâches assignées à John, certaines terminées et d’autres non, mais possédant toutes une date de prévision non vide.
V. Résumé▲
Les cases à cocher à trois états offrent des fonctionnalités nouvelles avec un meilleur contrôle sur les recherches. 4D 2004 rend leur mise en œuvre rapide et extrêmement facile. Les cases à cocher à trois états ne sont qu’un outil parmi d’autres à ajouter à votre arsenal pour concevoir des applications personnalisées et intelligentes.
VI. Base exemple▲
Téléchargez la base exemple :
Base exemple