version 6.0
Les commandes de ce thème, en particulier CHARGER SUR LIEN et LIEN RETOUR, établissent et gèrent les relations entre les tables, à la fois pour les liens automatiques et les liens manuels. Consultez le manuel Mode Développement de 4D pour la création des liens entre les tables avant d'utiliser ces commandes.
Exploiter par programmation les liens automatiques entre les tables
Deux tables peuvent être reliées par un lien automatique. En général, quand un lien automatique est créé, les enregistrements liés sont chargés et sélectionnés dans la table liée. Un grand nombre d'opérations exploitent cette relation. En particulier, citons les opérations suivantes :
Saisie de données,
Liste des enregistrements à l'écran dans un formulaire de sortie,
Etats,
Opérations sur une sélection d'enregistrements comme les recherches, les tris et les formules.
Pour améliorer les performances, quand 4D active les liens automatiques, seul un enregistrement devient l'enregistrement courant pour la table. Pour chacune des opérations énumérées ci-dessus, l'enregistrement lié est chargé selon les principes suivants :
Si un lien sélectionne un seul enregistrement de la table liée, cet enregistrement est chargé du disque.
Si un lien sélectionne plusieurs enregistrements de la table liée, une nouvelle sélection d'enregistrements est créée pour cette table, et le premier enregistrement de cette sélection est chargé du disque.
Par exemple, dans la structure affichée ci-dessous, si un enregistrement pour la table [Personnes] est chargé et affiché pour une saisie de donnés, l'enregistrement lié dans la [Sociétés] est sélectionné et chargé. De la même façon, si un enregistrement pour la table [Sociétés] est chargé et affiché pour de la saisie de données, les enregistrements liés de la table [Personnes] sont sélectionnés.
Dans le type de schéma présenté ci-dessus, la table [Personnes] est appelée Table N et la table [Sociétés] est appelée Table 1. Pour vous souvenir de la différence, pensez à "plusieurs personnes travaillent dans une société" ou "une société emploie N personnes".
De même, le champ Société de la table [Personnes] est appelé Champ N, et le champ Nom de la table [Sociétés] est appelé Champ 1.
Il n'est pas toujours possible que le champ lié soit unique. Par exemple, le champ [Sociétés]Nom peut contenir des noms de sociétés identiques. Ce cas de non-unicité est facilement contournable : il suffit de créer un lien vers un autre champ de la table liée qui, lui, sera toujours unique. Ce champ pourrait être par exemple un numéro d'identification de la société.
Les commandes listées ci-dessous utilisent les liens automatiques pour charger les enregistrements liés lors de leur exécution. Toutes ces commandes activent les liens automatiques "de N vers 1" existants. En revanche, seules les commandes signalées explicitement par un Oui activent les liens automatiques "de 1 vers N".
Commande | Lien 1 vers N |
AJOUTER ENREGISTREMENT | Oui |
AJOUTER SOUS ENREGISTREMENT | Non |
APPLIQUER A SELECTION | Non |
VISUALISER SELECTION | Non |
ECRITURE DIF | Non |
ECRITURE SYLK | Non |
ECRITURE ASCII | Non |
EXPORTER DONNEES | Non |
MODIFIER ENREGISTREMENT | Oui |
MODIFIER SOUS ENREGISTREMENT | Non |
MODIFIER SELECTION | Oui ( |
TRIER | Non |
TRIER PAR FORMULE | Non |
CHERCHER PAR FORMULE | Oui |
CHERCHER DANS SELECTION | Oui |
CHERCHER | Oui |
IMPRIMER ETIQUETTES | Non |
IMPRIMER SELECTION | Oui |
QR ETAT | Non |
SELECTION VERS TABLEAU | Non |
SELECTION LIMITEE VERS TABLEAU | Non |
Activer par programmation les liens entre les tables
Que les liens soient automatiques ne signifie pas que les enregistrements liés ou les enregistrements pour une table seront sélectionnés simplement parce qu'une commande charge un enregistrement. Après avoir exécuté une commande chargeant un enregistrement, dans certains cas vous devez explicitement appeler le ou les enregistrement(s) lié(s) avec CHARGER SUR LIEN ou LIEN RETOUR si vous avez besoin d'accéder aux données liées.
Certaines des commandes listées ci-dessus (par exemple les commandes de recherche) chargent l'enregistrement courant une fois leur tâche terminée. Dans ce cas, l'enregistrement chargé n'appelle pas automatiquement le ou les enregistrement(s) lié(s). Là aussi, vous devez explicitement sélectionner le ou les enregistrement(s) lié(s) avec CHARGER SUR LIEN ou LIEN RETOUR si vous avez besoin d'accéder aux données liées.
Référence
ANCIEN LIEN RETOUR, CHARGER ANCIEN, CHARGER SUR LIEN, CREER SUR LIEN, FIXER LIEN CHAMP, FIXER LIENS AUTOMATIQUES, JOINTURE, LIEN RETOUR, LIRE LIEN CHAMP, LIRE LIENS AUTOMATIQUES, SELECTION RETOUR, STOCKER SUR LIEN.