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 :

format date dans un libellé [WD18]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut format date dans un libellé
    Bonjour à tous,

    j'utilises le code ci-dessous pour faire afficher plusieurs résultats dans un libellé dont une date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Modifie le libellé "Titre"
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] + COMPTAGE.DATE_OBSERVATION + [" à "] + COMPTAGE.COMMUNE
    La date s'affiche sous la forme AAAAMMJJ , je voudrais qu'il s'affiche sous le format JJ / MM / AAAA

    par avance merci pour votre aide.

    Cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Bonjour ,

    D'après ta ligne de code le résultat est normal, il affiche la date dans la format stocké dans ton fichier de base de données. As tu regardé la fonction DateVersChaine ?

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonjour dsr57 merci pour ton aide

    si j'essaye ta suggestion dateverschaine voila le résultat que j'obtiens

    Nom : 1.jpg
Affichages : 925
Taille : 6,8 Ko

    avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Modifie le libellé "Titre"
    dRes est une Date
     
    dRes = DateVersChaîne(COMPTAGE.DATE_OBSERVATION, "JJ/MM/AAAA")
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] + dRes + [" à "] + COMPTAGE.COMMUNE
    avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] + COMPTAGE.DATE_OBSERVATION + [" à "] + COMPTAGE.COMMUNE
    j'obtiens cet affichage

    Nom : 3.jpg
Affichages : 922
Taille : 6,8 Ko

    pourtant dans mon fichier la date est bien au format JJ/MM/AAAA

    Nom : 4.jpg
Affichages : 923
Taille : 10,6 Ko

    d'ou cela peut provenir?

    Et comment y remedier?

    Par avance merci.

    Cordialement.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Dans ton fichier, ta date est forcément au format AAAAMMJJ Regarde dans ton analyse, le seul 'format' qui existe pour une date est AAAAMMJJ. Ca permet à windev de stocker l'information de façon universelle, et de faire des calculs sur les dates sans trop de complications.

    Mais comme les outils windev sont très sympas (peut-être rop, puisque ça t'induit en erreur), par défaut, l'affichage des dates est souvent JJ/MM/AAAA au lieu de AAAAMMJJ
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonjour tbc92,

    oui le format de date dans mon fichier est bien AAAAMMJJ
    Nom : 6.jpg
Affichages : 1148
Taille : 70,8 Ko

    ce que je ne comprends pas c'est que avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dRes = DateVersChaîne(COMPTAGE.DATE_OBSERVATION, "JJ/MM/AAAA")
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] +dRes  + [" à "] + COMPTAGE.COMMUNE
    c'est que je n'arrive qu'a afficher ceci

    Nom : 7.jpg
