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 :

Mauvais affichage du champ date dans un tableau [WD17]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut Mauvais affichage du champ date dans un tableau
    Bonjour a tous !
    J'ai des champs date de Naissance, date Embauche et date Retraite dans la table AGENT. Lors de la saisie de mon agent je saisie sur ces champs par exemple 12/05/2016 mais après enregistrement, il affiche 12/05/______ dans la table agent.
    Alors que leur masque de saisie, masque d'affichage et la valeur retournée sont tous sous le format JJ/MM/AAAA.
    Votre aide me serait vraiment un soulagement

  2. #2
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Les colonnes dans la table sont-elles de type Date ou Chaine ?

    Comment remplissez vous votre table ? Par programmation ou par liaison ?

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    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 120
    Points : 9 533
    Points
    9 533
    Par défaut
    Pour Valeur Retournée, le standard est d'utiliser AAAAMMJJ, et c'est 100 fois plus pratique que les autres options.
    Quand tu consultes ta base de donnée, l'outil que tu utilises pour consulter la base met les données au format JJ/MM/AAAA, mais, dans la base elle-meme, les données sotnt stockées différement.
    AAAAMMJJ a un autre gros avantage: ça permet de trier sur l'âge...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup pour le feed back.
    Ces colonnes dans la table sont de type date et je rempli ma table AGENT par programmation.

  5. #5
    Membre averti Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Points : 368
    Points
    368
    Par défaut
    Il faut uniformiser les formats des dates que tu utilises (champ de saisie, colonne de table)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    J'ai mis tout les champs date en format AAAA/MM/JJ mais malheureusement le seul changement constaté est de 25/02/_____ c'est passé à 2016/02/____

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour, il s'agit de quel SGBD utilisé? si ton champ est au format date dans ton SGBD, il faut utiliser des fonctions de conversion quand tu dois lire ou enregistrer tes données, sous sql server, c'est la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONVERT(varchar, <ma donnée au format date, 112)
    pour la convertir au format wlangage AAAAMMJJ

    Autre solution que je privilégie, les champs dans un SGBD qui doivent contenir une date doivent être systématiquement enregistrées au format chaine de longueur 8

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    J'utilise juste l'analyse windev et en effet ils sont enregistrées au format chaine de longueur 8

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GAJES Voir le message
    J'utilise juste l'analyse windev et en effet ils sont enregistrées au format chaine de longueur 8
    Comment sont enregistrées tes dates? Si tu souhaites enregistrer la date du 31/12/2016, est-elle enregistrée sous la forme suivante : 20161231 ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Mes champs dates sont enregistrés au format JJ/MM/AAAA mais sauf après l'enregistrement d'un agent il me donne une date par exemple 12/02/____ meme quand j'essaie le format AAAA/MM/JJ il me renvoie 2016/02/_______.
    Mon préoccupation c'est pourquoi au premier format il n'affiche pas l'année et eu second format le jour ?

  11. #11
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    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 120
    Points : 9 533
    Points
    9 533
    Par défaut
    Essaie avec la date 2016/12/31, ou 2016/12/25 ... tu y verras peut être un peu plus clair.
    Ici, c'est un coup de chance si le mois est correct.

    Tu entres 2016/02/25 ... il fait un '''mapping''' vers AAAAMMJJ donc AAAA = 2016, MM = /0 , JJ = 2/ et 25 n'est pas pris en compte car il ne traite que les 8 premiers caractères.


    Supprime ton champs date, et recrée le. Par défaut, les paramétrages sont bien. Affichage sympa, et valeur retournée en AAAAMMJJ

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Comme proposé j'ai supprimé mes champs date et pris le format par défaut. Voila ça marche merci pour votre aide.

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 120
    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 120
    Points : 9 533
    Points
    9 533
    Par défaut
    Dans le développement, souvent, on cherche ce qu'on a oublié de faire pour que ça marche...
    Et dans Windev, c'est l'inverse. Pour que ça marche, il faut enlever un truc qu'on a mis et qui fait planter.

  14. #14
    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 451
    Points
    2 451
    Par défaut
    Citation Envoyé par GAJES Voir le message
    J'utilise juste l'analyse windev et en effet ils sont enregistrées au format chaine de longueur 8
    Bonjour,

    L'explication pratique de votre problème initial vient du type de la rubrique de votre analyse : chaîne de 8 caractères.
    En effet AAAA/MM/JJ ou JJ/MM/AAAA, cela fait toujours 10 caractères : 8 pour la date et 2 '/'.
    Donc, au stockage, vous amputiez votre chaîne représentant une date de 2 caractères et au retour, après la lecture de votre enregistrement, WD ne trouvait qu'une information incomplète.
    Vous auriez constaté cela si vous aviez examiné votre fichier.

    Maintenant, vous avez ramené la longueur de votre chaîne à 8 caractères, ce qui explique que cela fonctionne.
    Ce qu'il vous faut probablement encore faire, c'est convertir votre rubrique d'un type chaîne à un type 'date'.
    Ainsi, vos données seront parfaitement cohérentes et vous pourrez les utiliser sans aucun problème, avec l'avantage de pouvoir utiliser les fonctions et propriétés spécifiques aux dates, qui sont très intéressantes.

    Bon travail

    Hemgé.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hemgé Voir le message
    Ce qu'il vous faut probablement encore faire, c'est convertir votre rubrique d'un type chaîne à un type 'date'.
    Ainsi, vos données seront parfaitement cohérentes et vous pourrez les utiliser sans aucun problème, avec l'avantage de pouvoir utiliser les fonctions et propriétés spécifiques aux dates, qui sont très intéressantes.
    S'il s'agit d'utiliser les fonctions DateVersXXX, DateValide, DateDifférence, ..., le wlangage ne fait pas la différence entre une donnée "date" et une donnée "chaine" du moment que la donnée correspond bien à une date au format WLangage

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

Discussions similaires

  1. Affichage d'une date dans un champ
    Par moumouche-92 dans le forum Oracle
    Réponses: 2
    Dernier message: 15/01/2014, 10h20
  2. [SQL-Server] Affichage / récupération champ text dans un tableau php
    Par jeeps64 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/07/2011, 14h30
  3. [MySQL] affichage d'une date dans un tableau
    Par toomou dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2009, 10h56
  4. Réponses: 2
    Dernier message: 28/11/2006, 11h20
  5. affichage et calcule de la date dans un tableau
    Par argon dans le forum Interfaces Graphiques en Java
    Réponses: 35
    Dernier message: 22/06/2006, 10h51

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