Changements récents - Rechercher:

Tutoriel Filemaker

  1. Structure
  2. Modèles
  3. Opérations diverses
  4. Calculs
  5. Scripts
  6. Privilèges d'accès

Filemaker avancé

  1. Partage des données
  2. Astuces et Exemples
  3. Développement

Règles de nommage

Versions de FileMaker Pro

Liens utiles Contact Commentaires

edit SideBar

Mise en place des liens - Autres liens simples

<==Mise en place des liens - Lien global ^ Structure Mise en place des liens - Lien multiple==>

Lien de non égalité


Dans la table INS des inscriptions, nous avons des rubriques dates, dont la date de création de chaque enregistrement, zlg_Creation. Considérons que cette rubrique, et c'est assez logique, soit la date d'inscription. On aimerait que, à partir de la table PAR des paramètres, à un seul enregistrement, on puisse lister les inscriptions tardives, par exemple celles enregistrées après le 1er septembre de l'année en cours.

Pour ce faire,

  • On crée (dans Rubriques) une rubrique z_Date au sein de la table PAR, de type date. Elle n'a pas besoin d'être globale dans ce cas, attendu qu'il n'y a qu'un et un seul enregistrement.
  • On crée (dans Liens) une nouvelle OT de la table INS, placée à côté de l'ancre PAR__, et nommée par_INS__InscrTardive
  • On établit un lien entre l'ancre PAR__ et la bouée par_INS__InscrTardive, depuis la rubrique Z_Date de la table PAR vers la rubrique zlg_Creation (qui est la date de création de chaque inscription).

Mais on cherche à obtenir toutes les inscriptions au delà d'une certaine date (le 1er septembre de l'année en cours). Donc, la date encodée dans PAR doit être la limite inférieure et nous ne voulons voir apparaitre que les enregistrements dont la date d'inscription est supérieure à cette limite pour que l'inscription soit considérée comme tardive. On indique donc le signe "<" comme type de lien entre les deux rubriques : Z_Date < "zlg_Creation". Après avoir double cliqué sur le "=" du lien que l'on vient de créer, on change entre les deux table = par < (Z_Date < Zlg_Creation) et on clique sur "modifier" avant de valider.

Le lien < apparait bien dans le graphe.

Lien de tout à tout


Depuis la table PAR, qui contient les coordonnées de l'école, on aimerait obtenir la liste exhaustive de toutes les classes (de la table CLA) et ceci de manière dynamique : si on crée une nouvelle classe ou si on en supprime une, il faut que la liste soit mise à jour, automatiquement bien sûr !
On va donc créer un lien de "tout à tout", c'est à dire qui permet d'afficher depuis une table tous les enregistrement d'une autre table, quelle que soit la valeur contenue dans ce lien (mais il faut une valeur contenue).

Pour ce faire, des deux côtés du lien on prend une rubrique dont on est certain qu'elle est non vide. La meilleure rubrique qui réponde à ce critère est zkp, bien évidemment ! Au lieu d'établir un classique lien d'égalité entre les deux zkp des tables concernées (PAR et CLA), on établit un lien "X".
Pour ce faire, à côté de l'ancre PAR__, on met une copie d'une OT de la table CLA, et on la nomme par_CLA__Tout, pour indiquer que le lien nous donnera tous les enregistrements. On lie ensuite les deux zkp, en précisant que la nature du lien est non pas "=" mais "X" :

Ainsi, quel que soit le contenu des deux rubriques formant le lien, tous les enregistrements de la table CLA seront liés à la table PAR. Notons en passant qu'il n'est pas de prime importance dans ce cas que le lien soit basé sur les zkp. On aurait très bien pu utiliser les rubriques zkk_1 d'un côté et zlg_CreationNom de l'autre : du moment qu'on est certain que les rubriques sont non vides, ce type de lien fonctionne.

Profitons-en pour faire un peu de ménage dans notre graphe, pour qu'il reste beau et lisible. Au passage, une petite remarque à laquelle il faudra faire attention...

Nous avons pris la bonne habitude de "refermer" nos tables pour économiser de la place dans le graphe des liens. S'il est bien rangé, même autour de la table PAR qui a maintenant plusieurs bouées de premier niveau, nous avons quelque chose comme ça :

Lorsque, pour un besoin ponctuel, on laisse l'ancre "entr'ouverte", c'est à dire qu'on voit apparaitre les rubriques sur lesquelles sont posés les liens, on veillera à ce que les bouées soient placées de telle façon que les liens ne se croisent pas. Non pas parce que les informations risqueraient de se perdre dans ces croisements (aucun risque) mais simplement parce que la lecture en est facilitée, et ceci sera souvent bien utile par la suite.

Auto-lien


Il faut en parler, car il semble que certains débutants fassent un blocage sur le fait de lier une table sur elle-même... Comme ce ne sont pas des tables qu'on lie, mais des OT, pas de souci. Illustrons cela par un exemple : dans la table FAC, on rentre "en dur" les noms et coordonnées de la personne facturée. Ainsi, on sait qu'elles restent inchangées au cours du temps.
On aimerait tout de même savoir, lorsqu'on consulte une facture, lister toute les factures déjà émises à la même personne.
Rien de plus simple : on duplique l'ancre FAC__ depuis laquelle on voudra voir des enregistrements... de cette même table, et on renomme cette OT fac_FAC__. Ce n'est qu'une bouée de l'ancre FAC.
On lie les deux OT par F_Nom = F_Nom et F_Prenom = F_Prenom. L'idéal aurait été de les liés par l'identifiant de la personne, mais nous ne l'avons pas dans cette table. Pour limiter (faute d'éviter, on en reparlera dans les doublons) les risques d'afficher les factures de deux personnes différentes portant le même nom, nous créons un lien sur deux critères en même temps : même nom et même prénom. Ainsi, on accèdera immédiatement à l'ensemble des factures émises à la même personne, tout en différenciant Jacques MARTIN de Martin JACQUES. Et nous venons de créer un lien multiple, point qu'il convient de développer ici

Une dernière remarque concernant les autos-liens. Lorsque vous sélectionnez une rubrique sur une OT dans le graphe et tirez un lien en maintenant la souris, si ce lien revient vers la même table, FileMaker Pro va afficher un message indiquant qu'il faut créer une autre occurrence de cette table. Il va même la créer immédiatement. Pas de panique, comme vu précédemment, il ne s'agit encore une fois que d'une nouvelle occurrence, pas d'une nouvelle table. Si vous souhaitez la conserver, il suffira alors de la renommer.

<==Mise en place des liens - Lien global ^ Structure Mise en place des liens - Lien multiple==>
Éditer - Historique - Imprimer - Changements récents - Rechercher
Page mise à jour le 28 mai 2017 à 18h32