DISPLAY RECORD dans un boucle, attente pour NEXT RECORD

4Dv15.3

Bonjour,

j’ai un petit casse-tête algorithmique et de language.

J’ai des [ADRESSES] et des [NPA] et des [INSCRIPTIONS].

[ADRESSES]NPA
[ADRESSES]LOCALITE
[ADRESSE]COMMUNE
[ADRESSES]codeID

[NPA]NPA
[NPA]LOCALITE
[NPA]COMMUNE

[INSCRIPTIONS]codeID

lien
[ADRESSES] N --> 1 [NPA]
[ADRESSES] 1 --> N [INSCRIPTIONS]

J’aimerais trouver les [ADRESSES] qui ont des [INSCRIPTIONS] avec un certains codeID, ET qui ont des [NPA] qui ont le même [NPA]NPA mais des [NPA]Commune différent:

1)[NPA]NPA = 1213 / COMMUNE = LANCY / LOCALITE = ONEX
2)[NPA]NPA = 1213 / COMMUNE = ONEX / LOCALITE = PETIT-LANCY

et si un enregistrement [ADRESSES] réponds à ces critères, j’aimerais ouvrir cette enregistrement pour pouvoir le modifier.

pour l’instant j’ai ça qui fonctionne a peu près, mais pas tout a fait.
<code 4D>
ALL RECORDS([ADRESSES]) //Sélectionner tous les enregistrements dans la table
ORDER BY([ADRESSES];[ADRESSES]Code_Cle_Adresse) //Trier les enregistrements dans l’ordre alphabétique

For ($i;1;Records in selection([ADRESSES])) //Boucler une fois par enregistrement
RELATE MANY([ADRESSES]Code_Cle_Adresse) //Sélectionner les enregistrements liés
QUERY([INSCRIPTIONS];[INSCRIPTIONS]Code_Cle_Camp=“19E@”)
If (Records in selection([INSCRIPTIONS])>0)
QUERY([NPA];[NPA]NPA=[ADRESSES]NPA)
DISTINCT VALUES([NPA]Commune;tabNPA)
If (Size of array(tabNPA)>1)
DISPLAY RECORD([ADRESSES])
//attendre «validation»

End if
End if
tabNPA:={}
NEXT RECORD([ADRESSES]) //Aller à l’enregistrement suivant
End for

</code 4D>

J’aurais voulu utiliser les SET mais je suis pas sur que je puisse.
Merci d’avance de votre aide

j’ai résolu une partie de mon problème

en créant un ENSEMBLE dans la boucle, et en faisant

READ WRITE ([ADRESSES])
USE SET(“npaAVerif”)
DISPLAY SELECTION([ADRESSES])

à la fin.

J’ai bien mon SET/SELECTION qui est montré dans mon output form, et j’arrive a ouvrir un record, mais impossible de le modifier, alors que j’ai bien les tables en READ WRITE

De mémoire, display selection met la table en lecture, ou du moins ça revient à ça : pas moyen de modifier si on ouvre l’enreg. Avec modify selection ça devrait aller mieux.

:idea: Vous pourriez effectivement utiliser un ensemble en ajoutant les elements qui sont concernés un par un, et ensuite, tranquillement, utiliser l’ensemble pour modifier la selection.

oui merci beaucoup, effectivement, cela fonctionne avec modify selection.