Sur une vieille application FileMaker, je dois réaliser un script ou calcul permettant de lister toutes les absences non justifiées d'un élève. Le seul hic, c'est que ces absences sont enregistrées dans plusieurs rubriques multivaluées au sein d'une table Absences. Quelques explications sur la structure de l'application vous permettront sûrement de mieux comprendre mon problème...
Nous avons dans cette application une quinzaine de matières différentes. Pour chaque matière, deux rubriques multivaluées sont utilisées pour enregistrer la date de l'absence, et enregistrer le statut de l'absence (absence justifiée, non justifiée, etc). Les deux rubriques multivaluées (et leurs 15 répétitions) sont placées l'une en dessous de l'autre, l'utilisateur effectue leur saisies ici et ça fait une sorte de tableau.
On a donc, pour une matière nommée Matière_1 par exemple, les deux rubriques multivaluées suivantes : Matière_1_Jour pour saisir la date et Matière_1_Statut, et ainsi de suite pour la 15aine de matières, on a donc au total une trentaine de rubriques multivaluée pour couvrir toutes les matières ! J'aimerai lister dans une rubrique texte les valeurs concaténées de ces deux rubriques pour chacune des matières, en excluant toutes celles dont le statut est = à "Justifiée". Par exemple, le résultat du calcul pourrait ressembler à ça :
Matière 1 - 17/09/2020 - Non justifiée Matière 2 - 26/10/2020 - Retard
Matière 1 - 27/10/2020 - Non justifiée
J'ai testé deux méthodes :
• Avec une table externe sur le modèle, affichant les enregistrements de la table courante et liée par l'ID du stagiaire. Le souci vient des répétitions des multivaluées, je ne sais pas comment les gérer au sein d'une TE, du coup seule la première répétition s'affiche et se répète dans la TE...
• Ensuite, j'ai essayé avec une rubrique calcul (et avec cette fonction personnalisée) de générer une liste combinée en indiquant directement en paramètre les deux rubriques multivaluées. Ça n'a pas vraiment fonctionné non plus, tout comme la TE, seule la première valeur de chaque rubrique s'affiche.
Si, par contre, je créé deux rubriques de calcul supplémentaires (Matière_1_Liste_Date et Matière_1_Liste_Statut) qui contiennent chacune un simple Liste ( ) de leur rubrique respective, là, ça marche, toutes les répétitions sont bien prise en compte. Ensuite, j'ai plus qu'à créer une 3ème rubrique calcul qui combine ces deux nouvelles listes et j'arrive enfin au résultat attendu pour une seule matière. Ouf, vraiment pas pratique !
Je n'ai pas testé la méthode par script, j'ai du mal à l'imaginer et j'ai peur que le temps d’exécution soit relativement long par rapport à une/des rubriques calcul.
Si vous avez des idées pour arriver au résultat voulu, je suis preneur de tout conseil, je ne suis vraiment pas à l'aise avec les multivaluées, j'hésite même presque à tout virer pour créer un système plus classique et maintenable mais c'est un boulot immense ^^
Merci d'avance pour votre aide ! Je reste dispo si mes explications ne sont pas claires, ça n'a pas été évident d'expliquer tout ça 🙂
Question
Loraga 13
Bonjour à tous,
Sur une vieille application FileMaker, je dois réaliser un script ou calcul permettant de lister toutes les absences non justifiées d'un élève. Le seul hic, c'est que ces absences sont enregistrées dans plusieurs rubriques multivaluées au sein d'une table Absences. Quelques explications sur la structure de l'application vous permettront sûrement de mieux comprendre mon problème...
Nous avons dans cette application une quinzaine de matières différentes. Pour chaque matière, deux rubriques multivaluées sont utilisées pour enregistrer la date de l'absence, et enregistrer le statut de l'absence (absence justifiée, non justifiée, etc). Les deux rubriques multivaluées (et leurs 15 répétitions) sont placées l'une en dessous de l'autre, l'utilisateur effectue leur saisies ici et ça fait une sorte de tableau.
On a donc, pour une matière nommée Matière_1 par exemple, les deux rubriques multivaluées suivantes : Matière_1_Jour pour saisir la date et Matière_1_Statut, et ainsi de suite pour la 15aine de matières, on a donc au total une trentaine de rubriques multivaluée pour couvrir toutes les matières !
J'aimerai lister dans une rubrique texte les valeurs concaténées de ces deux rubriques pour chacune des matières, en excluant toutes celles dont le statut est = à "Justifiée". Par exemple, le résultat du calcul pourrait ressembler à ça :
Matière 1 - 17/09/2020 - Non justifiée
Matière 2 - 26/10/2020 - Retard
Matière 1 - 27/10/2020 - Non justifiée
J'ai testé deux méthodes :
• Avec une table externe sur le modèle, affichant les enregistrements de la table courante et liée par l'ID du stagiaire. Le souci vient des répétitions des multivaluées, je ne sais pas comment les gérer au sein d'une TE, du coup seule la première répétition s'affiche et se répète dans la TE...
• Ensuite, j'ai essayé avec une rubrique calcul (et avec cette fonction personnalisée) de générer une liste combinée en indiquant directement en paramètre les deux rubriques multivaluées. Ça n'a pas vraiment fonctionné non plus, tout comme la TE, seule la première valeur de chaque rubrique s'affiche.
Si, par contre, je créé deux rubriques de calcul supplémentaires (Matière_1_Liste_Date et Matière_1_Liste_Statut) qui contiennent chacune un simple Liste ( ) de leur rubrique respective, là, ça marche, toutes les répétitions sont bien prise en compte. Ensuite, j'ai plus qu'à créer une 3ème rubrique calcul qui combine ces deux nouvelles listes et j'arrive enfin au résultat attendu pour une seule matière. Ouf, vraiment pas pratique !
Je n'ai pas testé la méthode par script, j'ai du mal à l'imaginer et j'ai peur que le temps d’exécution soit relativement long par rapport à une/des rubriques calcul.
Si vous avez des idées pour arriver au résultat voulu, je suis preneur de tout conseil, je ne suis vraiment pas à l'aise avec les multivaluées, j'hésite même presque à tout virer pour créer un système plus classique et maintenable mais c'est un boulot immense ^^
Merci d'avance pour votre aide ! Je reste dispo si mes explications ne sont pas claires, ça n'a pas été évident d'expliquer tout ça 🙂
Link to post
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.