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

Forms Oracle Discussion :

[Forms10g] Format d'une variable DATE en global, changement?


Sujet :

Forms Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 63
    Points
    63
    Par défaut [Forms10g] Format d'une variable DATE en global, changement?
    Salut à tous

    voilà mon problème, mes formes ont des champs de dates (pas le fruit, le jour! ) Ces champs ont comme pattern DD/MM/YYYY. Ces dates sont actuellement remplies à la main.

    Je suis en train de mettre en place l'utilisation d'un petit calendrier, permettant de choisir une date, pour que les utilisateurs aient plus facile.

    Tout marche presque bien...

    Voila comment je procède. Tout champ date peut etre double-cliqué pour appeler une petite forme calendrier dans laquelle une choisi une date, on clic sur OK de ce calendrier et cela passe a la forme qui fait le call_form, la date en variable globale. La forme recupere la variable global et l'utilise...

    Tout irait bien si bizarrement il n'y avait pas de changement de format de date chose que je ne m'explique pas.

    Je m'explique: dans le calendrier, la date que je choisi est au format DD/MM/YYYY. J'ai fait un test pour etre sur, et j'affiche un message visionnant la date. J'obtiens bien une date style 14/02/2005

    Je la transforme en variable globale, pour cela il faut la transformer en caractere, donc to_char. Je ferme le calendrier.

    La forme qui a fait le call_form recoit la variable globale. Là pour etre sur, je fais un message pour visionner la variable. En mode caracteres cela me donne tjs 14/02/2005.

    Et LA, quand je fait un to_date, ben la date se transforme en 14-FEV-05, résultat dans ma forme la date devient 14/02/0005, voila qui est plutot embettant.

    Ici le code dans le calendrier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    :global.var_date := to_char(date_lov.current_lov_date,'DD/MM/YYYY');
    	message('La date choisie est le : '||:global.var_date);
    	exit_form;

    Ici le code dans le trigger when-double-click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE  
      	P_CHAMP1 VARCHAR2(50);
      	date_tmp DATE;
    BEGIN	
       P_CHAMP1 := :SYSTEM.TRIGGER_ITEM;
       call_form('trac_calendar',no_hide);
       message('Date passée en mode varchar2 : '||:global.var_date);
       date_tmp := TO_DATE(:global.var_date,'DD/MM/YYYY');
       message ('La date passée en argument est : '||date_tmp);
       copy(TO_DATE(:global.var_date,'DD/MM/YYYY'),p_champ1); 
       erase('global.var_date');
    END;
    Il y a du code en trop , ce sont tous les petits messages et les variables supplémentaires qui ne servent qu'à mes tests. Mais ce que je ne comprends pas c'est pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_tmp := TO_DATE(:global.var_date,'DD/MM/YYYY');
    ceci exactement me donne une date 14-FEV-05 alors que je précise dans le to_date le format DD/MM/YYYY

    Comprends pas et vous??

    Merci d'avance
    Une faible lueur de bougie lutte dehors devant ma porte et réchauffe ma petite étincelle de vie.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    La date est une donnée brute, le format n'est appliquée qu'à la restitution. Donc soit tu fais un TO_CHAR pour appliquer le bon format, soit tu modifies le NLS_DATE_FORMAT

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Quand tu fais un to_date, le masque que tu lui indique derrière n'est pas celui de sortie mais celui d'entrée, c'est à dire le format de ta date dans ta chaine de caractère

    Ta variable date aura le format défini dans ton NLS_DATE_FORMAT
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    De plus, utilise plutôt to_char(machaine, 'DD/MM/RRRR') que to_char (machaine, 'DD/MM/YYYY')
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 63
    Points
    63
    Par défaut
    Haaaaaaaaaaa, c'est donc ça!!!

    Merci merci je comprends mnt! Je crois que je vais directement utiliser la variable en varchar2 dans mon champ, je crois que ca peut marcher.

    PlaineR ,j'avais aussi tenté avec RRRR, mais comme ca ne changeait rien, j'ai laissé tomber. (D'un autre coté ca me rassure que quelqu'un comme toi me donne comme conseil quelque chose que j'avais essayé )

    Merci à tous
    Une faible lueur de bougie lutte dehors devant ma porte et réchauffe ma petite étincelle de vie.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    RRRR c'est pour la gestion de l'an 2000, rien à voir avec ton problème, donc la suggestion de Plainer est toujours d'actualité

  7. #7
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Oui, j'aurais du préciser que c'était une remarque générale qui n'était pas en relation directe avec ton problème
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

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

Discussions similaires

  1. Création d'une variable date au Format MMYYS7.
    Par MEGAMIND2 dans le forum SAS Base
    Réponses: 29
    Dernier message: 30/05/2011, 21h48
  2. Réponses: 2
    Dernier message: 30/09/2007, 14h35
  3. variable DATE en Globale
    Par jejam dans le forum SQL
    Réponses: 9
    Dernier message: 20/09/2006, 22h29
  4. initialisation d'une variable DATE
    Par olivll dans le forum Access
    Réponses: 4
    Dernier message: 25/07/2006, 11h57
  5. Format d'une variable
    Par pmboutteau dans le forum ASP
    Réponses: 2
    Dernier message: 22/03/2005, 11h16

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