• Advertisement

defférence entre deux date(date invalide)

Tout ce qui concerne la version 11 & plus récentes de windev

**Windev est une marque déposée de Pcsoft**

defférence entre deux date(date invalide)

Messagepar patric1014 » Lun Déc 06, 2010 11:43 am

Bonjour a tous j'ai un problème au niveau des date j'aimerai mettre la couleur de fond d'une table en vers si la différence entre COL_dated et datesys() et moine 7 si c plus la couleur de fond et rouge
pour cela j'ai mis le code suivant
Code: Tout sélectionner
N est un entier
N = 1
POUR TOUTE LIGNE DE TABLE_GEvis
NJ est un entier
NJ = DateDifférence(TABLE_GEvis.COL_Date_devis,DateSys())
SI NJ >= 7  ALORS
   HRecherchePremier(RelanceD,IDDevis,TABLE_GEvis.COL_IDDEVIS[N]) // la 1ère Condition elle marche j'ai mes ligne en rouge par-contre la 2ème condition c la ou j'ai l'erreur
   SI HTrouve ALORS
      NJR est un entier
      NJR = DateDifférence(TABLE_RelanceD.COL_Date_R,DateSys())
      SI NJR >= 7 ALORS
      TABLE_GEvis[N]..CouleurFond = iRougeClair
      
      SINON
         TABLE_GEvis[N]..CouleurFond =iVertClair
      FIN
   SINON
      TABLE_GEvis[N]..CouleurFond = iRougeClair
   FIN
SINON
      TABLE_GEvis[N]..CouleurFond =CouleurDéfaut   
FIN
N+=1
FIN

mais ca marche pas il me sort une erreur comme koi date invalide format de date AAAAMMJJ
ce que j'ai mis pour enregistrer la date dans ma table relance c'est :
Code: Tout sélectionner
RelanceD.date_devis = TABLE_GEvis.COL_Date_devis
RelanceD.date_R = DateSys()
RelanceD.IDDevis = TABLE_GEvis.COL_IDDEVIS
HAjoute(RelanceD)

donc j'enregistre datesys() et je sais pas ce qu'elle retourne comme format de date
j'espère que mes explication sont claire et j'espère que qlq'un a une idée de la solution merci d'avance.
bondev
patric1014
Membre Confirmé
 
Messages: 118
Inscription: Ven Nov 05, 2010 4:57 pm

Advertisement

Re: defférence entre deux date(date invalide)

Messagepar emidev » Lun Déc 06, 2010 12:04 pm

Bonjour,

il existe une fonction pour tester la validite d'une date
dateValide(TABLE_GEvis.COL_Date_devis)

renvoie vrai ou faux
mais ATTENTION si TABLE_GEvis.COL_Date_devis = "" alors dateValide renverra vrai quand meme mais il ne faut pas faire dateDifference avec cette date sinon ca plante

