FileMaker eNews - Edition Février 2010

LIEN INTERNE : DEFINITION ET EXEMPLE D'UTILISATION


Définition

Un lien interne est un lien dans lequel deux rubriques sources sont définies dans la même table. Définissez des liens internes pour créer des liens entre les enregistrements d'une même table. Utilisez un lien interne dans une table externe sur un modèle de la table active pour afficher un sous-ensemble de données de la table active, par exemple tous les employés dépendant de chaque chef de service.

Lorsque vous définissez un lien interne dans le graphe de liens, FileMaker Pro génère une seconde occurrence de la table sur laquelle vous basez le lien interne. FileMaker Pro procède à cette opération pour empêcher les liens de constituer un cycle, ce qui rendrait l'évaluation impossible.


Utilisation

Vous pouvez utiliser les liens internes pour :

  • Obtenir des données statistiques sur un élément particulier, par exemple le décompte ou le total de tous les enregistrements d'une table, qui comportent chaque valeur d'une rubrique particulière. (Exemple n°1)
  • Afficher dans une table externe de tous les enregistrements comportant une valeur dans la rubrique source identique à celle de l'enregistrement actuel. (Exemple n°2)
  • Identifier du premier enregistrement comportant chaque valeur dans la rubrique source ainsi que les enregistrements en double. (Exemple n° 3)
  • Afficher de façon unique la valeur dans la rubrique source pour chaque groupe d'enregistrements comportant cette valeur. (Exemple n°4)
  • Afficher des données sous-récapitulatives sans utiliser de rubriques Statistiques ni de modèle Sous-récapitulatif. (Exemple n°5)

Bien entendu, il existe de nombreuses autres possibilités d'utilisation.


Création du fichier exemple

Pour illustrer ces exemples, nous allons commencer par établir la structure :

Créez un fichier appelé MonFichier.fp7 contenant les rubriques suivantes :

  • Source (Texte)
  • Numéro de série (Nombre, Saisie automatique de numéros de série)
  • Qté (Nombre)
  • RubriqueTexte (Texte)

Créez un lien interne :

Créez un nouveau lien et choisissez la table MonFichier (à savoir la table que vous êtes en train d'utiliser) comme table liée. Attribuez le nom MonFichierSource au lien et sélectionnez Source comme rubrique source pour les deux parties du lien. Autorisez la création mais pas la suppression des enregistrements liés. (Si l'opération de suppression d'enregistrements liés est autorisée dans un lien interne, la suppression d'un enregistrement entraîne celle de tous les enregistrements de la table partageant la même valeur dans la rubrique source.)

Définissez les rubriques de calcul suivantes faisant référence aux rubriques liées à partir du lien interne :

  • VérifDoublon (Calcul, résultat de type Nombre) = Si(MonFichierSource::Numéro de série = Numéro de série; 1; 0)
    Ce calcul permet de signaler le premier enregistrement dans la base de données comportant chaque valeur dans la rubrique source.
  • PremièreValeur (Calcul, résultat de type Texte) = Si(VérifDoublon = 1, Source, « »)
    Ce calcul affiche un résultat uniquement si l'enregistrement correspond à la première instance de chaque valeur dans la rubrique source.
  • EnregisCorres (Calcul, résultat de type Nombre)= Nombre(MonFichierSource::RubriqueTexte)
    Ce calcul indique le nombre total d'enregistrements comportant chaque valeur dans la rubrique source.
  • QtéSomme (Calcul, résultat de type Nombre) = Somme(MonFichierSource::Qté)
    Ce calcul permet d'obtenir la somme des quantités de tous les enregistrements correspondant à chaque valeur dans la rubrique source.
  • QtéMoy (Calcul, résultat de type Nombre) = Moyenne(MonFichierSource::Qté)
    Ce calcul permet d'obtenir la moyenne des quantités de tous les enregistrements correspondant à chaque valeur dans la rubrique source.
  • QtéPointMéd (Calcul, résultat de type Nombre) = (Max(MonFichierSource::Qté)-Min(MonFichierSource::Qté))/2 + Min(MonFichierSource::Qté)

Il existe de nombreuses autres possibilités de calcul ; en effet, tout calcul fonctionnant dans un lien standard fonctionne généralement dans un lien interne.


Créez les enregistrements d'exemple suivants :

Numéro de Série Source Qté Rubrique Texte
1 A123 1 ZZZ
2 A123 2 YYY
3 A123 3 XXX
4 B456 9 WWW
5 B456 8 TTT
6 B456 7 SSS
7 C789 6 RRR
8 C789 5 QQQ
9 C789 4 PPP
10 D159 5 NNN

Exemple n°1 : Obtenir des données statistiques de chaque valeur dans la rubrique source (par exemple, le total, la moyenne ou le point médian des quantités de tous les enregistrements comportant chaque valeur dans la rubrique source).