Affichages : 928
Taille : 6,0 Ko

    c'est à dire JJ/MM/AA je n'arrive pas à faire afficher l'année sur quatre chiffres ou sinon il faut que je supprime les / ce qui ne rend s pas lisible la date

    merci pour vos lumières

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 397
    Points
    9 397
    Par défaut
    J'imagine que plus haut dans ton code, tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dRes est une chaine sur 8
    ou peut être même ????
    Edit : Effectivement, je vois plus haut dRes est une date.
    déclare dRes comme une chaine simple, sans limitation de longueur, et ça fonctionnera.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    re_bonjour oui bien entendu j'ai mis ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Modifie le libellé "Titre"
    dRes est une Date
    //
    dRes = DateVersChaîne(COMPTAGE.DATE_OBSERVATION, "JJ / MMMM / AAAA")
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] +dRes  + [" à "] + COMPTAGE.COMMUNE

    merci

  8. #8
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Bonjour nrdz83,

    Une solution consiste, à enlever les "/" du format et effectivement tu obtiendras ta date sous forme JJMMAAAA,

    Après utilise les fonctions de manipulation de chaine comme droite gauche et milieu pour insérer tes "/" dans la nouvelle chaine.

    Meilleures salutations,

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    C'est se compliquer la vie pour pas grand chose...
    nrdz83, tu déclares ta variables comme étant une date, et tu lui affectes le résultat de DateVersChaine()... Donc WinDev va reconvertir ta chaine dans une date, puis dans ton affectations refaire la conversion inverse...
    Comme tu veux une chaine, déclare ta variable comme étant une chaine, comme indiqué plusieurs fois par tbc92.
    Ou passe toi de variable intermédiaire, et utilises DateVersChaine dans la construction du titre.

    Tatayo.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonsoir à tous,

    j'ai beau essayer vos solutions je n'arrive toujours pas à afficher plus de 8 caractères sur mon format de date.

    Merci

  11. #11
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Ecoute,

    Ma solution comme dit par tatayo, c'est ce qu'il ne faut pas faire, je le reconnait volontiers et les 2 votes négatifs je les ai bien mérités, pour la petite histoire je me suis focalisé sur ta variable date... bref passons pas génial.

    Tbc92 et tatayo t'on donné la solution utilise une variable chaîne.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonsoir rudolfrudolf,

    j'ai essayé de faire une variable chaîne mais en vain, étant novice je dois surement faire plein d'erreurs.

    Serait-il possible d'avoir un exemple de code afin que je l'adapte à mon problème.

    Par avance merci à tous.

    Cordialement.

  13. #13
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Montre ton code stp

  14. #14
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 397
    Points
    9 397
    Par défaut
    DateVersChaine, a convertit une Date en Chaine ... comme son nom l'indique donc il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    D est une date = "20160321"
    C est une chaine
    C = DateversChaine(D)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #15
    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
    Bonsoir,

    C'est très simple et vous avez reçu toutes les réponses voulues, mais vous ne les lisez ni ne les testez complètement .

    Comme vous êtes débutant, on reprend à zéro, mais UNE seule fois.

    Comme tbc92 vous l' indiqué :
    déclare dRes comme une chaine simple, sans limitation de longueur,
    Donc, vous recommencez la déclaration de votre variable Res, càd :
    - vous supprimez votre déclaration de la variable dRes (qui est en fait la variable Res, avec le préfixe automatique d pour désigner une variable de type date)
    - vous la remplacez par la déclaration "Res est une chaîne" qui vous donnera une variable "sRes", s étant le préfixe automatique pour une variable de type chaîne (ou string en anglais)

    Vous assignez à cette chaîne le résultat de la présentation sous la forme souhaitée de votre rubrique de type date, en utilisant la fonction DateVersChaîne()
    Soit sRes = DateVersChaine(COMPTAGE.DATE_OBSERVATION, "JJ / MM / AAAA") pour obtenir dans la chaîne sRes une représentation de type "20 / 03 / 2016"
    ou sRes = DateVersChaine(COMPTAGE.DATE_OBSERVATION, "JJ / MMMM / AAAA") pour obtenir dans la chaîne sRes une représentation de type "20 / mars / 2016", comme vous l'avez aussi utilisé mais il vaudrait alors mieux ôter les "/".

    Vous pouvez vérifier ce résultat intermédiaire en utilisant l'instruction
    Trace(sRes), qui affichera la valeur de sRes dans une petite fenêtre indépendante, en principe sur fond jaune, soit a priori :16 / 03/ 2016 (compte tenu des espaces autours des /)

    Une fois que vous aurez pu vérifier que cela a fonctionné, il vous restera à modifier le code que vous aviez utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] +dRes  + [" à "] + COMPTAGE.COMMUNE
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] +sRes  + [" à "] + COMPTAGE.COMMUNE
    Enfin, tout cela étant réglé, vous verrez qu'il est plus simple de vous passer de sRes et de coder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIB_Titre = COMPTAGE.NOM_OBSERVE + ["  Observé le  "] + DateVersChaine(COMPTAGE.DATE_OBSERVATION, "JJ / MM / AAAA") + [" à "] + COMPTAGE.COMMUNE
    Et, pour finir en allant un peu plus loin dans la découverte de Windev, vous irez lire la doc sur ChaîneConstruit, pour coder comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sLIB_TitreMsk est chaîne
    sLIB_TitreMsk = "%1 Observé le %2 à % 3"
    LIB_Titre = ChaineConstruit(sLIB_TitreMsk, COMPTAGE.NOM_OBSERVE, DateVersChaine(COMPTAGE.DATE_OBSERVATION, "JJ / MM / AAAA"), COMPTAGE.COMMUNE)
    Bon travail et bon apprentissage.

    Hemgé

    NB :
    Si vous relisez l'entièreté de la discussion, vous verrez que sauf l'introduction de ChaineConstruit, tout vous avait été dit.
    Mais quand on est le nez dans le guidon ET débutant, ce n'est pas toujours évident.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonsoir à tous,

    Un grand merci à vous tous et surtout à toi Hemgé qui grâce à tes explications et exemples on ne peut plus claires, on permis de me faire comprendre et résoudre mon problèmes.

    Effectivement malgré les précieux conseils et indications des autres personnes du fil qui ont essayés de résoudre mon problème.

    J'avais effectivement la tête dans le guidon et arrivait plus à comprendre entre les chaînes et dateverschaine.

    Malheureusement je ne peux pas vous dire à charge de revanche car la programmation est un langage que je découvre, mais sait on jamais.

    Encore merci pour tout.

    Cordialement

    PS: Hemgé je viens de m'apercevoir que tu étais de Belgique, je suis de tout cœur avec tout après ces tristes événements de la journée.

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

Discussions similaires

  1. [C#][2.0][SQL Server 2005] Format date dans GridView
    Par just1980 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/11/2006, 22h45
  2. Format date dans excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/11/2006, 10h06
  3. Format Date dans Oracle :(
    Par uzumaki_naruto dans le forum Oracle
    Réponses: 3
    Dernier message: 25/08/2006, 15h45
  4. Format date dans état après migration
    Par guiguikawa dans le forum Access
    Réponses: 10
    Dernier message: 21/06/2006, 13h27
  5. Réponses: 3
    Dernier message: 21/02/2005, 00h29

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