par contre faites le test de dateValide mais je pense que ce message vous arrive car la date est vide (peut etre recharger la table une fois le hajoute fait

cordialement
une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
@+

Firetox
http://www.Emidev.fr

[PS] je ne repond pas au message privé[/PS]
emidev
Membre Confirmé
 
Messages: 622
Inscription: Lun Nov 16, 2009 10:05 am
Localisation: GRENOBLE

Re: defférence entre deux date(date invalide)

Messagepar patric1014 » Lun Déc 06, 2010 1:37 pm

si je comprend bien le faite d'utiliser datevalide c juste pour vérifier la date passé en paramétre si elle valide ou non alors dans ce cas le problème reste puisque la les date enregistrer ne sont pas valide la question est : c'est possible de convertir une date de n'importe qu'elle format vers la format AAAAMMJJ si oui ca serai gentil de votre part de me donnée un exemple
merci d'avance
bondev
Aziz
patric1014
Membre Confirmé
 
Messages: 118
Inscription: Ven Nov 05, 2010 4:57 pm

Re: defférence entre deux date(date invalide)

Messagepar gilles » Lun Déc 06, 2010 3:17 pm

Salut

Tu l enregistre en quel format dans ta table ?

Sinon

Tu peux faire
chaineversdate
entiersversdate


ou le contraire

// donne le numéro de jour a partir d'une date
NoJour = DateVersEntier (parametre)

dans ton cas je pense que tu rentre la date avec ce format jj/mm/aaa ceci est une chaine tu dois la convertir en date dont le format est aaaammjj

exemple windev

Res = ChaîneVersDate("25/12/2001") renvoie // Res = "20011225"
gilles
Nouveau Membre
 
Messages: 12
Inscription: Dim Fév 24, 2008 9:58 am

Re: defférence entre deux date(date invalide)

Messagepar patric1014 » Lun Déc 06, 2010 5:00 pm

j'ai mis ce code et j'ai vérifier si RelanceD.date_R me renvoi une date et la j'ai plus l'erreur mais c'est pas ce que je cherche puisque RelanceD.date_R ne renvoi pas de date
Code: Tout sélectionner
N est un entier
N = 1

POUR TOUTE LIGNE DE TABLE_GEvis
   nj est un entier
   nj = DateDifférence(TABLE_GEvis.COL_Date_devis,DateSys())
   SI nj >= 7 ALORS
      HRecherche(RelanceD,RelanceD.date_devis,TABLE_GEvis.COL_Date_devis)
      TANTQUE HTrouve(RelanceD)
         njr est un entier
         SI RelanceD.date_R = "" ALORS
            Info("Aucune Relance n'a été éffectuer")
            TABLE_GEvis[N]..CouleurFond = RougeClair
         SINON
            njr = DateDifférence(RelanceD.date_R,DateSys())
            SI njr >= 7 ALORS
               TABLE_GEvis[N]..CouleurFond = RougeClair
            SINON
               TABLE_GEvis[N]..CouleurFond = VertClair      
            FIN
         FIN
         HSuivant(RelanceD,RelanceD.date_devis)
      FIN
   SINON
   TABLE_GEvis[N]..CouleurFond = BleuClair
   FIN
   N++
FIN

et je sais pas c'est quoi le problème ??????????????????? pouvez vous m'aider merci d'avance
patric1014
Membre Confirmé
 
Messages: 118
Inscription: Ven Nov 05, 2010 4:57 pm

Re: defférence entre deux date(date invalide)

Messagepar emidev » Lun Déc 06, 2010 6:46 pm

BOnjour,

en fait je crois que la recherche n'abouti pas simplement
mais dans votre code vous faites appel a une colonne du fichier or Hrecherche ne lit pas l'enreg donc les varaibles fichier ne sont pas chargées. hrecherche renvoie vrai ou faux si l'enreg est trouvé ou non c'est tout

pour charger l'enreg en mémoire et dans les variables fichier il faut utiliser hlitRecherche qui fait la même chose mais en plus charge les variables du fichier et donc les colonnes sont accessibles par monFichier.maColonne

Code: Tout sélectionner
N est un entier = 1
nj est un entier

POUR TOUTE LIGNE DE TABLE_GEvis
   TABLE_GEvis[N]..CouleurFond = BleuClair
   nj = DateDifférence(TABLE_GEvis.COL_Date_devis,DateSys())
   SI nj >= 7 ALORS
               TABLE_GEvis[N]..CouleurFond = RougeClair
      HLitRecherche(RelanceD,RelanceD.date_devis,TABLE_GEvis.COL_Date_devis)
      TANTQUE HTrouve(RelanceD)
         SI dateValide(RelanceD.date_R) et  RelanceD.date_R <> "" ALORS
            njr = DateDifférence(RelanceD.date_R,DateSys())
            SI njr < 7 ALORS TABLE_GEvis[N]..CouleurFond = VertClair
         FIN
         HSuivant(RelanceD,RelanceD.date_devis)
      FIN
        FIN
   N++
FIN


ce code devrait fonctionner
Dernière édition par emidev le Lun Déc 06, 2010 8:20 pm, édité 1 fois.
une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
@+

Firetox
http://www.Emidev.fr

[PS] je ne repond pas au message privé[/PS]
emidev
Membre Confirmé
 
Messages: 622
Inscription: Lun Nov 16, 2009 10:05 am
Localisation: GRENOBLE

Re: defférence entre deux date(date invalide)

Messagepar patric1014 » Lun Déc 06, 2010 8:17 pm

merci bcp ca marche
bon dev
patric1014
Membre Confirmé
 
Messages: 118
Inscription: Ven Nov 05, 2010 4:57 pm



  • Advertisement

Retourner vers Forum windev 11 & plus récentes

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités