Depuis la version 23 de WINDEV, il possible dans une zone répétée d'ajouter un contenu différent pour chaque répétition. C'est la commande ZoneRepetéeAjouteFI() qui permet d'ajouter une fenêtre interne dans la répétition.


Une fois les fenêtre internes ajoutées dans la zone répétée, il peut être intéressant d'accéder aux champs de la fenêtre interne ou d'exécuter une procédure de la fenêtre interne.


Pour cela, il est nécessaire de récupérer le champ fenêtre interne ajouté dans la zone répétée. Pour cela, je vous propose d'utiliser la procédure suivante qui retourne le champ fenêtre interne ou Null, si la fenêtre n'est pas encore affichée.

PROCÉDURE pFenetreInterneDeZR(sZR est un Champ, nIndice est un entier)

 

// On récupère le nom de la fenêtre interne

sNomZR est une chaîne = sZR[nIndice]..Nom
// On vérifie si elle existe.

SI sNomZR [= sZR..Nom ALORS RENVOYER Null

QUAND EXCEPTION DANS

pChamp est un Champ <- { ChaîneConstruit("%1[%2].%3", sZR..Nom, nIndice, sNomZR), indChamp}

FAIRE

RENVOYER Null

FIN

RENVOYER pChamp

 

Il suffit ensuite dans la zone répétée ou dans sa fenêtre conteneur, utiliser une variable de type champ pour accéder au contenu de la fenêtre interne.

// Exemple : Changer la couleur des colonnes de table contenues
// dans les fenêtre internes

pFIDeZR est un Champ

POUR TOUTE LIGNE Indice DE ZoneRépétée1

pFIDeZR <- pFenetreInterneDeZR(ZoneRépétée1, Indice)

SI pFIDeZR<>Null ALORS
// Change la couleur des tables.

pFIDeZR.ColoreTable()

FIN

FIN

 

//Exemple : Changer le contenu d'un champ de la fenêtre interne.

pFIDeZR <- pFenetreInterneDeZR(ZoneRépétée1, 3)

pFIDeZR.Libellé1 = "Nouveau libéllé"

 

< Retour

3 commentaires

Matthieu LABBAYE
18/07/2019 - 09:27 - Répondre
Ce code est très utile, mais ne fonctionne pas en version 23... Auriez-vous une solution / patch ?

LOIC HAMEL
18/07/2019 - 09:54 - Répondre
Bonjour, Ce code a été testé avec la version 24 de WINDEV. Si vous avez un cas de non fonctionnement, il faut faire parvenir des éléments au Support Technique Gratuit via l’outil RequêteAuST. Cordialement

Julien DELENTE
02/05/2022 - 11:41 - Répondre
Juste un grand MERCI !!!! Parfait, c'est ce qu'il me fallait ! Développé en version 25.

Publier un commentaire : 
Votre adresse email ne sera pas publiée