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

Bases de données Delphi Discussion :

Problème de contrôle entre les DateTimePicker


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Points : 72
    Points
    72
    Par défaut Problème de contrôle entre les DateTimePicker
    Bonjour tout le monde
    J’ai 4 DateTimePicker :
    - DateTimePicker1.date (présent la date début affectation)
    - DateTimePicker2.date (présent la date de retour affectation)
    - DateTimePicker3.time (l’heure début affectation)
    - DateTimePicker4.time (l’heure de retour d’affectation)

    Alors je vous faire un contrôle (les contraintes d’intégrités)

    1° :si(DateTimePicker1.date> DateTimePicker2.date) alors
    Message (‘erreur’) ;

    2 °:Si((DateTimePicker1.date= DateTimePicker2.date) and(DateTimePicker3.time> DateTimePicker4.time)) alors
    Message (‘erreur’) ;

    LA 1° CA marche mai la 2° non ?

    En Delphi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Begin
      If (DateTimePicker1.date> DateTimePicker2.date) then
      begin 
        Showmessage (‘verifier la date’);
        Exit;
      End;
      If ((DateTimePicker1.date= DateTimePicker2.date) and(DateTimePicker3.time > DateTimePicker4.time))Then
      Begin
        Showmessage (‘vérifier l''heure’);
        Exit;
      End;
    End;

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Assure-toi que DateTimePicker3 et DateTimePicker4 possèdent la même valeur pour la propriété Date.

    Ou alors tu peux faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      D1, D2: TDateTime;
    begin
      D1 := Trunc(DateTimePicker1.DateTime) + Frac(DateTimePicker2.DateTime);
      D2 := Trunc(DateTimePicker3.DateTime) + Frac(DateTimePicker4.DateTime);
     
      if D1 > D2 then
        ShowMessage('Début d''affectation supérieur au retour.')
      else
        ShowMessage('du ' + DateTimeToStr(D1) + ' au ' + DateTimeToStr(D2));
    end;
    @+ Claudius

  3. #3
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Vérifies si les propriétés Time des TDateTimePicker sont kif-kif !
    La comparaison prends en compte aussi bien la date que l'heure.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Salut

    Assure-toi que DateTimePicker3 et DateTimePicker4 possèdent la même valeur pour la propriété Date.

    Ou alors tu peux faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      D1, D2: TDateTime;
    begin
      D1 := Trunc(DateTimePicker1.DateTime) + Frac(DateTimePicker2.DateTime);
      D2 := Trunc(DateTimePicker3.DateTime) + Frac(DateTimePicker4.DateTime);
     
      if D1 > D2 then
        ShowMessage('Début d''affectation supérieur au retour.')
      else
        ShowMessage('du ' + DateTimeToStr(D1) + ' au ' + DateTimeToStr(D2));
    end;
    @+ Claudius
    merci Claudius; ca marche tre bien, mais il reste un probleme c les date sont egaux alors l'heur de DateTimePicker3.DateTime ne doit pas etre superieur a DateTimePicker4.DateTime
    merci d'avance

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Le code que je t'ai proposé est déjà censé faire cette vérification !!

    D1 est la date/heure du début d'affectation
    D2 est la date/heure du retour d'affectation

    Le code vérifie simplement que D1 est inférieure à D2. Voilou !

    @+ Claudius

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Points : 72
    Points
    72
    Par défaut
    Grace a toi Cl@udius j’ai trouve la solution ; merci beaucoup ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    var
      D1, D2:TDate;
      T1,T2: TTime;
    begin
      D1 := Trunc(DateTimePicker1.Date);
      D2 := Trunc(DateTimePicker2.Date);
     
      T1 := Frac(DateTimePicker3.time);
      T2 := Frac(DateTimePicker4.time);
     
      if D1 > D2 then
      begin
        ShowMessage('Début debut supérieur au date de retour.');
        exit;
     end;
     if T1 > T2 then
     begin
      ShowMessage('verifie l’’heure ' );
      exit;
      end;

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

Discussions similaires

  1. Spool, problème d'espace entre les colonnes
    Par moumoutte32 dans le forum SQL
    Réponses: 15
    Dernier message: 13/10/2011, 12h21
  2. Réponses: 2
    Dernier message: 22/03/2008, 01h15
  3. [Conception]problème de relation entre les tables
    Par vaness76 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 11h32
  4. Labyrinthe : problème de lien entres les cases
    Par spax dans le forum Prolog
    Réponses: 3
    Dernier message: 20/12/2006, 16h05
  5. [HTML & CSS] Problème d'espace entre les <li>
    Par Yoshidu62 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 17/05/2006, 18h53

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