Créer un enregistrement lié
Créer un nouvel enregistrement au sein d'une table ne semble non seulement pas très compliqué, comme expliqué au sein de la page précédente, mais également une opération très naturelle. Il existe dans FileMaker Pro une autre manière extrêmement pratique de créer des enregistrements : créer de nouveaux enregistrements liés. Exemple simple de création d'enregistrements liés dans FileMaker ProNous allons devoir créer quelques bouées et les lier. Mais ce n'est plus un problème pour vous. Reliée à l'ancre INS__, on va créer une OT bouée ins_PER__Eleves :
On ouvre l'ancre INS__ et cette nouvelle bouée pour créer deux liens :
Bon. Rien de très surprenant si on a ± tout suivi jusqu'ici :
Rien de très sorcier jusqu'ici. La seule astuce d'enfer, c'est que nous allons cocher ici Permettre la création d'enregistrements via ce lien. Le but étant de pouvoir créer directement, grâce au lien, des enregistrements dans la table des PERsonnes via les INScriptions (on ne coche donc la cas magique que d'un côté). Ceci étant fait, plaçons-nous sur le modèle INS_Fiche, sur lequel on va mettren, malins que nous sommes, les rubriques liées de la table PER (donc en fait de l'OT ins_PER__Eleves). Celles qui nous intéressent ici sont Nom, Prenom, Adresse1, Adresse2, CP, Commune, Email, Tel, Portable et Type, pour pouvoir remplir toutes les coordonnées d'un élève (rappelons-nous que le lien est filtré sur "élève". Pour ce faire, en mode Modèle, on glisse une nouvelle rubrique sur notre modèle (le repère qui n'a normalement pas changé de place nous aide à l'aligner à gauche). Dans la fenêtre qui s'ouvre pour choisir la rubrique, on sélectionne dans le menu déroulant l'OT liée qui nous intéresse : ins_PER__Eleves, puis la rubrique choisie en cochant Adjoindre le titre. Comme recommencer cette opération est un peu fastidieux, nous allons voir une autre manière de créer des rubriques... Puis on double clique dans cette rubrique. La fenêtre de configuration de la rubrique s'ouvre. À droite de cette fenêtre, nous avons aussi la liste des rubrique, et cette liste est sur la bonne OT (normal, puisque c'est celle de laquelle nous avons pris la rubrique Nom). Il suffit de choisir "Prenom" et de cocher dans "Adjoindre le titre", puis de fait OK. Et voilou... Yapluka (le faire pour les autres). Pratique non ? Et si vous avez oublié de cocher le nom de la rubrique, pas de souci, on double clique dans la rubrique, on coche la case et on valide. Hop, le voilà. Notre modèle est prêt, Passons en mode utilisation. Nous faisons un CTRL+N ou Pomme+N pour créer un nouvel enregistrement. Celui-ci étant créé, nous constatons qu'il est vide, à l'exception de l'année qui s'est renseignée automatiquement à partir de la date du jour. Nous allons maintenant rendre hommage à l'ami navigateur Rémy, initiateur du premier site FileMaker pour débutants, et nous encodons, AU SEIN DU MODELE INS_Fiche, DE L'OT INS__, de la table INS_Inscriptions, dans les rubriques de la table PER sur l'OT ins_PER__Eleves le nom (dans la rubrique Nom) et le prénom (dans la rubrique Prenom) de Rémy (son prénom) Delapierre (son nom). Cela ne semble pas très compliqué. Et pourtant... Rappelons que nous sommes dans le contexte de l'OT INS__, de la table INS_Inscriptions. Rien à voir avec la table PER_Personnes, ni avec l'OT ancre PER__ ! Et pourtant nous venons de créer un nouvel enregistrement au sein de la table PER ! : Pour vous en convaincre, il suffit d'essayer, puis de passer sur le modèle PER_Fiche et d'afficher le dernier enregistrement. Rémy Delapierre existe. Mais ce n'est pas tout, c'est aussi un élève, sans qu'on lui demande quoi que ce soit !
En résumé, tous les éléments faisant partie du lien sont mis à jour, autant à gauche qu'à droite du lien, lorsqu'une nouvelle donnée est introduite dans la table liée (que cette donnée fasse partie du lien ou non). Il pourrait donc paraître tentant de faire des multi-liens maousses qui compléteraient autant de rubriques liées d'un coup, en n'encodant qu'une seule donnée dans la table liée. Mouais... Si cette opération de création est simple et facile, elle n'en est pas moins lourde et gourmante en énergie dépensée... Donc, à utiliser avec parcimonie, et éviter l'utilisation d'un méga-lien au sein d'une boucle de script (voir plus loin), par exemple. Passons maintenant à une application très pratique : l'inscription des élèves dans les classes (==> page 2) ____ Application pratique de création d'enregistrements liés dans FileMaker ProOn va ici illustrer une application complète, bien concrète, de création via des liens : les inscriptions. Nous avons vu comment créer un élève à partir de la table des inscriptions. Bon, mais ce qui est plus intéressant, c'est de créer une inscription à partir de la fiche d'un élève. Un élève se présente ou téléphone : à partir de sa fiche, on l'inscrit d'un clic dans la classe ad hoc ! Nous allons donc, à partir de la table PER_Personnes, inscrire des élèves dans des classes. Bien pratique ! Au boulot ! Reprenons notre fichier N° 21 Dans la fenêtre de gestion des liens, nous allons créer deux bouées reliées à l'ancre PER__ (on va partir d'un modèle de PER_personnes, donc de l'ancre PER). Une des bouées pour afficher les données des INScriptions, l'autre des CLAsses. Comme INS est la table intermédiaire, il y a de grandes chances pour qu'elle se trouve au milieu. Donc on duplique INS__ pour créer la bouée per_INS__ et on duplique CLA__ pour créer per_ins_CLA__ Dans le premier de ces liens (PER__ <----> per_INS__), on autorise la création : Le but étant justement de créer des inscriptions, on autorise la création dans la table INS... Par contre, il n'est nullement question ici de créer des personnes. On n'autorise donc pas sur la partie gauche des liens. Comme il n'est pas non plus question de créer des classes, le second lien n'autorise pas la création. Que faut-il pour inscrire un élève ? Simplement que :
Or, si on observe notre premier lien, et qu'on a bien capté le premier exemple, on voit que :
Donc, suivant notre 1er exemple (encore merci Rémy), il suffira de compléter une rubrique de INS dans l'OT per_INS__ pour que ces deux données soient complétées sans qu'on doive s'en occuper. Reste la troisième donnée à compléter pour que l'inscription soit complète : zkf_CLA. Là, ça paraît franchement plus compliqué... A la limite, on verrait bien cette rubrique comme étant la rubrique à compléter pour créer l'enregistrement lié, ce serait bien, finalement : on ferait d'une pierre deux coups : on crée l'enregistrement lié et on complète zkf_CLA. Le tout est de connaître la valeur de zkf_CLA à mettre, et ça, ce n'est pas marqué au fond de notre boule de cristal... Comment s'en sortir pour remplir cette rubrique avec une valeur valable (c'est à dire un zkp) correspondant à un nom de classe ? Comme on ne peut demander à l'utilisateur de connaitre par coeur les noms des classes et leurs identifiants, nous allons user d'une astuce typique de FileMaker Pro ! Nous allons d'abord, en mode Modèle, placer une TE sur le modèle PER_Fiche, montrant les enregistrements liés de l'OT per_INS__. Comme nous avons un peu bousculé la progression, certains d'entre vous ne savent pas encore créer une TE et se demandent même ce que signifient ces deux lettres (ceux qui savent peuvent aller tout de suite à la page 3...) Donc, une TE, c'est une Table Externe. Un outil futé qui permet d'afficher plusieurs enregistrements liés d'une bouée (on résume, car tout ceci est développé dans la partie modèles dans laquelle nous allons de toutes façons revenir). Sur le modèle PER_Fiche, on passe en mode modèle et on utilise l'outil de traçage de la Table Externe Notre curseur se transforme en + (croix horizontale verticale). Sur le modèle, par exemple sous la rubrique "Pays", on trace à l'aide de cette croix un rectangle. Lorsqu'on relâche la souris, la fenêtre "Table Externe" s'affiche. On y précise que l'on veut afficher les enregistrements liés de : per_INS__ (vous noterez que seules les OT liées sont proposées), que la rangée initiale commence à 1 et que l'on veut, disons, 8 rangées (nous verrons les autres détails dans les modèles). On valide (OK) et la fenêtre des rubriques à ajouter apparaît... On y choisit notre fameux Zkf_CLA On ajoute la rubrique pour qu'elle apparaisse dans la colonne de droite, on clique sur OK, et nous pouvons rejoindre le reste de la troupe en page 3 ____ Notre fichue rubrique per_INS__::zkf_CLA est sur la table. Comme elle occupe toute la place, on va la réduire pour qu'elle ne prenne que la moitié de la longueur et on lui donne un fond blanc. Attention, lors des manœuvres sur la taille de la rubrique, de bien faire en sorte qu'elle reste dans les limites du rectangle supérieur (non grisé) de la TE. Ce sera notre terrain de jeux pour créer nos inscriptions. Mais ici nous n'allons afficher que les valeurs des Zkp (les Zkf_CLA) des classes, ce qui n'est pas très explicite... Nous allons donc afficher les noms des classes que nous allons trouver directement dans la bouée liée per_ins_CLA__. Et pour que seul le nom apparaisse, nous allons (fallait l'inventer, celle-là), placer AU-DESSUS de la rubrique per_ins_CLA__::zkf_CLA la rubrique per_ins_CLA__::Nom, reprenant le nom de la classe qui sera choisie. Il faut ensuite lui donner une couleur de fond (ou une empreinte) et la superposer exactement. Les deux rubriques doivent donc avoir très exactement la même taille. Très important :
On peut ensuite compléter la TE avec d'autres rubriques liées, comme par exemple per_INS__::zlg_Creation, qui montrera la date à laquelle la création a été faite. On règle le tout pour que ce soit beau : Mettons-nous maintenant en mode Utilisation : Nous sommes normalement sur la fiche de notre élève Rémy Delapierre. Notre TE affiche une ligne avec un enregistrement vierge. Nous allons inscrire notre élève dans une classe. Le problème est qu'il faudrait saisir le zkp d'une classe pour placer sa valeur dans la rubrique "saisissable" per_INS__::zkf_CLA, mais dont on ne connait pas la valeur. Mais on connait le nom des classes et la sélection pourra s'opérer sur ce nom et non sur le zkp... Par contre, on ne se rappelle pas forcément du nom exact de toutes les classes et surtout, il ne faut pas se tromper à la saisie. On clique ensuite sur "Utiliser les valeurs de :". La fenêtre permettant le choix des rubriques s'ouvre. Nous y indiquons :
Ainsi, la liste ne montrera que les NOMS des classes, malgré le fait que ce soit bien les zkp qui sont saisissables ! On peut ensuite "éloigner" cette rubrique d'un cran, pour que ::Nom revienne au premier plan. Lorsque, en mode utilisation, on va cliquer dans la rubrique classe, c'est bien la liste des classes qui va apparaître. Dans cette liste nous pouvons choisir la classe de façon explicite, sans nous tromper. Ainsi, ce sont bien les noms des classes qui apparaîssent, mais, quoique totalement invisible, c'est bien une valeur de zkp qui sera saisie dans la rubrique zkf_CLA. C'est pas beau, ça ? Pour inscrire un élève dans une classe, il suffit maintenant de saisir une classe dans la liste, et l'inscription est faite : un nouvel enregistrement aura été créé dans la table INS_Inscriptions. Difficile de faire plus simple ! Inscrivons Rémy dans la classe des grands. Si, par curiosité, on se rend sur le modèle INS_Tech, et qu'on recherche le dernier enregistrement créé, on constate bien que l'inscription a été faite correctement : En effet :
Notons un dernier point très important. Pour faire les inscriptions, nous aurions pu penser qu'il fallait se placer dans la table INS_Inscriptions et y enregistrer des PERsonnes. On se rend compte ici de l'importance du contexte et du point de vue, puisque c'est en fait en partant de la personne que je vais pouvoir choisir où l'inscrire. Voilà, vous pouvez continuer dans les opérations diverses, ou bien, pour ceux qui nous ont accompagné pour une pause, revenir dans les modèles. Nous allons directement voir en détail la création d'une Table externe. Vous pouvez aussi comparer avec notre fichier 22
|