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 :

Probleme avec fonction saisie


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 123
    Points : 44
    Points
    44
    Par défaut Probleme avec fonction saisie
    Bonjour,

    Debutant sous windev, j'ai besoin d'un coup de main car là je ne comprends vraiment pas ce qui arrive.

    Dans mon appli je dois poser une question et recevoir comme reponse une date, voici le code archi simple :


    dDAtSaisie est une Date
    Saisie.MasqueSaisie = "JJ/MM/AAAA"
    Saisie("question",dDAtSaisie)

    Mais ça ne va pas, quand je lance la fenetre la question est bien posée, mais dans la zone de saisie de la boite de dialogue j'ai par defaut JJ/MM/AA et si je saisie il me mets toujours devant JJ/MM !!??

    Avez vous une idée de ce qu'il se passe ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Bonjour,

    Le code que tu présente fonctionne sous V16, mais j'ai tout de même sur un gros doute sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Saisie.MasqueSaisie = "JJ/MM/AAAA"
    d'après la documentation de Saisie MasqueSaisie attend une constante de type maskXxxxxx et non un masque de saisie sous forme Texte.

    Pour en revenir à ton code, sous V16 celui ci fonctionne très bien sans masque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dDAtSaisie est une Date
    Saisie("question",dDAtSaisie)
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 123
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    merci pour la reponse je viens de tester en prenant que ces deux lignes :

    dDAtSaisie est une Date
    Saisie("question",dDAtSaisie)

    Et j'ai deux problemes :
    - dans la zone de saisie de la boite de dialogue il me met par defaut 20120731
    - quand si je saisie une date ( ex 01/01/2001), puis place le resultat de la variable dDatSaisie dans un champ de saisie pour afficher la reponse c'est du grand n'importe quoi, pour que la date soit lisible il faudrait taper 20010101 ??!

    Help

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Si tu fais un trace de ta variable juste après sa saisir, la valeur semble bonne
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour Alex1005

    Comme DelphiManiac vous l'a signalé la variable Saisie.MasqueSaisie attend une constante prédéfinie.

    "20120731" est la date du jour, proposée par défaut.

    Quant à "20010101", ce n'est pas du n'importe quoi, c'est le format sous lequel Windev manipule les dates
    Je vous renvoie à l'aide sur les variables de type Date.

    En fait, pour faciliter les tris sur dates, celle-ci sont stockées par "ordre de pertinence" de l'information : on trie d'abord sur l'année qui est plus discriminante, puis sur le mois qui est plus discriminant que le jour.

    Et la différence entre une zone de saisie Texte ou Date tient juste dans l'affichage.
    Fondamentalement, ce sont des variables chaîne de caractères dont le type Date est contrôlé par Windev au niveau de la validité, puis affiché de manière formatée.

    Voyez du côté de DateVersChaîne et ChaîneVersDate.
    Vous devriez pouvoir vous débrouiller.

    Ou alors, voyez du côté des fenêtres PopUp et vous aurez toute la liberté voulue, y compris le champ Date avec son calendrier.

    Bon travail
    Hemgé

    PS : n'oubliez pas de passer vos Post précédents en "Résolu" si c'est effectivement le cas.

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 123
    Points : 44
    Points
    44
    Par défaut
    En fait de ce que je comprends, puisque ma variable est de type date dans la boite de dialogue je me retrouve avec ma date sous ce format AAAAMMJJ, je ne peux pas demander au utilisateurs de saisir leur date comme ça.
    Du coup dois je passer par une variable declarée comme chaine pour bidouiller ensuite et en faire une date .. je me dis qu'il y a plus pratique quand meme

  7. #7
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    La date, pour ma part, avec le bout de code testé est bien sous la forme JJ/MM/AAAA en saisie au sein de la boite de dialogue, par contre, quand on exploite cette date sous Windev, elle a la forme AAAAMMJJ ce qui est normal.

    Pourrais t'on avoir le code précis et simplifié au maximum (quitte à faire un projet de test qui ne contienne que ça) ainsi qu'une copie de l'écran de saisie.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  8. #8
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    Dans la description de ton champ de saisie, tu donnes le format. Si tu as choisi un format date, il te propose en affichage de choisir parmi une liste,celui qui te convient. Par exemple JJ/MM/AAAA. et comme le disent DelphiManiac et Hemgé, la valeur de retour n'est pas la même mais permet de mieux faire des tris et des différences.
    Coome cela, ton utilisateur saisi par exemple le 30/07/2012 (hier) et toi dans ton code tu te retrouves avec 20120730, ce qui est plus facile à manipuler, à tester. et surtout si tu as des utilisateurs qui ont un masque français et d'autres un masque anglo saxon, tu as la meme valeur retournée en programmation. Le masque de saisie est juste plus agréable pour l'utilisateur.
    Bon dev
    Gancau

  9. #9
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    J'ai pas tout compris aux réponses, mais voici quelques infos :

    1. On peut parfaitement écrire un masque de saisie qui n'est pas une constante "mask..." dans Saisie.MasqueSaisie. La seule chose, c'est que WinDev a besoin d'avoir le bon type de données, donc la variable destination doit être de type date.

    2. Quand vous tapez "Saisie(" dans l'éditeur, un assistant vous est proposé, et vous permet de définir précisément les propriétés du champ de saisie (comme un champ de fenêtre).

    3. Le champ de saisie de date renvoie par défaut une chaîne "AAAAMMJJ", implicitement convertible en type Date, et ce type Date peut être affiché comme bon vous semble avec la fonction DateVersChaîne.

    PS.

    4. Quand vous dites que la valeur par défaut est la date du jour, c'est en réalité la valeur qui est dans votre variable. Donc faites toto est une Date = "" et le champ sera vide à l'affichage.

Discussions similaires

  1. [Mail] probleme avec fonction mail() !!!
    Par H-bil dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2006, 23h45
  2. C++ - Probleme avec fonction virtuelle
    Par vdumont dans le forum C++
    Réponses: 1
    Dernier message: 20/03/2006, 20h49
  3. probleme avec fonctions
    Par Burinho dans le forum C
    Réponses: 8
    Dernier message: 29/12/2005, 21h28
  4. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  5. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42

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