Récupération Des Enregistrements Liés En Bout De Chaine
#1
Posté 02 février 2012 - 19:08
je fais appel à vos connaissances pour éclaircir des points que je n'arrive pas à surmonter sur le montage de ma BDD.
Après cette phrase d'accroche Ô combien originale, entrons dans le vif...
J'ai 3 principales tables :
- Tours
- Recettes
- Ingrédients
J'ai de plus 2 tables de liaisons TouRec et RecIng , pour pouvoir mettre différents ingrédients dans une recette, et différentes recettes dans un tour, sachant qu'une même recette peut se retrouver dans différents tours, et un seul ingrédient dans plusieurs recettes...
Je voudrais, pour un Tour, sélectionner plusieurs Recettes, afin de lister tous les Ingrédients nécessaires au Tour.
Ce que j'arrive à faire (recours aux TE) :
- sélectionner les ingrédients appartenant à une recette, afin de créer la recette en question.
- sélectionner les recettes appartenant à un tour, afin de créer le tour.
Je pensais avoir réussi l'essentiel. MAIS je n'arrive pas à faire afficher tous les Ingrédients (contenus dans les Recettes) nécessaires à un Tour... alors ça paraît peut être évident mais là j'avoue saturer et je n'arrive plus à me démêler les idées. En fait je n'arrive pas à faire afficher les enregistrements liés de la bouée la plus éloignée...
Je me demande du coup si je m'y suis mal pris dans la structure, et que j'ai rien compris à comment hiérarchiser les tables et faire des liaisons qui tiennent la route (probablement un peu voire beaucoup). Pour le moment j'ai une seule ancre (Tour), que je lie "séquentiellement" aux bouées -> TouRec <- Recettes -> RecIng <- Ingrédients, via les zkp/zkf, c'est donc extrêmement simple d'autant plus que je ne cherche pas à faire d'analyse de données funky par dessus.
En fait, j'ai l'impression que la structure que j'ai faite suffit mais que je manque cruellement de connaissances sur les fonctions/scripts/calculs possibles. J'ai essayé de lire les descriptifs sur des fonctions comme ActiverEnregistremenLié, mais je n'arrive pas à le mettre en oeuvre... et les tutos que je vois pour faire des scripts avec ça valent encore une autre paire de manches.
ALors, avant de me lancer là dedans aveuglément, sachant le peu de temps qui me reste avec la version d'évaluation, je voulais déjà savoir si la structure de base est correcte et qu'effectivement je n'ai pas d'autre choix..!!
Est-ce que quelqu'un pourrait m'aiguiller ? :S Je suis perdu!!
Merci d'avance...
Paul
#2
Posté 02 février 2012 - 20:05
Une mauvaise écriture est une des formes du mépris qu'on a pour autrui ; car elle prouve qu'on attache plus de prix à son propre temps qu'à celui des autres.
Hugo De Groot, dit Grotius (1583-1645)
#3
Posté 02 février 2012 - 21:38
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#4
Posté 03 février 2012 - 12:31
ps Gilles : o_Ô'
#5
Posté 03 février 2012 - 14:44
Fichier(s) joint(s)
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#6
Posté 03 février 2012 - 16:42
Merci pour ton fichier Puimoisson, qui est bcp moins fouillis que le mien. Ma structure de base était donc bonne. C'est déjà rassurant
Néanmoins mon problème se situe sur le fait qu'1 tour comporte plusieurs jours et chaque jour plusieurs repas (midi, soir...). J'ai donc crée des rubriques dans ITR, disons jour - midi - soir. Je dois pouvoir choisir, pour ces repas, dans la liste de recettes. C'est là que je ne sais pas s'il faut créer un GOT par repas, car je dois pouvoir les différencier... mais ça ne peut pas être ça car j'aboutirais alors à des liens circulaires en reliant le tout aux ingrédients.
En fait, tant que j'ajoute des recettes dans une TE, je lie au kf_recette, aucun problème, les ingrédients s'affichent.
Mais j'essaie de faire une TE où apparaissent les différents repas de chaque jour, et où je peux choisir les recettes. Je ne sais alors pas lier correctement les clés pour qu'il n'y ait pas de conflit : je choisis dans la liste de recettes tous mes différents repas sur 1 tour, et je dois récupérer le total de tous les ingrédients.
C'est le fait d'avoir différentes rubriques (midi1, soir1, midi2, soir2...) pointant vers la même liste qui me gêne : comment gérer les clés?
ps Gilles. je viens de comprendre
#7
Posté 03 février 2012 - 20:11
Fichier(s) joint(s)
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#8
Posté 04 février 2012 - 01:11
Je vais potasser ça demain, merci énormément de ton aide Puismoisson..!
#9
Posté 04 février 2012 - 08:07
La méthode pour distinguer les repas en en faisant une seule rubrique avec plusieurs valeurs m'avait obligé à faire une TE dans le même principe que la tienne, soit on ajoute une ligne par repas. Je cherchais alors à obtenir un tableau récapitulatif différent, comme le 1er dans la photo ci dessous (mon fichier fait + de 500k alors je mets un sc) :
tableaux.jpg 54,64K
0 Nombre de téléchargements Je pensais que j'étais obligé de faire une rubrique par repas pour pouvoir avoir un tableau comme le 1er. Est il possible d'avoir un truc similaire avec la méthode d'une seule rubrique à valeurs? J'imagine que forcément oui, mais je n'ai pas encore réussi à trouver :/
Je vais essayer de voir avec les récapitulatifs...
#10
Posté 04 février 2012 - 10:34
pc_wave, le 04 février 2012 - 08:07, dit :
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#11
Posté 04 février 2012 - 11:09
#12
Posté 04 février 2012 - 15:58
Il y a deux tables de plus :
- Une pour les repas (uniquement pour pouvoir travailler avec des identifiants et non le libellé "texte" des repas).
- Une pour les jours avec une globale IdTour qui est renseignée par un déclencheur de script au chargement d'un enregistrement de Tour.
Fichier(s) joint(s)
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#13
Posté 04 février 2012 - 18:45
Merci, une fois de plus!
#14
Posté 05 février 2012 - 11:09
- l'occurence tou_ITR__Jours est-elle indispensable ou était-ce par souci de clarté? En gros est-ce que ça change qqch que de lier le zkp_jour au Jour_N de la table tou_ITR__Tout ? Je ne vois pas de modif immédiate dans les résultats quand je fais ça, mais on sait jamais...
- le jeu de liens au delà de la table tou_itr_JOU me pose plusieurs problèmes
-- pourquoi avoir des variables globales pour chaque repas?
-- ce jeu de liens permet d'affecter une recette à chaque repas d'un jour. Je me demandais alors si on liait chaque repas jusqu'aux ingrédients (avec des occurences IRI et ING pour chaque repas), est-ce que le 1er jeu de liens menant à tou_itr_rec_iri_ING était nécessaire? En gros en l'état actuel je me demande comment Filemaker fait pour réussir à récupérer la liste des ingrédients, avec des liens qui apparemment n'y mènent pas vraiment...
#15
Posté 05 février 2012 - 12:01
pc_wave, le 05 février 2012 - 11:09, dit :
pc_wave, le 05 février 2012 - 11:09, dit :
-- pourquoi avoir des variables globales pour chaque repas?
On veut maintenant pour chacun des jours/lignes de cette TE avoir les repas de ce jour/ligne. Il faut donc dans la table tou_itr_JOU__ "voir" les différents repas de ce jour.
Mais, un repas correspond à un enregistrement de ITR. Or je veux afficher côte à côte dans la même ligne de la TE de tour les 4 repas. Il me faut donc aller chercher "séparément" ces 4 repas en les distinguant les uns des autres via la globale.
pc_wave, le 05 février 2012 - 11:09, dit :
Si on prolonge la chaîne de liens "du bas" jusqu'aux ingrédients, on peut récupèrer dans chaque ligne de la table externe "Récapitulatif" de Tour les 4 listes correspondant aux 4 repas.
Sur le principe de qui peut le plus peut le moins, tu peux réassembler ces "paquets" de données (une liste d'ingrédients par repas d'un des jours du tour) pour avoir les ingrédients d'un jour, d'un repas sur plusieurs jours, soit via des liens, soit via des calculs.
En fait (c'est souvent le cas), il faut clairement définir ce dont on a besoin pour trouver le moyen le plus logique/simple/efficace d'y arriver.
En espérant avoir été à peu près clair. Comme j'avais commencé à le dire, je suis là aux limites de mes quelques compétences et j'ai un peu de mal à m'y retrouver moi-même !!
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#16
Posté 05 février 2012 - 15:22
En tout cas cet échange me fait énormément progresser
Pour ce que tu dis sur ce dont j'ai besoin, c'est au final la liste des ingrédients, car faut aller faire les courses... Avec un détail essentiel : la quantité, que je place dans la table IRI. Sauf que IRI n'est pour le moment que dans la chaine du haut. C'est là du coup où je me demande si la chaine "du haut" (1) est capable d'additionner à elle seule les ingrédients d'un tour, en fonction des quantités dans chaque recette (elle dédoublonne, mais retient-elle un décompte?). C'est pour ça que je pensais à étoffer la chaine du bas (2), qui est capable de distinguer + en détail les composants. Mais peut être il serait plus malin de compter le nombre de recettes dans la chaine 2, et avec ce résultat multiplier les ingrédients en réinjectant dans la chaine 1. Ca réduirait la complexité du diagramme.
Là où je veux aboutir in fine a quelques raffinements et rubriques supplémentaires, mais la structure de base est dans ce que je décris ici.
#17
Posté 05 février 2012 - 21:26
Pour chaque enregistrement de cette table (donc chaque ingrédient), il suffit de décompter le nombre de ITR du tour concerné avec une recette incluant l'ingrédient en question.
On commence donc par prendre en compte à partir de ING, toutes les recettes qui incluent cet ingrédient (lien ing_IRI, qui lie cet ingrédient à toutes les recettes le concernant).
De cette "liste" de recettes, on savoir celles qui sont présentes pour un tour donné dans ITR. On crée une globale Tour dans IRI (qui se renseigne automatiquement au chargement d'un tour) et on fait un lien double avec cette globale et l'IdRecette.
Enfin, dans ING un calcul qui décompte à travers les liens combien d'enregistrements de ITR correspondent à cet ingrédient et ce tour…
Fichier(s) joint(s)
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
#18
Posté 05 février 2012 - 22:26
Je vais méditer ça demain.
Merci encore !
#19
Posté 08 février 2012 - 12:25
Alors j'ai essayé de créer différents modèles d'impression similaires au modèle ITR_Recap, où je cherche à afficher tous les ingrédients (et leurs infos) liés à un tour.
Seulement dans toutes les tentatives que je fais (en me basant sur des OT différentes), il y a de gros problèmes dans les ingrédients affichés : il m'affiche au final la liste des 1er ingrédients de chaque recette, de chaque jour, sur un tour!
Pourquoi??
Moi je veux juste la liste de tous les ingrédients telle qu'elle apparait dans la TE. J'arrive pas à comprendre comment il lit la structure des liens pour aboutir au bon résultat dans un cas (la TE) et à autre chose dans un autre (le modèle). Ok c'est lié au fonctionnement intrinsèque d'une TE, mais comment la reproduire sur un modèle?
J'ai trouvé une alternative en exportant les enregistrements liés à partir de la table TOU (dans un autre fichier que j'imprimerai), sauf qu'il m'exporte tous les tours à la fois, or je ne veux que les enregistrements liés à 1 seul tour que je choisis...
S'il y avait juste 1 table intermédiaire entre TOU et ING je pourrais m'en sortir, mais là je n'y arrive pas.
#20
Posté 08 février 2012 - 13:43
C'est l'action de script "Activer enregistrements liés" (avec les options "Uniquement les enregistrements liés" et "Utiliser un modèle de ING").
"Ce qui compte dans la sauvegarde des condors et de leurs congénères, ce n'est pas tant que nous avons besoin des condors, mais que nous avons besoin des qualités humaines nécessaires pour les sauver. Ce sont précisément celles-là même qui nous seront nécessaires pour nous sauver nous-mêmes." Ian Mac Millan
Développement FileMaker. Formation FileMaker. Hébergement FileMaker. Le blog FileMaker. Vente de licences FileMaker. Conférence FileMaker. Forum FileMaker. FileMaker resources















