PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → POUR TOUT sur un tableau de structure
POUR TOUT sur un tableau de structure
Iniciado por roumegou, 20,dic. 2018 18:38 - 4 respuestas
Publicado el 20,diciembre 2018 - 18:38
Bonjour

comment connaitre l'indice d'un tableau de structure lorsque je fais un
pour tout element ?

POUR TOUT ELEMENT x2 DE TbRelationDetail
SI x2.bt5=1 ET x2.allready=0 ALORS
nb6++
tb6[nb6]=x2.act_id
x2.allready=1
FIN
SI nb6>=6 ALORS SORTIR
FIN

en fait j'ai besoin de flagguer mon occurrence de tableau
(x2.allready=1)
autant dire que là avec ce code cela ne le fait pas ! TBRelationDetail
n'est pas touché, c'est juste la structure x2

donc avec l'indice, je pourrais le mettre à jour.


là je vais partir sur un

imax=TbRelationDetail..Occurrence
POUR nInd=1 A imax
SI TbRelationDetail[nInd].bt2=1 ALORS


mais c'est moins pratique.


Merci de vos réponses

--
Roumegou Eric

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Miembro registrado
2 mensajes
Publicado el 21,diciembre 2018 - 09:37
Bonjour,

POUR TOUT x2, lIndice DE TbRelationDetail
//lIndice est l'indice de x2 dans TbRelationDetail
//code...
FIN

Ceci dit, votre code est censé modifier l'enregistrement du tableau (x2 est un pointeur vers le i-ème élément du tableau, si vous le modifiez, le tableau s'en trouve modifier aussi, sinon chercher plutôt un bug dans votre code de modification)

On pourrait même "simplifier" votre code en utilisant la syntaxe suivante, si je comprends bien ce que vous faites:
POUR TOUT x2 DE TbRelationDetail avec bt5 = 1 _ET_ allready = 0
nb6 ++
tb6[nb6] = x2.act_id
x2.allready = 1

SI nb >= 6 alors SORTIR
FIN
Mensaje modificado, 21,diciembre 2018 - 09:43
Publicado el 21,diciembre 2018 - 11:02
Arnaud a utilisé son clavier pour écrire :
Bonjour,

POUR TOUT x2, lIndice DE TbRelationDetail
//lIndice est l'indice de x2 dans TbRelationDetail
//code...
FIN

Ceci dit, votre code est censé modifier l'enregistrement du tableau (x2 est
un pointeur vers le i-ème élément du tableau, si vous le modifiez, le tableau
s'en trouve modifier aussi, sinon chercher plutôt un bug dans votre code de
modification)

On pourrait même "simplifier" votre code en utilisant la syntaxe suivante, si
je comprends bien ce que vous faites:
POUR TOUT x2 DE TbRelationDetail avec bt5 = 1 _ET_ allready = 0
nb6 ++
tb6[nb6] = x2.act_id
x2.allready = 1

SI nb >= 6 alors SORTIR
FIN


---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com

Bonjour Arnaud
Merci beaucoup de cette réponse. C'est super d'avoir cette syntaxe.
non je ne crois pas que le fait de modifier x2, change mon tableau de
départ. C'était un élément identifié de mon dysfonctionnement en debug.
cela ne flagguait pas et je reprenais des act_id que je ne voulais pas

et pour le POUR TOUT x2 DE TbRelationDetail avec bt5 = 1 _ET_ allready
= 0
oui c'est une syntaxe séduisante et je ne sais pas ce qu'elle vaut en
terme de performance (si c'est mieux ou moins bien que des tests
ensuite)
Mais on vient de constater que cette syntaxe ne marche pas en windev
mobile 24 en android déployé (parce que bien sûr en émulateur oui ça
marche, et en ios aussi); donc on ne veut pas utiliser

Meme si mon pb n'a rien à voir ici avec le mobile; je ne veux pas
utiliser des syntaxes qui ne sont pas valables partout.

y'a hélas plein d'exemples comme ça : Tant que pcsoft ne comprendra pas
que sortir des trucs qui ne marchent pas dans tous les cas ne sert
qu'à nous faire perdre du temps et de la confiance ...

--
Roumegou Eric
Publicado el 21,diciembre 2018 - 15:13
Le 21/12/2018 à 10:02, Roumegou Eric a écrit :
Arnaud a utilisé son clavier pour écrire :
Bonjour,

POUR TOUT x2, lIndice DE TbRelationDetail
        //lIndice est l'indice de x2 dans TbRelationDetail
        //code...
FIN

Ceci dit, votre code est censé modifier l'enregistrement du tableau
(x2 est un pointeur vers le i-ème élément du tableau, si vous le
modifiez, le tableau s'en trouve modifier aussi, sinon chercher plutôt
un bug dans votre code de modification)

On pourrait même "simplifier" votre code en utilisant la syntaxe
suivante, si je comprends bien ce que vous faites:
[code:wl]
POUR TOUT x2 DE TbRelationDetail avec bt5 = 1 _ET_ allready = 0
        nb6 ++
        tb6[nb6] = x2.act_id
        x2.allready = 1



dans un pour tout, tu as acces à l'indice de TbRelationDetail par son
nom ( vrai aussi pour les zr)

TbRelationDetail[TbRelationDetail ].bt2=xx
Publicado el 24,diciembre 2018 - 09:20
philippe gracia a formulé ce vendredi :
Le 21/12/2018 à 10:02, Roumegou Eric a écrit :
Arnaud a utilisé son clavier pour écrire :
Bonjour,

POUR TOUT x2, lIndice DE TbRelationDetail
        //lIndice est l'indice de x2 dans TbRelationDetail
        //code...
FIN

Ceci dit, votre code est censé modifier l'enregistrement du tableau (x2
est un pointeur vers le i-ème élément du tableau, si vous le modifiez, le
tableau s'en trouve modifier aussi, sinon chercher plutôt un bug dans
votre code de modification)

On pourrait même "simplifier" votre code en utilisant la syntaxe suivante,
si je comprends bien ce que vous faites:
[code:wl]
POUR TOUT x2 DE TbRelationDetail avec bt5 = 1 _ET_ allready = 0
        nb6 ++
        tb6[nb6] = x2.act_id
        x2.allready = 1



dans un pour tout, tu as acces à l'indice de TbRelationDetail par son nom (
vrai aussi pour les zr)

TbRelationDetail[TbRelationDetail ].bt2=xx

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com


Merci philippe
je crois que j'avais testé cela sans succès ???

(tableau de structure en WD19)

--
Roumegou Eric