PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV 2024 → Réinitialiser un sélecteur à partir d'un champ de saisie
Réinitialiser un sélecteur à partir d'un champ de saisie
Started by Rastam, Feb., 13 2019 2:48 PM - 11 replies
Posted on February, 13 2019 - 2:48 PM
Bonjour,

Dans une page, j'ai plusieurs champs de saisie (Texte) : Nom, Prénom,..., Motif, Adresse...
J'ai aussi un champ sélecteur avec 4 options : Opt1, Opt2, Opt3 et Autre.

Je n'arrive pas à mettre en place la règle suivante :

A = Si je choisis l'option 3 (Opt3), le champ Motif doit être renseigné.
Mais A est réalisé, et que par la suite, je supprime le contenu du champ Motif, l'option 3 ne doit jamais pouvoir être sélectionnée.

Bizarre, mais je n'arrive pas à le mettre en place

Votre aide serait vraiment la bienvenue

Par avance, un grand merci
Rastam
Registered member
28 messages
Posted on February, 13 2019 - 4:26 PM
Bonjour Rastam,

Si le problème est que tu n'arrive pas à faire en sorte que ton Opt3 ne soit plus sélectionnable après renseignement de motif, peut être peux tu essayer de rendre le champ grisé avec la propriété ..grisé ou alors carrément faire disparaître ton Opt3 avec ..Visible.

Mais à vrai dire je ne comprends pas réellement quel est ta problématique. J'ai du mal à visualiser ce que tu expliques.
Posted on February, 14 2019 - 9:58 AM
Bonjour et merci Eolinexenox,

Voici la problématique :
Le champ motif est en saisie libre.
Si je sélectionne l'option 3 de mon sélecteur, je ne dois pas pouvoir continuer dans ma saisie, tant que le motif n'est pas renseigné.

Cas 1 :
Je sélectionne l'option 3 :

Voici le code "A chaque modif" du champ sélecteur (qui marche bien ):

SELON Sel_P
CAS 3 :
SI Sai_Motif = "" ALORS
ToastAffiche("Si vous êtes en " + Sel_P[3]..Libellé + ", vous devez renseigner le motif.",toastLong,cvMilieu,chCentre,RougePastel)
Sel_P = -1
Sai_Motif..CouleurFond = OrangePastel
FIN
AUTRE CAS :
Sai_Motif..CouleurFond = CouleurDéfaut
FIN

Si je renseigne le motif, ALORS je peux sélectionner l'option 3.

Maintenant :
Le motif est renseigné ET l'option est 3.

Si je supprime le motif (cad motif = ""), je voudrais pouvoir réinitialiser le sélecteur à Sel_P = -1.
Et c'est ce que je n'arrive pas à faire. Le code "Sortie avec modification..." du champ motif n'est pas exécuté !

Et dans le code "Sortie avec modification..." du champ motif, j'ai ceci :
Exécutetraitement(Bt_RepriseSaisie,trtClic)


Le code de ce bouton :

SI Sel_P = 3 ALORS
SI Sai_Motif = "" ALORS
Sel_P = -1
ToastAffiche("Si vous êtes en " + Sel_P[3]..Libellé + ", vous devez renseigner le motif.",toastLong,cvMilieu,chCentre,RougePastel)
FIN
FIN
Sai_Motif..CouleurFond = CouleurDéfaut

Mais le code de ce bouton ne s'exécute pas. Et c'est là seulement que se trouve le problème !

Bien sûr, en dernier ressort, je peux aussi faire les vérifications dans mon bouton Enregistrer, mais je trouve que ce n'est pas top d'attendre jusque-là. De plus, ma page contient beaucoup de champs de saisie.

Merci par avance
Rastam
Registered member
28 messages
Posted on February, 14 2019 - 12:26 PM
Bonjour Rastam,

Alors j'ai testé avec cette configuration et personnellement cela fonctionne je ne sais pas ou tu avais mis ton code de ton bouton mais il faut faire attention à le mettre dans le code serveur et non le code navigateur. Je te partage la solution qui pour moi fonctionne :

Code du Sel_P :

Initialisation :

MoiMême = -1


A chaque modification de Sel_P :

SI SAI_Motif = "" ET MoiMême = 3 ALORS //Afin de ne pas pouvoir cliquer sur l'OPT 3 si le champ de saisie est vide
MoiMême = -1
FIN


Code du SAI_Motif :

Sortie avec modification de SAI_Motif :

SI MoiMême = "" ET SEL_P = 3 ALORS
ExécuteTraitement(BTN_Test,trtClic)
FIN


Code du BTN_Test :

Clic du BTN (Serveur)

SI SAI_Motif = "" ET SEL_P = 3 ALORS
SEL_P = -1
FIN


J'ai essayé de reproduire ton problème le plus fidèlement possible en espérant que cela puisse t'aider !
Posted on February, 14 2019 - 4:39 PM
Eolinexenoz a écrit :
Bonjour Rastam,

Alors j'ai testé avec cette configuration et personnellement cela fonctionne je ne sais pas ou tu avais mis ton code de ton bouton mais il faut faire attention à le mettre dans le code serveur et non le code navigateur. Je te partage la solution qui pour moi fonctionne :

Code du Sel_P :

Initialisation :

MoiMême = -1


