Utilisations d’enregistrements différents d’une même table (association cyclique/reflexive)

Bonjour,

j’ai une table [PERSONNES] qui a comme ID un code unique CodeCle.

Une PERSONNE peut-être liée à d’autres PERSONNES suivant un lien Responsable - Pupille.
Comme une PERSONNE peut-être Responsable ou Pupille de plusieurs autres PERSONNES, je passe par une table pivot [RESPONSABLE_PUPILLE] qui contient CodeCleRespo et CodeClePupille, pointant chacun vers le [PERSONNES]CodeCle respectif.

Lors de l’affichage du formulaire d’input d’une PERSONNE, je voudrais afficher la liste des Pupilles et/ou Responsables qui sont liés.

J’ai donc fait un formulaire «vueDansPersonne» dans les formulaires de [RESPONSABLE_PUPILLE]
qui est similarie au formulaire de sortie de [RESPONSABLE_PUPILLE], qui s’affiche dans un onglet de [PERSONNE].input.

Dans la méthode du formulaire [RESPONSABLE_PUPILLE].vueDansPersonne, j’ai mis

$ev:= Form event

Case of
: ($ev=On Load)
QUERY ([RESPO_PUPILLE];[RESPO_PUPILLE]Code_Respo=[PERSONNES]CodeCle;*)
QUERY ([RESPO_PUPILLE]; | ;[RESPO_PUPILLE]Code_Pupille=[PERSONNES]CodeCle)
End Case

ce qui fonctionne, et me permet d’afficher les CodeCle de toutes les relations. Le CodeCle n’étant qu’assez moyennement humainement lisible, j’aurais voulu afficher le [PERSONNES]Prenom.

J’ai pensé le faire sur l’évenement formulaire « Sur affichage corps», mais je suis obligé de faire 2 requête vers [PERSONNES], je perds le [PERSONNES] de base et ça ne me parait pas propre.

Le formulaire «vueDansPersonne» est affiché dans une autre page du formulaire [PERSONNES]Input.

Merci d’avance et j’éspère que mon explication était claire.

Valentin.

Bonjour,

Peut-être que la lecture de ces articles du 4DBlog vous donnerons des pistes.

1 Like

oui très bonne suggestion, j’ai eu une bref introduction à ORDA mais c’est pas encore dans mon workflow personnel, merci pour les ressources

Bonjour, pour le dire avec un peu moins de gants que Vincent :

  • sans orda ce sera un usine à gaz insupportablement compliquée et sans avenir
  • avec orda ce sera simple et pérenne