Créez un modèle de rapport à colonnes étendues, appelé VueListe, dans lequel vous insérerez les rubriques suivantes : Source, QtéSomme, QtéMoy, QtéPointMéd.
Activez le mode Utilisation. Le début du rapport doit se présenter sous la forme suivante :

Source Qté Somme Qté Moy Etc.
A123 6 etc.  
A123 6    
A123 6    
B456 24    
B456 24    
B456 24    
C789 15    
C789 15    
C789 15    
D159 5    

Revenez au modèle n°1 et ajoutez un nouvel enregistrement contenant les valeurs suivantes : Source=A123, Qté=4 et RubriqueTexte=AAA.
Revenez au modèle VueListe. Notez que la rubrique QtéSomme pour A123 affiche désormais la valeur 10 et que le nouvel enregistrement se trouve à la fin de la base de données.

Exemple n°2 : Afficher dans une table externe de tous les enregistrements liés à l'enregistrement actuel.

Créez un modèle vierge et nommez-le AfficherInstances. Insérez la rubrique source dans ce modèle.
Ajoutez une table externe contenant 5 lignes à l'aide du lien MonFichierSource.
Insérez les rubriques suivantes dans la première ligne de la table externe :

::Source
::Qté
::RubriqueTexte

Revenez en mode Utilisation.

La table externe affiche les informations suivantes pour le premier enregistrement :

Source Qté Rubrique Texte
A123 1 ZZZ
A123 2 YYY
A123 3 XXX
A123 4 AAA

La table externe affiche tous les enregistrements de la base de données dont la valeur de la rubrique Source est identique à la valeur de la rubrique Source de l'enregistrement actuel. Notez que l'enregistrement actuel est également affiché dans la table externe. Passez à un autre enregistrement et observez les enregistrements liés dans la table externe.

Exemple n°3 : Identifier le premier enregistrement comportant chaque valeur dans la rubrique source ; identification des doublons.

Créez un modèle de rapport à colonne, appelé Dedup, dans lequel vous insérerez les rubriques Source, VérifDoublon et Texte.
Activez le mode Utilisation. Le rapport doit ressembler à celui-ci :

Source VerifDoublon Texte
A123 1 ZZZ
A123 0 YYY
A123 0 XXX
B456 1 WWW
B456 0 TTT
B456 0 SSS
C789 1 RRR
C789 0 QQQ
C789 0 PPP
D159 1 NNN
A123 0 AAA

Lorsque la rubrique Source contient des valeurs identiques pour plusieurs enregistrement, alors l'enregistrement de la première occurence se voit attribuer la valeur un (1) dans la rubrique VerifDoublon. Les enregistrements suivants se voient attribuer la valeur zéro (0) dans la rubrique VerifDoublon.

Exemple n°4 : Afficher la valeur d'une rubrique une seule fois lorsqu'un groupe d'enregistrements a une valeur similaire dans la rubrique Source.

  • Dupliquez le modèle créé pour l'exemple n° 3.
  • Supprimez l'étiquette de rubrique Source.
  • Double-cliquez sur la rubrique source.
  • Sélectionnez la rubrique PremièreValeur et cochez la case Adjoindre le titre.
  • Placez la nouvelle étiquette PremièreValeur dans l'en-tête où se trouvait l'étiquette Source.
  • Ajoutez la rubrique Qté au modèle, à côté de la rubrique VérifDoublon, puis déplacez l'étiquette de rubrique.
  • Revenez en mode Utilisation.
  • Sélectionnez Rechercher tout dans le menu Sélectionner.
  • Triez les données selon la rubrique source.

Seul le premier enregistrement de chaque série de valeurs dans la rubrique source indique la valeur de la rubrique source.

Source VerifDoublon Qté
A123 1 1
  0 2
  0 3
  0 10
B456 1 9
  0 8
  0 7
C789 1 6
C789 0 5
  0 4
D159 1 5

Exemple n°5 : Afficher des données récapitulatives similaires à celles obtenues à l'aide d'un rapport sous-récapitulatif.

  • Dupliquez le modèle créé dans l'exemple n° 3.
  • Ajoutez la rubrique QtéSomme au modèle.
  • Recherchez la valeur 1 dans la rubrique VérifDoublon afin d'obtenir un jeu d'enregistrements ne contenant qu'une seule instance de chaque valeur dans la rubrique source.
  • Notez que la rubrique QtéSomme indique le total de tous les enregistrements contenant chaque valeur dans la rubrique source.

Le résultat obtenu est identique à celui d'un rapport utilisant une rubrique Statistique pour obtenir le total de la rubrique Qté et un rapport sous-récapitulatif lorsque le tri est effectué selon la rubrique source dans le modèle. Cette méthode a plusieurs avantages : les résultats sont affichés en mode Utilisation et il est inutile d'effectuer un tri ; la génération des résultats est donc plus rapide qu'avec un rapport sous-récapitulatif.

>> Télécharger le fichier d'exemple MonFichier.fp7