Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


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

Date de publication : Janvier 2005

Par Sati HILLYER (4D Evangelist, 4D Inc.)
 

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.

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. A 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 oeuvre 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 ellemê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 teminées de John ou toutes ses tâches prévues. Nous ne pouvons par 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. A 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

    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 oeuvre 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

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

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.
Contacter le responsable de la rubrique 4D