PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD 25] Valeur affichée d'une combo dans une zone répétée
[WD 25] Valeur affichée d'une combo dans une zone répétée
Débuté par David, 30 nov. 2021 12:16 - 5 réponses
Posté le 30 novembre 2021 - 12:16
Bonjour à tous,

Je dispose d'une zone répétée dans laquelle j'ai un champ combo rempli par programmation pour avoir un contenu différent pour chaque combo.

Ex :
FOR EACH maRequete
ZR_Liste[i].ATT_ContenuCombo += [RC]+(maRequete.valeur + " : " +maRequete.libelle) + gLien(maRequete.valeur) END


Actuellement je récupère la valeur affichée de chaque combo a l'aide d'une requête qui recoupe la valeur du glien et un autre attribut de la ZR.

Un genre de
[
SELECT libelle
FROM maRequete
WHERE maRequete.numero = {tmpNum} AND maRequete.valeur = {tmpVal} ]


Dans un soucis d'optimisation, je cherche une solution qui me permettrait de faire simplement un "ZR_Liste[i].MaCombo..valeurAffichee" ou "ZR_Liste[i].Att_ComboValeur" . Mais je ne vois aucun attribut de zone répétée qui pourrait m'aider a récupérer ce texte.
J'ai tenté de faire un ExtraitChaine du contenu de la combo via sa valeur mais avec les gliens mon texte ressort avec des caractères spécifiques aux gliens, il faudrait que je vienne les supprimer.

En espérant trouver une solution plus simple ici haha Merci !
Membre enregistré
3 887 messages
Popularité : +227 (347 votes)
Posté le 30 novembre 2021 - 13:33
Bonjour,
Il y a bien la solution tordue d'utiliser la propriété Message dans la définition de l'attribut
Avec dans le code de sélection
COMBO_MaCombo..Message=COMBO_MaCombo..ValeurAffichée


--
Il y a peut être plus simple, mais, ça tourne
Posté le 30 novembre 2021 - 14:02
Bonjour,
Merci de ta réponse, petit hic c'est que je n'ai pas d'interaction avec les combos.
Je viens récupérer chaque valeur par un parcours de ma ZR et je ne peux donc pas faire
COMBO_MaCombo..Message=COMBO_MaCombo..ValeurAffichée


Le problème étant que je n'ai pas le droit de faire ça ici car il me retourne une erreur avec l'attribut "valeurAffichee" automatique.
ZR_ListeParam[i].ATT_Message = ZR_ListeParam[i].COMBO_Valeur..ValeurAffichée
Posté le 30 novembre 2021 - 14:55
*Edit Pour plus de précision.

En soit le code "COMBO_MaCombo..ValeurAffichée" marche déjà sans passer par l'attribut ..Message si je parcours la ZR via
FOR EACH LIGN OF ZR_ListeParam
monTexte += COMBO_MaCombo..ValeurAffichée +";"
END


Dans mon cas je parcours un autre tableau de valeur que je reçois en entrée pour remplir les valeurs de ma ZR.
Le contenu de ma combo est différente d'une ligne à une autre et le texte n'est pas forcement le même selon la valeur reçu de mon tableau.

Ex code actuel :
FOR i = 1 _TO_ TableauOccurrence(tab_paramResult)
ZR_ListeParam[i].ATT_ValeurCombo = tab_paramResult[i]
monTexte += MaProcedure(ZR_ListeParam[i].ATT_Numero, tab_paramResult[i])+";"
END

MaProcedure() me renvoie une chaine après avoir recoupé les deux données en paramètre pour décoder la valeur reçu du tableau d'entrée.
Et je souhaitais récupérer plus simplement le texte de chaque combo que je stock dans une chaine pour remplir un tableau excel. Sachant que ce texte la est déjà affiché dans la dite combo d’où ma volonté d'essayer d'optimiser tout ça sans passer par une requête SQL.
En l’état, peut être que je devrais me diriger vers une autre méthode de parcours de mon tableau de valeur dans le genre :

i est entier = 1
FOR EACH LIGN OF ZR_ListeParam
ZR_ListeParam.ATT_ValeurCombo = tab_paramResult[i]
monTexte += COMBO_MaCombo..ValeurAffichée +";"
i++
END
Posté le 03 décembre 2021 - 14:16
*Edit Solution trouvée :

Création d'un attribut en plus dans la zone répétée, qui contient mon contenu de ma combo sans glien.
Grace a ce champs je peux faire un extrait chaine de la valeur.
Membre enregistré
3 887 messages
Popularité : +227 (347 votes)
Posté le 03 décembre 2021 - 16:02
Merci d'avoir remonté la solution

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