A chaque modification de Sel_P :

SI SAI_Motif = "" ET MoiMême = 3 ALORS //Afin de ne pas pouvoir cliquer sur l'OPT 3 si le champ de saisie est vide
MoiMême = -1
FIN


Code du SAI_Motif :

Sortie avec modification de SAI_Motif :

SI MoiMême = "" ET SEL_P = 3 ALORS
ExécuteTraitement(BTN_Test,trtClic)
FIN


Code du BTN_Test :

Clic du BTN (Serveur)

SI SAI_Motif = "" ET SEL_P = 3 ALORS
SEL_P = -1
FIN


J'ai essayé de reproduire ton problème le plus fidèlement possible en espérant que cela puisse t'aider !



Eolinexenox, grâce à toi, je comprends maintenant pourquoi cela ne fonctionne pas.

En fait, si dans le code que tu m'as envoyé,

SI tu rajoutes la ligne suivante

ToastAffiche("Si vous êtes " + Sel_P[3]..Libellé + ", vous devez renseigner le motif.",toastLong,cvMilieu,chCentre,RougePastel)

1- Dans ton code "A chaque modification de Sel_P" et avant la ligne MoiMême
ET
2- Dans ton code "Clic du BTN_Test" et avant la ligne SEL_P = -1

ALORS ça ne fonctionne plus !!!

Est-ce un bug ???? C'est quoi la solution ?
Sans cette ligne, ton code fonctionne bien !
Registered member
28 messages
Posted on February, 14 2019 - 4:59 PM
Je reviens vers toi demain matin !
En attendant si tu as le temps essaye avec un ToastAffichePopup(), en créant à coté une popup pour ta page et redis moi si cela change quelque chose. Sans oublier de lui donner du texte du style
POPUP_maPopup = "Si vous êtes ...."
ToastAffichePopup(POPUP_maPopup,toastLong,cvMilieu,chCentre)
Message modified, February, 14 2019 - 5:00 PM
Posted on February, 15 2019 - 9:09 AM
Bonjour Eolinexenox,

J'ai essayé. Le problème est toujours là.
Toute fonction du type Toast* déclenche le problème.
Bizarre. Je ne comprends pas.
Registered member
28 messages
Posted on February, 15 2019 - 10:07 AM
Bonjour Rastam,

Je viens de tester et dans mon cas cela fonctionne très bien !
Je me suis juste tromper pour la Popup.
Le mieux est enfaîte de faire un champ LIB dans la Popup, d'attribuer le texte voulu au LIB et d'ensuite afficher la Popup.

Je te remet le code ci dessous

Clic BTN (Serveur)

SI SAI_Motif = "" ET SEL_P = 3 ALORS
SEL_P = -1
LIB_Popup = "Si vous êtes " + SEL_P[3]..Libellé + ", vous devez renseigner le motif."
LIB_Popup..Couleur = RougePastel
ToastAffichePopup(POPUP_Error,toastLong,cvHaut,chCentre)
FIN


A chaque modif SEL_P

SI MoiMême = 3 ET SAI_Motif = "" ALORS
MoiMême = -1
FIN


Sortie avec modification SAI_Motif

SI MoiMême = "" ET SEL_P = 3 ALORS
ExécuteTraitement(BTN_test,trtClic)
FIN


Si cela ne fonctionne toujours pas alors il doit y avoir une corrélation ailleurs dans ta page qui empêche l'affichage d'une Popup. (Du style un rechargement de page ou d'autre chose)
Posted on February, 15 2019 - 12:30 PM
Bonjour et merci pour tes efforts à m'aider à trouver une solution.

Le code fonctionne uniquement la 1ère fois !

En effet, si, ensuite, je saisis le motif
ET qu'ensuite je sélectionne l'option 3
Et qu'ensuite, je vienne supprimer le motif, (je sais, c'est tordu, mais je veux empêcher ce cas)
ALORS l'option 3 ne se réinitialise pas

Incroyable que cela semble si compliqué !

Encore merci à toi Eolinexenoz
Rastam
Registered member
28 messages
Posted on February, 15 2019 - 1:48 PM
C'est marrant chez moi il fonctionne à chaque fois ainsi que la Popup.

Je clique sur l'option 3 elle se réinitialise direct vu que SAI_Motif = ""
Donc je remplis le motif, je clique sur l'option 3 (elle est bien sélectionnée), je supprime le contenu du champ SAI_Motif et la Popup s'affiche ainsi que le sélecteur qui se réinitialise. Et je peux refaire ce schéma à l'infini.

As-tu pensé à réinitialisé le sélecteur avant d'afficher la Popup ?
Posted on February, 15 2019 - 3:18 PM
Sincèrement un grand merci Eolinexenox,

Cela fonctionne bien.
Ton idée de la popup est géniale.
Tu m'as enlevé une Grosse épine des 2 pieds !
Grâce à toi, mon problème est réglé.
Vraiment Merci pour ton aide

Je te souhaite un bon weekend
Rastam
Registered member
28 messages
Posted on February, 15 2019 - 3:35 PM
Content que cela fonctionne pour toi !

N'hésite pas à en mettre une sur toutes les pages c'est toujours pratique !
Même si il y a quelques bug de temps à autres.

Bon weekend à toi aussi et bon dev !