Jump to content
  • 0

Listes & rubriques multivaluées


Loraga

Question

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

  • 0

Bonjour pour faire par TE il faut importer tes rubriques MV  dans la table qui affiche dans la table externe en précisant de créer les rubriques cela te transforme tes TE en rubriques individuelles il faut bien prendre la précaution de renseigner l'ID éléve 

Link to post
Share on other sites
  • 0

Bonjour Didi71 et merci pour votre aide,

Je ne vois pas comment "importer les rubriques multivaluées dans ma table" car elles sont déjà présente, puisque ma TE affiche déjà les enregistrements d'une occurrence de la table actuelle, le lien ne filtrant que les absences du stagiaire grâce à son ID.

il y a 11 minutes, didi71 a dit :

en précisant de créer les rubriques cela te transforme tes TE en rubriques individuelles

Où et comment précise-t-on cela ? Je n'ai pas bien compris non plus ^^

Link to post
Share on other sites
  • 0

J'aurai tendance à créer un script qui va "scanner" en boucle toutes les données des fiches et rubriques multivaluées, pour les placer dans des enregistrements séparés : un nouvel enregistrement = 1 matière, une date, un état.

Il y aurai donc une boucle pour les fiches et pour chacune d'elle une boucle pour les multivaluées avec un compteur $n + 1 pour indiquer quelle répétition utiliser. Et aussi une clé magique pour créer les nouveaux enregistrements en restant sur le lot de fiches à traiter.

Link to post
Share on other sites
  • 0

si tu importe des multivaluées FM te pose la question sur des enregistrements séparés si tu réponds oui cela crée les fiches de la table externe  que tu récupéres par LÎD éléve et qui permet de faire une liste 

Link to post
Share on other sites
  • 0
il y a 59 minutes, Jacques R. a dit :

J'aurai tendance à créer un script qui va "scanner" en boucle toutes les données des fiches et rubriques multivaluées, pour les placer dans des enregistrements séparés : un nouvel enregistrement = 1 matière, une date, un état.

Il y aurai donc une boucle pour les fiches et pour chacune d'elle une boucle pour les multivaluées avec un compteur $n + 1 pour indiquer quelle répétition utiliser. Et aussi une clé magique pour créer les nouveaux enregistrements en restant sur le lot de fiches à traiter.

Bonjour Jacques et merci pour votre aide 🙂

Ça me semble aussi être la solution la plus simple à penser et à mettre en œuvre ; mais ça ne va pas être ultra long à s’exécuter ?
Bon, après, le temps d’exécution n'est peut être pas vraiment un souci, car le but final de cette liste d'absences injustifiées sera de l'envoyer par email automatiquement une fois par semaine, donc ce sera plutôt côté serveur...

il y a 53 minutes, didi71 a dit :

si tu importe des multivaluées FM te pose la question sur des enregistrements séparés si tu réponds oui cela crée les fiches de la table externe  que tu récupéres par LÎD éléve et qui permet de faire une liste 

Ok, je crois avoir compris ; on parle de la fonction sous Fichier > Importer des enregistrements ? Si c'est le cas, il n'y a rien de très dynamique, ou alors je n'ai toujours pas compris ^^

Merci pour votre aide !

Link to post
Share on other sites
  • 0
Il y a 2 heures, Loraga a dit :

ça ne va pas être ultra long à s’exécuter ?
Bon, après, le temps d’exécution n'est peut être pas vraiment un souci, car le but final de cette liste d'absences injustifiées sera de l'envoyer par email automatiquement une fois par semaine, donc ce sera plutôt côté serveur...

Dans ce cas on cherche alors à alimenter une variable avec le contenu des multivalués. Par script avec des boucles. Tout dépend du nombre de fiches à traiter mais coté serveur ça peut aller assez vite.

Au fait, pourquoi 1 rubrique par matière et pas une table pour les matières ?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...