IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD22] fonction RETOUR vide les champs


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut [WD22] fonction RETOUR vide les champs
    Bonjour,

    Je viens de passer de la version 14 anglaise à 22 française ce qui fait un sacré changement ^^ .

    J'ai créé une fenêtre avec plusieurs champ à remplir (une fiche société).
    Les différents champs sont reliés à une base de donnée.
    Si j'arrive en création sur la fenêtre je fais un hraz(nom de la table) pour couper la liaison et ainsi permettre la saisie pour la création d'une nouvelle société.

    J'effectue lors de la validation de la création un contrôle si certains champ sont renseignés, s'ils ne le sont pas alors j'arrête le traitement via un RETOUR.

    Le problème que je rencontre, c'est que le RETOUR me renvoie sur ma fenêtre mais en me vidant tous les champs...
    J'aimerai que windev garde en mémoire ses champs pour permettre à l'utilisateur de saisir les champs manquants sans tout ressaisir.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI SansEspace(EDT_Nom1) = "" ALORS
    	Ouvre(FEN_INFO,1,"Veuillez saisir un Nom de société")
    	RETOUR
    FIN
    Avez vous une idée ?

    EDIT : après d'autres tests je constate que c'est la fenêtre d'info qui me vide les champs, si je l’enlève et que je clique sur le bouton pour valider la création, le traitement s'arrete bien et je reste sur la fenêtre de la fiche société tout en conservant mes champs.
    Cependant j'ai besoin qu'une fenêtre d'information s'ouvre pour signaler le problème à l'utilisateur.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour avertir, c'est la fonction Erreur, et au lieu de faire appel à RETOUR, vous pouvez faire appel à RepriseSaisie

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    En utilisant la fonction erreur à la place de ma fenêtre info, les champs ne se vident pas.

    Mais j'aimerai utiliser ma propre fenêtre info, qu'est ce qui pourrait expliquer que la validation de l'info Erreur et de ma propre fenêtre soit différente ?

    Le bouton OK de ma fenêtre info a pour simple code


  4. #4
    Invité
    Invité(e)
    Par défaut
    Pour fermer la fenêtre en cours, il n'est pas nécessaire de renseigner des paramètres à la fonction Ferme.
    A quel moment est-ce que les champs sont remis à blanc? S'agit-il du moment où la fenêtre FEN_INFO s'affiche ou quand elle se ferme?
    Si c'est au moment où la fenêtre s'affiche, il faut voir la partie "initialisation" de la fenêtre.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Les champs se vident au moment où ma fenêtre info se ferme.

    Quand elle s'ouvre et que je la met sur le coté je vois bien mes champs remplie dans ma fenêtre fiche société.

    EDIT : je pense que tu as raison, j'ai testé l'ouverture de ma fenêtre info en ouvresoeur et là, dès l'ouverture de ma fenêtre mes champs se vident...


    Dans ma fenêtre info initialisation j'ai rien de particulier comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Police_info est une Police 
    Police_info..Nom = "Trebuchet MS"
    Police_info..Taille = 12
     
    Lib_info..Y = 51
    Lib_info..Height = 63
     
    //Saisie à personnaliser
     
    SI FEN_INFO..Plan = 1 ALORS
    	Lib_info..Police = Police_info
    	Lib_info..CadrageHorizontal = chCentre
    FIN

    Dans la section globale de la fenêtre info :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROCEDURE FEN_INFO(Nplan=1,Message="")
    MaFenêtre..Plan = Nplan
    Lib_info = Message

    Si dans ma fenêtre fiche société j’enlève les liens des champs vers la base de donnée, les champs de ne se vident pas lorsque ma fenêtre info apparaît.

    Haaaa, mais, je pense savoir ce qu'il se passe, lorsque je retourne sur ma fenêtre fiche société après l'apparition de ma fenêtre info, ma fenêtre essaye d'afficher les éléments auquel pointent mes champs sur la base de donnée, mais comme elle pointe sur rien à cause de mon hraz initial lors de l'ouverture de la fenetre fiche société, elle vide les champs pour rien afficher.

  6. #6
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Durant le débugage de l'application, il est possible d'avoir des points d'arrêt conditionnel.
    Cela peut permettre d'arrêter le programme dès qu'une variable ou un champ change de valeur.

    Je n'arrive pas à trouver l'aide précise dans la doc Windev mais il y a déjà celles-ci:
    - Gestion des points d'arrêt
    - Débogueur : Exécuter un projet en pas à pas

    Voici un exemple de ce qui peut être réalisé.
    La colonne "Stop" contient un rond de couleur vert qui devient rouge lorsqu'on clique dessus.
    Lorsqu'il est rouge, cela signifie que programme se mettra en pause et ouvrira le debogeur dès que l'expression indiqué changera de valeur.
    Nom : Debogueur.png
