Inclusion d`un jeu d`onglets dans un autre jeu d`onglets Résumé 4D

Transcription

Inclusion d`un jeu d`onglets dans un autre jeu d`onglets Résumé 4D
Inclusion d’un jeu d’onglets dans un autre jeu d’onglets
Par
Steve HARTMAN, MCP, Information System, 4D Inc.
Note technique 4D-200304-12-FR
Version 1
Date 1 Avril 2003
Résumé
Un jeu d’onglet est un tableau ou une liste hiérarchique à 1 niveau. Dans cette note, nous allons, en fonction des
accès, activer ou désactiver certains onglets sur une page elle-même gérée par un onglet.
4D Notes techniques
Copyright © 1985-2004 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 d u logiciel décrit dans ce document est régie par u n octroi de licence dont les termes sont précisés par ailleurs dans la
licence électronique figurant sur le support d u Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être
utilisés, copiés o u 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 o u recopiée de quelque manière que ce soit, électronique o u mécanique, y compris par
photocopie, enregistrement, archivage o u 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 o u 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.
1/8
Inclusion d’un jeu d’onglets dans un autre jeu d’onglets
Introduction
Depuis leur introduction en version 6, les onglets sont pour le développeur un outil très intéressant car ils sont
faciles à mettre en œuvre et de plus esthétiques. Ils lui permettent de montrer des informations différentes selon
les clics de l’utilisateur. Ils peuvent être utilisés pour naviguer entre les pages d’un formulaire ou pour regrouper
des informations par catégories. Les onglets peuvent être désactivés individuellement.
Les onglets – intuitifs pour l’utilisateur – sont très utilisés pour gérer les formulaires multipages. Ils ne
consomment que peu de mémoire et s’exécutent rapidement.
Les onglets sont des tableaux ou des listes (Les énumérations sont des listes à 1 niveau). Un des avantages de
recourir à une liste est de pouvoir détecter quel élément a été choisi en utilisant Element selectionne qui
retournera le numéro de référence de l’élément alors utilisable par d’autres commandes comme CHANGER
PROPRIETES LISTE. Avec ce numéro vous pouvez activer ou désactiver un onglet en fixant la propriété
saisissable de l’élément à Vrai ou Faux. Un autre avantage est de permettre au développeur de faire du code
spécifique selon l'état de visibilité de l'onglet comme le montre plus loin cette note.
À propos de la base de démonstration
Pour tester notre système d’onglet, prenons une base de données avec des accès limités selon la catégorie à
laquelle appartient l’utilisateur :
- Les ressources humaines
- La comptabilité
- La direction
- Systèmes d'information
Dans cette base il serait possible de contrôler les accès à certaines parties en grisant, c’est-à-dire en désactivant,
certains onglets. Ainsi un département de l’entreprise accéderait à certaines informations sans pour autant
pouvoir voir celles d’un autre.
Ouvrons la base « Onglets_Employés-Demo » et voyons les mots de passe :
Utilisateur
Développeur
Administrateur
Ressources humaines
Comptabilité
Direction
Systèmes d'information
Mot de passe
4d
« laisser vide »
« laisser vide »
« laisser vide »
« laisser vide »
« laisser vide »
Exemple 1 :
Sélectionnez « Ressources humaines » et validez. Allez au menu Fichier - > Voir employés. Double-cliquez sur
la fiche de John DOE.
Remarquez que vous n’avez accès qu’à des données sur le personnel, des données de la direction ainsi qu’à des
informations sur le salaire.
Annulez pour sortir du formulaire Entrée et cliquez « sortir » pour retourner à l’écran d’accueil.
À présent changez d’utilisateur : Fichier - > Changer utilisateur. Demandez « Comptabilité » et répétez les 3
2/8
étapes précédentes.
Vous avez désormais accès aux données du personnel, aux données de la direction ainsi qu’à des informations de
comptabilité.
Répétez l’opération pour chaque utilisateur et notez les différences d’accès aux informations.
Voici le code qui gère le système d’onglets dessiné en page zéro du formulaire :
Si (Evenement formulaire=Sur chargement )
Au cas ou
: (Utilisateur courant="Ressources Humaines")
CHANGER PROPRIETES ELEMENT(vTab;3;Faux;Normal ;0)
CHANGER PROPRIETES ELEMENT(vTab;4;Faux;Normal ;0)
: (Utilisateur courant="Comptabilité")
CHANGER PROPRIETES ELEMENT(vTab;2;Faux;Normal ;0)
CHANGER PROPRIETES ELEMENT(vTab;4;Faux;Normal ;0)
: (Utilisateur courant="Direction")
CHANGER PROPRIETES ELEMENT(vTab;3;Faux;Normal ;0)
: (Utilisateur courant="Systèmes Information")
CHANGER PROPRIETES ELEMENT(vTab;2;Faux;Normal ;0)
CHANGER PROPRIETES ELEMENT(vTab;3;Faux;Normal ;0)
Fin de cas
Fin de si
Maintenant utilisons un nouveau système d’onglets à l’intérieur d’une des pages (donc elle-même contrôlée par
onglet) afin de présenter un département de l’entreprise. Ce nouvel onglet permettra de s’affranchir de la
création de nouveaux formulaires saisie et liste.
Exemple 2 :
Changez d’utilisateur : Fichier - > Changer utilisateur. Demandez Systèmes Information. Validez.
Allez à Fichier - > Voir employés. Double-cliquez sur la fiche de John DOE.
Allez à l’onglet Systèmes Information.
Comme vous le constatez il y a un autre jeu d’onglets dans la page. Cliquez sur chaque onglet de ce nouveau jeu
et constatez que l’onglet devenu courant s’estompe.
Le code qui régit ceci est une méthode objet (objet en page 4) :
Au cas ou
: (Evenement formulaire=Sur chargement )
` pour la 1re fois, Iniatialisation sur Systèmes d'information
LLastTab:=1 ` Set the First tab as the currently viewed tab
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Faux;$LFont;$LIcon)
CHOIX VISIBLE(*;"Group@";Faux)
CHOIX VISIBLE(*;"Group1@";Vrai)
: (Evenement formulaire=Sur clic souris )
` on met à jour quel onglet doit être actif et celui qui ne doit pas l'être
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Vrai;$LFont;$LIcon)
LLastTab:=Element selectionne(vIS_Tab) ` Update the tab number
` Désactive l'onglet qui vient d'être désactivé
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Faux;$LFont;$LIcon)
3/8
CHOIX VISIBLE(*;"Group@";Faux)
CHOIX VISIBLE(*;"Group"+Chaine(LLastTab)+"@";Vrai)
Fin de cas
Dans cette base de données, Systèmes d'information utilise un second jeu d’onglets contrôlant diverses
informations relatives aux employés et à leurs privilèges. (Figures 1, 2, 3)
Figure 1
Cet onglet stocke les informations relatives aux comptes eMail des employés. La figure 1a nous montre à quoi
ressemble l’onglet en structure :
figure1a
4/8
Figure 2.
La figure 2 gère les comptes FTP. Les objets sont décrits dans la figure 2a :
Figure 2a
Figure 3
Pour terminer, les informations sur les comptes propres à la base sont stockées dans le troisième onglet de la
figure 3. Les objets de cet onglet sont montrés par la figure 3a :
5/8
Figure 3a
L’énumération qui est associée à cet onglet est décrite en figure 4. Des icônes ont été ajoutées à Systèmes
Information afin de montrer comment créer une interface plus attractive.
Figure 4
Selon l’onglet qui est choisi, les objets peuvent être visibles ou non. Les objets ont été groupés en structure afin
de faciliter leur positionnement dans le formulaire. Un revers à cette option : la commande CHOIX VISIBLE ne
fonctionne pas pour un groupe d’objets. Aussi les objets sont nommés de manière bien précise pour chaque
page de l’onglet puis groupés afin d’en faciliter le positionnement en structure. Dans notre exemple chaque nom
d’objet d’un même groupe commence par le nom du groupe. Par exemple, chaque objet situé en page 1 (cf.
figure ci-dessous) commence par Group1 : Group1Emp_EmailloginCheckbox.
Le groupe 1
Chaque objet de la page 2 voit son nom débuter par Group2 et est rassemblé dans un groupe nommé Group 2.
6/8
Le groupe 2
Même chose avec la page 3 où les noms d’objets débutent par Group3 et le groupe est Group 3 (notez
l’espace).
Le groupe 3
Une fois les groupes constitué, ils sont positionnés selon la figure 5.
Figure 5
Affiché ains,i le formulaire serait somme toute peu lisible. Pour remettre de l’ordre dans ce fouillis la commande
CHOIX VISIBLE est ajoutée au code que voici :
Au cas ou
: (Evenement formulaire=Sur chargement )
7/8
` au chargement on se place tout de suite sur l’onglet « email »
LLastTab:=1 ` Set the First tab as the currently viewed tab
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Faux;$LFont;$LIcon)
CHOIX VISIBLE(*;"Group@";Faux)
CHOIX VISIBLE(*;"Group1@";Vrai)
: (Evenement formulaire=Sur clic souris )
` on met à jour quel onglet doit être actif et celui qui ne doit pas l'être
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Vrai;$LFont;$LIcon)
LLastTab:=Element selectionne(vIS_Tab) ` Update the tab number
` Déactive l'onglet qui vient d'être déactivé
LIRE PROPRIETES ELEMENT(vIS_Tab;LLastTab;$fEnterble;$LFont;$LIcon)
CHANGER PROPRIETES ELEMENT(vIS_Tab;LLastTab;Faux;$LFont;$LIcon)
CHOIX VISIBLE(*;"Group@";Faux)
CHOIX VISIBLE(*;"Group"+Chaine(LLastTab)+"@";Vrai)
Fin de cas
On perçoit l’intérêt d’avoir une charte de "nommage" des objets. Le caractère joker @ permet de rendre invisible
tous les objets simultanément puis le groupe d’objets que l’on souhaite utiliser est rendu visible en utilisant
LIRE PROPRIETES ELEMENT qui définit le numéro de page.
Conclusion
Les onglets sont une manière très puissante d’associer multipage et multiformulaire. Ils sont peu gourmands en
mémoire, rapides, intuitifs et visuellement agréables.
Notre exemple nous montre cinq onglets cliquables pour aller vers autant de pages où sont gérées des opérations
locales. En page quatre, un autre jeu d’onglets est là pour contrôler des informations propres au département de
la société.
Les onglets permettent au développeur de présenter des informations changeant au gré des clics utilisateur. Les
onglets permettent de naviguer de page en page d’un formulaire ou de montrer des informations par catégories.
Un jeu d’onglet est un tableau ou une liste hiérarchique à 1 niveau. Dans le cas d’une liste on détectera l’élément
cliqué grâce à Element selectionne qui retournera le numéro de référence de l’élément alors utilisable par
d’autres commandes comme CHANGER PROPRIETES LISTE. Notre exemple nous montre aussi que les
onglets peuvent être désactivés de façon sélective en fixant la propriété saisissable de l’élément à Vrai ou Faux.
8/8