Les liaisons entre fichiers
Gestion d'une section
Dans un layout, vous pouvez lier des fichiers entre eux pour obtenir l'information nécessaire à remplir dans votre layout. Pour ce faire, il faut faire un clic droit sur ce qu'on appelle "la Section" en bas a gauche du layout et choisir "Propriétés de la section" :
Gestion des relations entre fichiers
Dans le fenêtre de la section, faites un clic droit sur le fichier dont vous voulez modifier la relation et choisissez "Relation" :
La fenêtre suivante vous indique la relation actuelle entre les deux fichiers :
Expression parent
Une "expression parent" représente la valeur venant du fichier principal par rapport à laquelle nous voulons lier notre fichier. Dans ce cas, le numéro de facture.
Expression descendant
Une "expression descendant" représente la valeur venant de notre fichier "secondaire" par rapport à laquelle nous voulons lier notre fichier. Dans ce cas, le numéro de facture.
Type de relation
Le "type de relation" indique la relation attendue entre les deux fichiers.
Deux cas sont possibles :
Une relation un pour un : cela indique que la relation attendue entre chaque ligne du fichier principal n'est censée avoir qu'une et une seule correspondance avec le fichier secondaire. Par exemple, un numéro de client dans une facture, n'aura de relation qu'avec un et un seul client dans le fichier client.
Une relation un pour plusieurs : cela indique que la relation attendue avec chaque ligne du fichier principal peut avoir plusieurs correspondances dans le fichier secondaire. Par exemple, une facture peut contenir plusieurs pièces, on aura donc une relation un à plusieurs entre le fichier des factures et le fichier du contenu des factures.
Index et clés
Certains fichiers contiennent des indexes, il s'agit de fichier permettant d’accélérer les recherches dans des fichiers contenant un nombre conséquent de données. Il sera toujours bon de les utiliser dans la mesure du possible pour permettre au document de se générer le plus rapidement possible.
Par défaut, les éléments sont triés par enregistrement, c'est à dire par l'ordre dans lequel ils ont été encodés (l'enregistrement étant un numéro d'ordre attribué automatiquement).
Vous pouvez spécifier un index en cliquant sur "Changer", puis en sélectionnant l'index voulu. Dans ce cas, l'index Paiement, puis en cliquant sur OK.
L'index est désormais sélectionné
INFORMATION
Le fait de sélectionner un index, modifie la valeur de l'expression descendant, il faudra donc la faire correspondre dans "l'expression parent".
Construction d'une expression
Pour construire une relation, vous devez utiliser différents éléments pour composer une chaîne avec suffisamment d'informations pour lié deux éléments de façon unique. Par exemple, si votre numérotation de facture est faite de manière à avoir un numéro unique pour chacune de vos factures, alors le numéro des factures est une bonne façon de faire une liaison entre une facture et son contenu. Mais elle pourrait être un mauvais choix si chaque année vous remettez votre compteur de facture à 0.
Dans ce cas, on fera une composition de différentes valeurs afin de ne pas mélanger les informations. On rajoutera donc par exemple l'année à la chaîne pour identifier le bon document et, si l'on travaille avec plusieurs sociétés, le numéro de la société.
Reprenons donc l'exemple d'une facture et de son contenu. Nous avons deux fichiers :
Facture
Factpiec
Chacun de ses fichiers contient 3 champs qui nous aideront à réaliser notre liaison unique, à savoir :
"Numsoc", le numéro de la société
"Numfact", le numéro de la facture
"Datefact", la date de la facture
On va donc composer une chaîne de caractères uniques basée sur ces 3 champs et sur la taille de chacun d'eux.
str(Numsoc,2) pour avoir le numéro de société en 2 caractères (la taille du champ)
Numtrim(Year(Datefact)) pour avoir l'année en 4 caractères (et non chiffre)
str(Numfact,8) pour avoir le numéro de la facture sur 8 caractères (la taille du champ).
Et le résultat nous donnera str(Numsoc,2)+Numtrim(Year(Datefact))+Str(Numfact,8) qui sera notre condition de liaison.
CarPack - 2018