PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Nom de rubrique en variable
Nom de rubrique en variable
Iniciado por YanYan, 14,ago. 2019 08:58 - 3 respuestas
Miembro registrado
5 mensajes
Publicado el 14,agosto 2019 - 08:58
Bonjour,

Je suis en cours de création d'un état qui me demande une répétition du même bloc un grand nombres de fois. Pour faire simple, mon état se compose de "n" nombre de rubrique avec la dénomination "RUB_titre_n". Je rend ces rubriques visible, les dimensionne, etc en fonctions de différents paramètres que je stock dans un tableau dynamique. Pour appliquer ces paramètres, je passe toutes mes rubriques les unes après les autres. Voici un petit extrait de mes blocs que je répète :
SI TableauOccurrence(TbtPH) > gnPhaseNum ALORS
LIB_PHASE_1 = TbtPH[1]:lg_PHASE
LIB_PHASE_1..Visible=Vrai ; LIB_PHASE_1..Largeur=grLgPhase ; LIB_PHASE_1..X=gnAncrage
RUB_ASS_PREV_1..Visible=Vrai ; RUB_ASS_PREV_1..Largeur=grLgSPH ; RUB_ASS_PREV_1..X=gnAncrage
RUB_ASS_REA_1..Visible=Vrai ; RUB_ASS_REA_1..Largeur=grLgSPH ; RUB_ASS_REA_1..X=gnAncrage
SI TbtPH[1]:Lg_NumPh < 29 ALORS
LIB_ASS_PH_1..Visible=Vrai ; LIB_ASS_PH_1..Largeur=grLgSPH ; LIB_ASS_PH_1..X=gnAncrage
LIB_SOUD_PH_1..Visible=Vrai ; LIB_SOUD_PH_1..Largeur= grLgSPH ; LIB_SOUD_PH_1..X=gnAncrage + (1*grLgSPH)
RUB_SOUD_PREV_1..Visible=Vrai ; RUB_SOUD_PREV_1..Largeur=grLgSPH ; RUB_SOUD_PREV_1..X=gnAncrage + (1*grLgSPH)
FIN
gnPhaseNum += 1
SI TableauOccurrence(TbtPH) > gnPhaseNum ALORS
LIB_PHASE_2=TbtPH[gnPhaseNum + 1]:lg_PHASE
LIB_PHASE_2..Visible=Vrai ; LIB_PHASE_2..Largeur=grLgPhase ; LIB_PHASE_2..X=gnAncrage + gnPhaseNum * grLgPhase
RUB_ASS_PREV_2..Visible=Vrai ; RUB_ASS_PREV_2..Largeur=grLgSPH ; RUB_ASS_PREV_2..X=gnAncrage + gnPhaseNum * grLgPhase
RUB_ASS_REA_2..Visible=Vrai ; RUB_ASS_REA_2..Largeur=grLgSPH ; RUB_ASS_REA_2..X=gnAncrage + gnPhaseNum * grLgPhase
SI TbtPH[gnPhaseNum + 1]:Lg_NumPh < 29 ALORS
LIB_ASS_PH_2..Visible=Vrai ; LIB_ASS_PH_2..Largeur=grLgSPH ; LIB_ASS_PH_2..X=gnAncrage + gnPhaseNum * grLgPhase
LIB_SOUD_PH_2..Visible=Vrai ; LIB_SOUD_PH_2..Largeur=grLgSPH ; LIB_SOUD_PH_2..X=gnAncrage + gnPhaseNum * grLgPhase + grLgSPH
RUB_SOUD_PREV_2..Visible=Vrai ; RUB_SOUD_PREV_2..Largeur=grLgSPH ; RUB_SOUD_PREV_2..X=gnAncrage + gnPhaseNum * grLgPhase + grLgSPH
FIN
gnPhaseNum += 1

Ma question est la suivante : Est-il possible de passer le numéro des rubriques "n" en variable afin de l'utiliser en boucle pour appliquer les paramètres aux rubriques ?

Je ne sais pas si j'ai été bien clair. ;)
Je vous remercie par avance des vos réponses. :)
Miembro registrado
4.361 mensajes
Publicado el 14,agosto 2019 - 09:58
Bonjour,
As-tu essayé de passer par les indirections ?
ça devrait donner un truc de ce genre
sRubSoundPrevEnCours est chaîne
sRubSoundPrevEnCours="RUB_SOUD_PREV_%1"
POUR nNoRubrique=1 _A_ nDernièreRubrique ALORS
sRubSoundPrevEnCours=ChaîneConstruit(sRubSoundPrevEnCours,nNoRubrique)
{sRubSoundPrevEnCours}..X=.......

//On se prépare pour la prochaine itération
sRubSoundPrevEnCours="RUB_SOUD_PREV_%1"
FIN


--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
5 mensajes
Publicado el 14,agosto 2019 - 10:32
Bonjour Voroltinquo,

Merci beaucoup de ta réponse rapide et efficace !
Encore une fonction en plus que je vais pouvoir appliquer dans mes futurs états. C'est le grand avantage de l'autoformation :p

S'il y à plus simple, je suis preneur, mais je trouve cela déjà très efficace.
Miembro registrado
4.361 mensajes
Publicado el 14,agosto 2019 - 10:55
Les indirections s'appliquent à tout type de champ.

--
Il y a peut être plus simple, mais, ça tourne