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

Langage Delphi Discussion :

Création de record intempestif.


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Consultant informatique
    Inscrit en
    Octobre 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 240
    Points : 103
    Points
    103
    Par défaut Création de record intempestif.
    Salut à tous,
    J'effectue un filtre sur une table de clients avec 2 datetimepicker pour date de début de période et date de fin ainsi qu'un combo de choix d'attribution.
    Lorsque j'effectue ce filtre et que le dbgrid s'affiche vide (parce qu'il n'y a pas de client dans les critères choisis, un enregistrement vide est créé et validé dans la table.
    Je ne trouve pas comment l'empêcher.
    Quelqu'un aurait-il une astuce ou simplement une syntaxe que je ne connais pas du style : if "dbgrid vide" then "rien à afficher" et puis stop.
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    normalement y a pas de raison à ce qu'un enregistrement se crée lors d'un filtre. peut-on voir le code associé ?

  3. #3
    Membre régulier
    Consultant informatique
    Inscrit en
    Octobre 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 240
    Points : 103
    Points
    103
    Par défaut
    J'ai vérifié aussi dans les événements associés au dbgrid dont dbgrid1Enter et datasource mais rien non plus ne peut induire cet effet.
    Voici le code :
    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
    21
    22
    procedure TForm2.Button13Click(Sender: TObject);
    var
       ChoixWin : String;
    begin
      ChoixWin:='';
      case ComboBox1.ItemIndex of
           0: ChoixWin:='X';
           1: ChoixWin:='L';
           2: ChoixWin:='E';
           3: ChoixWin:='L&E';
     
      end;
      Table1.indexName:='Fin';// tri par Date fin de maintenance
        If   ComboBox1.ItemIndex=3 then begin
          Table1.Filter := 'VALIDITE >=  '+#39+datetostr(DateTimePickerDebut.Date)+#39+' and VALIDITE <=  '+#39+datetostr(DateTimePickerFin.Date)+#39+' and (WINDOWS = '+#39+'E'+#39+' OR WINDOWS = '+#39+'L'+#39+')';
       end
       else begin
          Table1.Filter := 'VALIDITE >=  '+#39+datetostr(DateTimePickerDebut.Date)+#39+' and VALIDITE <=  '+#39+datetostr(DateTimePickerFin.Date)+#39+' and WINDOWS = '+#39+ChoixWin+#39'';
       end;
          Table1.Filtered := True;
          DBGrid1Enter(Self);
    end;
    Merci

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Points : 204
    Points
    204
    Par défaut
    salut LuckyLuke56; peut on voir le code écrit dans l'événement OnEnter de ton DBGrid1

  5. #5
    Membre régulier
    Consultant informatique
    Inscrit en
    Octobre 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 240
    Points : 103
    Points
    103
    Par défaut
    Voici et lui renvoie sur d'autres que voilà après...
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    procedure TForm2.DBGrid1Enter(Sender: TObject); //
    begin
         Table1.First;//se place sur le premier record
         ConcatenationDateAchat(Self);//affichage de la date anniversaire concaténée
         AffichageSituationMaintenance(Self);
         AffichageLicencesNonComptabilisees(Self);
         AffichageInfoComplementaire(Self);
    end;
     
    procedure TForm2.ConcatenationDateAchat(Sender : TObject);//Concaténation du mois et de l'année d'achat pour affichage dans form2
    begin
      Form2.Edit3.Text:=Copy(Table1Aniversaire.AsString,1,9)+' '+(Copy(Table1DateAchat.AsString,1,4));
    end;
     
    procedure TForm2.AffichageSituationMaintenance(Sender: TObject);//Affiche une barre en bas disant si pas à jour de maintenance
    begin
       If  Table1.FieldByName('WINDOWS').AsString  <> 'X' then begin
         If  Table1.FieldByName('Validite').AsDateTime  < Now then begin
            StatusBar1.Visible:=True;
            StatusBar1.SimpleText:='Mon message !!';
            DateTimePicker1.Color:=ClRed;
            DBEdit60.color:=ClRed;
         end else begin
            StatusBar1.Visible:=False;
            DateTimePicker1.Color:=ClWindow;
            DBEdit60.Color:=ClWindow;
         end;
       end;
    end;
     
    procedure TForm2.AffichageLicencesNonComptabilisees(Sender: TOBject);// 
     begin
        If Table1NUM.AsString <>'' then begin// or 'Valentin')then begin//or FieldByName('Option08')or FieldByName('Option15'):=True then begin
        end else begin
        end;
     end;
     
    procedure TForm2.AffichageInfoComplementaire(Sender:TObject);//affiche des infos particulières au client sélectionné
     begin
        If ((Table1Numero.AsString ='158') OR (Table1Numero.AsString ='252')) then begin
     Form2.RunningText1.Visible:=True;
     Form2.RunningText1.Active:=True;
        end else begin
        Form2.RunningText1.Visible:=False;
        end;
     end;
    J'ai déjà essayé en les mettant en commentaire et c'est pareil!
    Dans le ondatachange, il n'y a rien d'autres comme procédure que des affichages pour mettre à jour le form lors de défilement dans le dbgrid associé.

    Merci

Discussions similaires

  1. trigger pour modifier une valeur après création du record
    Par awalter1 dans le forum Administration
    Réponses: 5
    Dernier message: 07/03/2011, 18h41
  2. [Record SPF] création d'un enregistrement SPF
    Par tiamat59 dans le forum Windows
    Réponses: 2
    Dernier message: 13/10/2010, 11h42
  3. Réponses: 8
    Dernier message: 04/08/2010, 10h49
  4. Création et changement intempestif de mot de passe
    Par Gege70 dans le forum Windows XP
    Réponses: 6
    Dernier message: 10/01/2006, 19h05
  5. [Création de compo] Stocker une TList de records dans un dfm
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/10/2004, 11h01

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