1- Utilise des requêtes. Je vous vois tous dire "ouais c'est mieux, non c'est moins bien, ouais c'est plus performant..." Un débutant serait tenté de vous demander "Pourquoi ?"
Pour programmer dans d'autre langage (parfois bien plus complexe que le wlangage qui reste à a la portée de pas mal de monde)...
Lorsque l'on manipule une base de donnée (hyperfileSQL en l'occurrence mais c'est valable pour les autres) la filtration par requête est la façon la plus native de le faire, la machine interprétera de façon plus efficace car c'est ainsi que le protocole est prédéfini on parle de fonction "native", PCSoft à voulu le simplifier avec sa méthode Hfiltre (pour faire gagner de temps aux devs grosso modo) dans certain cas cela fonctionne, et dans ton cas ça fonctionnera sans problème, mais il faut savoir que dans certaine application un fichier de données peut contenir des centaines de rubriques et des milliers d'enregistrements, parti de ce constat la manière la plus professionnelle de manipuler une base de données est d'utiliser les outils qui lui ont été dédiés et crées pour la manipuler, c'est a dire une requête HFSQL.
Secondo, en créant une requête, on parle en programmation "d'instanciation" ça veut dire quoi ? Que tu vas rendre disponible en tout point de ton application un "outils" qui te sera utile, tu te crée une bibliothèques de requêtes que tu vas pouvoir appeler en tout point de ton programme et non pas uniquement par clique sur un bouton borné a un endroit précis (et encapsuler de la filtration de BDD directement sur un bouton, c'est franchement brute et rustre, c'est wlangage quoi !
....)
Une requête c'est paramétrable, qui dit paramètre dit ...?? "VARIABLE", y'en a qui suive au fond c'est bien ! Avec une requête tu reste maître des variables que tu veux instancier.
Enfin, si demain tu dois faire évoluer ton fichier de données et/ou modifier ta méthode de filtration et que cette méthode de filtration est utilisée à plusieurs endroit de ton application, tu as juste a modifier ta requête pour que cela soit pris en compte dans la totalité de ton application (par appel de la dite requête). Tu rends ton application flexible, évolutive, et franchement plus sympa à développer.
2- Utilise le groupware, sur la version 20 il est plutot bien fini, encore une fois "Pourquoi ?"
Comme expliqué ci-dessus, le groupware permet de faire de l'access management (gestion des droits d'accès),
Après tu peux tout a fais le faire par programmation, en manipulant un fichier de données, mais c'est une méthode un peu plus fastidieuse car a chaque fois que tu voudras limiter tel menu ou tel page à un utilisateur il faudra constamment que tu demande au CORE de ton application d’exécuter une liste d'instructions pour:
=> Checker userID
=> Checker les droit de l'userID que tu auras préalablement créer dans un fichier de données
=> Comparer la fenêtre demandée en accès avec les droit de l'userID
=> si c'est OK => j'ouvre/je lance/j'execute
=> si c'est pas OK => je dois.....Bloquer exécuter l'affichage d'un message
Non...Stop...Groupware le fait nativement.
Si tu utilises le groupware, fait le à la fin de la phase de développement de ta charnière centrale, comme expliqué plus haut, car à chaque simulation/test de ton application tu devras passer par la phase de login.
(PS: j'ai utilisé le groupware utilisateur au bout de quelque jours sur windev très peu de temps après mes premiers pas et ce n'est pas si compliqué ou catastrophique qu'on voudrait le prétendre).
Bon dev !
Cliquez pour agrandir...