PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → récuérer la valeur d'un interrupteur dans une zone répétée
récuérer la valeur d'un interrupteur dans une zone répétée
Débuté par MDR, 02 déc. 2018 23:24 - 5 réponses
Posté le 02 décembre 2018 - 23:24
Ce sujet à déjà été posté, je pense tenir compte de ce qui a été indiqué dans le POST.

A tout hasard je poste ce problème
Dans une zone répétée WinDev j'ai un champ interrupteur
Dans le code navigateur onMouseUp de l'interrupteur j'utilise ce code

Info("nb", zr_Liste..Occurrence)
POUR i = 1 _A_ zr_Liste..Occurrence
SI zr_Liste[i].att_Select ALORS
Info("coche")
LN_TotalTTC += Val(zr_Liste[i].att_PrixTTC)
LN_TotalHT += Val(zr_Liste[i].att_PrixHT)
LN_TotalTVA += Val(zr_Liste[i].att_TVA)
LN_TotalDuree += Val(zr_Liste[i].att_Duree)
FIN
Info("fin bloc")
FIN


Je vois bien le premier message, mais ni le second ni le troisième.
Dans la description de la zone répétée j'ai lié un champ interrupteur à la valeur attribut de la colonne.

Si quelqu'un peut m'indiquer ce qui manque merci d'avance
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 03 décembre 2018 - 14:54
Bonjour,

C'est une ZR navigateur ou une ZR ajax ?
Dans le cas d'une ZR ajax, le code navigateur n'a pas accès aux données des attributs. Ceci pourrait expliquer cela.
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 03 décembre 2018 - 16:23
François C merci pour le retour.
Non c'est une ZR normale.
Si je passe mon code dans l'évènement "a chaque modification du champ de sélection avec Ajax" cela fonctionne.
Je ne comprends pas ce qui empêche que cela fonctionne côté navigateur parce que sous Javascript c'est tout à fait faisable.
Je voudrais limiter au maximum les appels au serveur.
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 05 décembre 2018 - 14:02
Je suis allé voir sur les exemples d'applications de WebDev.
Effectivement, à chaque fois, les évènements sont traités via Ajax et je ne comprends pas pourquoi utiliser Ajax (donc un appel au serveur) quand juste Javascript suffit.

Donc j'ai créé dans la zone répétée une colonne attachée à un champ Label.
J'ai coché Visible = faux
Dans le code de la checkbox j'ai ce code
:
SI Val(zr_Liste[zr_Liste].att_Clic) = 0 ALORS
zr_Liste[zr_Liste].att_Clic = "1"
SINON
zr_Liste[zr_Liste].att_Clic = "0"
FIN



On développe 10 fois plus vite mais que de temps perdu.
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 05 décembre 2018 - 16:34
Normalement pas besoin de faire ca.
Comment est alimentée ta ZR ?
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 05 décembre 2018 - 22:56
J'avais répondu à ce sujet. Je recommence
Si il existe une autre solution je suis preneur.

La zone répétée est alimentée par programmation.

TANTQUE IAD_LitEnregistrement()
LN_Ligne = ZoneRépétéeAjouteLigne(zr_Liste, "0" + TAB + "0" + TAB + "0" + TAB + "" + TAB + "" + TAB + "" + TAB + "" + TAB + "" + TAB + "" + TAB + "" + TAB + "")
pop_SaisieRDV.zr_Liste[LN_Ligne]..Hauteur = 20
att_Select[LN_Ligne] = Faux
pop_SaisieRDV.zr_Liste[LN_Ligne].att_Duree = IAD_ValeurChamp("PRES_Duree")
pop_SaisieRDV.zr_Liste[LN_Ligne].att_Libelle = IAD_ValeurChamp("PRES_Description")
pop_SaisieRDV.zr_Liste[LN_Ligne].att_PRESID = IAD_ValeurChamp("PRES_ID")
etc...