Les cases à cocher à trois états (4D 2004)

Sati HILLYER

4D 2004 propose une myriade de nouvelles fonctionnalités. L'une d'entre elles est l'introduction de la case à cocher à trois états. Ceci ouvre de nombreuses perspectives pour la création de dialogues interactifs. La présente note technique vous explique comment utiliser les cases à cocher à trois états et vous en présente un exemple. ♪

- Titre : Les cases à cocher à trois états (4D 2004)

- Auteur : Sati HILLYER

- Parution : 1 janvier 2005

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Sommaire

- II. Introduction

- III. Scénario : ajout de fonctionnalités à une recherche

- IV. Utilisation de la base

- V. Résumé

- VI. Base exemple

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).

Figure 1 : Table des tâches

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.

Figure 2 : Dialogue de recherche personnalisée

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).

Figure 3 : Activation de l’option Trois états

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).

Figure 4 : Les trois états

Ci-dessous se trouve le code utilisé lors de l’exécution de la recherche :

Nom de la méthode : ExecuteFind

1. C_TEXTE (vName)

3. TABLEAU TEXTE (findType;3)

4. `L'utilisateur doit choisir dans un menu déroulant un des champs

5. ` dans lequel s'effectue la recherche.

6. Au cas ou

7. : (findType{findType}=« Personne »)

8. CHERCHER ([TACHES];[TACHES]Personne=vName;*)

9. : (findType{findType}=« Tâche »)

10. CHERCHER ([TACHES];[TACHES]Tâche=vName;*)

11. : (findType{findType}=« Description »)

12. CHERCHER ([TACHES];[TACHES]Description=vName;*)

13. Fin de cas

15. ` Test des trois états pour Terminée

16. Au cas ou

17. : (cCom=0)

18. CHERCHER ([TACHES]; & ;[TACHES]Terminée=Faux;*)

19. : (cCom=1)

20. CHERCHER ([TACHES]; & ;[TACHES]Terminée=Vrai;*)

21. : (cCom=2)

22. `C'est l'état intermédiaire, donc ça m'est égal qu'elle soit terminée ou non.

23. Fin de cas

25. ` Test des trois états pour Prévue

26. Au cas ou

27. : (cDue=0)

28. CHERCHER ([TACHES]; & ;[TACHES]Prévue=!00/00/00!;*)

29. : (cDue=1)

30. CHERCHER ([TACHES]; & ;[TACHES]Prévue>!00/00/00!;*)

31. : (cDue=2)

32. `C'est l'état intermédiaire, donc ça m'est égal qu'elle soit prévue ou non.

33. Fin de cas

35. `Complétez la requête! Elle peut avoir été terminée sur un paramètre *

36. `par un des appels ci-dessus, les quelques lignes ci-dessous la complèteront.

37. Au cas ou

38. : (findType{findType}=« Personne »)

39. CHERCHER ([TACHES];[TACHES]Personne=vName)

40. : (findType{findType}=« Tâche »)

41. CHERCHER ([TACHES];[TACHES]Tâche=vName)

42. : (findType{findType}=« Description »)

43. CHERCHER ([TACHES];[TACHES]Description=vName)

44. 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