J'ai un problème avec un script d'attribution pour le niveau d'acheminement d'un élève sur son projet scientifique, pour une exposition.
J'ai 100 élèves qui y participent (situation fictive). Certains élèves, seul, ou avec 2 ou 3 confrères, peuvent "travailler" sur le même projet.
J'ai une table de correspondance 2x2 (Projet) qui me donne le niveau de progression "Niveau 1", "Niveau 2" ou "niveau 3" pour un projet. Un projet peut être encore au niveau 1, pour la majorité des élèves au début, mais pourrait aussi "stagner" à ce niveau.
J'aimerais, pour un élève donné, connaître à quel niveau est rendu son projet. Si le projet ne possède que le "niveau 1" dans la table des Projets, "niveau 1" s'affichera automatiquement (plus rapide). Mais si le projet évolue au niveau 2 ou 3, on devra choisir le niveau pour cet élève à partir de la table de correspondance (plus lent, car choix à faire).
J'ai déjà créé un script qui n'utilisait que des liens entre la table des élèves et celle des projets. Mais son exécution était beaucoup trop lente. J'ai alors pensé utiliser une table virtuelle pour la table des Projets à l'aide d'une variable globale à deux $, dont j'en ai étudié le fonctionnement avec la présentation de Tanguy Colles, "Comprendre et appliquer VirtualList, 2015". J'ai même lorgné sur la présentation "Construire des variables structurées, avec Sylvain Parent, 2015". J'ai aussi pensé utiliser un modèle "Utilitaire" de la table des Projet, isolé de toute dépendance, accélérant les processus au cours de l'exécution du script.
Je me suis trouvé avec 3 situations pour la boucle sur les élèves (limite de la boîte de dialogue FMP):
Cas 1: Projet au niveau 1, unique. Attribution automatique pour cet élève, puis retour à l'élève suivant. Étant donné que le niveau est unique, le choix devient automatique, et rapide.
Cas 2: Projet au niveau 2 ou 3 (tableau de correspondance modifié manuellement selon l'évolution). Attribution du choix de niveau selon le contenu la table de correspondance, puis retour à l'élève suivant.
Cas 3: Nouveau projet pour cet élève (situation plus rare, sauf au début). L'utilisateur est alors dirigé au tableau de correspondance, pour y ajouter le nom du projet, et son niveau 1. Puis retour à l'élève suivant.
Cas 4 ?: Projet qui a évolué en "Niveau 2" ou "Niveau 3" à ajouter dans la table de correspondance ??. Je ne suis pas encore rendu là.
Évidemment, on pourrait faire tout cela à la "mitaine", avec Excel, comme actuellement l'enfer, et de nombreuses autres solutions aussi pourraient être disponibles. Mais créer ce script me donne le défi d'en trouver le processus logique simple et optimal.
Quelqu'un pourrait-il m'aider ?