Affichages : 138
Taille : 19,3 Ko
    Avoir un point d'arrêt conditionnel ralenti fortement le traitement. Il faut donc l'activer le plus tard possible (en cours d'exécution, avant de cliquer sur le bouton "Valider" de la fiche)

  7. #7
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, il suffit d'employer une méthode infaillible : mettez un point d'arrêt sur la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(FEN_INFO,1,"Veuillez saisir un Nom de société")
    et exécutez votre projet.

    De ce fait, quand le debogger va se lancer, ajoutez dans le debogger la valeur d'un de vos champs de saisi qui se vide, faites F7 sur votre clavier (ou clic sur le bouton "pas à pas détaillé").
    Vous allez ainsi voir en détail ce que fait votre code. Si par contre, vous faites F5, vous ne verrez rien.

  8. #8
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Sinon, je pense (mais je peux me tromper) que le problème vient du fait que le HRaz de la fenêtre FICHE_SOCIETE se trouve dans le traitement "Prise de Focus" et non "Fin d'intiialisation".

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Oui .. Dans cette portion "Prise de Focus", ajoute une instruction du type : info ( "on passe par la prise de Focus" )

    Et tu verras que cette portion de code s'exécute quand la fenêtre active redevient ta fenêtre principale... cqfd.


    Pour ma part, j'ai très rarement besoin de mettre du code dans 'Prise de Focus' ou 'Perte de Focus' ; ça correspond uniquement à des besoins plutôt particuliers.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Je reprend mon edit : Si dans ma fenêtre fiche société j’enlève les liens des champs vers la base de donnée, les champs de ne se vident pas lorsque ma fenêtre info apparaît.

    Haaaa, mais, je pense savoir ce qu'il se passe, lorsque je retourne sur ma fenêtre fiche société après l'apparition de ma fenêtre info, ma fenêtre essaye d'afficher les éléments auquel pointent mes champs sur la base de donnée, mais comme elle pointe sur rien à cause de mon hraz initial lors de l'ouverture de la fenêtre fiche société, elle vide les champs pour rien afficher.


    Edit confirmé par votre méthode, on voit dans le deboger les valeurs des champs récupérés lors de l'ouverture de la fenêtre info sont vides et lors du retour sur la fenêtre fiche société il fait une reprise de focus via fichierversecran.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Narwe Voir le message
    Sinon, je pense (mais je peux me tromper) que le problème vient du fait que le HRaz de la fenêtre FICHE_SOCIETE se trouve dans le traitement "Prise de Focus" et non "Fin d'intiialisation".
    un peu dans le même style, j'hésite entre "prise de focus de l'écran du formulaire" ou "perte de focus du bouton",

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Oui .. Dans cette portion "Prise de Focus", ajoute une instruction du type : info ( "on passe par la prise de Focus" )

    Et tu verras que cette portion de code s'exécute quand la fenêtre active redevient ta fenêtre principale... cqfd.
    C'est exactement ça.

    Dans la prise de focus, j'ai un fichierversecran
    En le mettant en commentaire cela fonctionne.

    Je vais rajouter une condition d'exclusion lorsque l'on est en création cela devrait résoudre mon probleme.

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup pour votre aide, avec la condition mis en place cela fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction pour vider les champs d'un formulaire
    Par Tibimac dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/06/2010, 09h05
  2. Fonction retour d'un champ d'une table
    Par davelop dans le forum ASP.NET
    Réponses: 7
    Dernier message: 11/12/2009, 09h19
  3. [SP-2007] Créer une fonction utilisable dans les champs calculés
    Par lolomoss dans le forum SharePoint
    Réponses: 4
    Dernier message: 25/06/2009, 08h49
  4. Réponses: 6
    Dernier message: 31/07/2006, 16h01
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo