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

Composants VCL Delphi Discussion :

Insertion des enregistrements d'une table temporaire dans un état


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 54
    Points
    54
    Par défaut Insertion des enregistrements d'une table temporaire dans un état
    Bonjour,
    J'ai créé une table temporaire dans laquelle j'ai mis le résultat d'une requête
    et donc je me sert de cette table temporaire pour remplir mon état (quickreport) en delphi7.
    rave reports ne marchant pas.

    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
    while i < QryParam.RecordCount  do
      begin
    editRelevComAge.TabTemp.Insert;
    editRelevComAge.NChb.Value := QryParam.FieldByName('NoChb').asInteger ;
    editRelevComAge.NdHeb.Value := QryParam.FieldByName('NomClient').asString;
    editRelevComAge.DateDeb.Value := QryParam.FieldByName('DateArriv').asString ;
    editRelevComAge.DateFin.Value := QryParam.FieldByName('DateDep').asString ;
    editRelevComAge.NbPers.Value := QryParam.FieldByName('NbPers').asInteger ;
    editRelevComAge.NbNuit.Value := QryParam.FieldByName('NbNuits').asInteger ;
    editRelevComAge.CA.Value := 100;
    editRelevComAge.Com.Value := 10;
    editRelevComAge.PrixChb.Value := QryParam.FieldByName('Prix').asInteger ;
    editRelevComAge.TabTemp.Post;
       QryParam.Next;
       i :=i+1;
       end;
    EditRelevComAge.QuickRep2.PreviewModal;
    et donc la il ne m'affiche que le dernier enregistrement.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 573
    Points : 25 206
    Points
    25 206
    Par défaut
    alors reprenons les bases de la manipulation du DataSet sans RecordCount ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    QryParam.First
    while not QryParam.EOF do
    begin
      editRelevComAge.TabTemp.Append; // Avec insert cela risque d'inverser l'ordre
      editRelevComAge.NChb.Value := QryParam.FieldByName('NoChb').asInteger ;
      ..
      editRelevComAge.TabTemp.Post;
      QryParam.Next;
    end;
    je suppose que NChb, NdHeb, ... ce sont des TField ... il est vrai que je déclare presque jamais mes champs dans mes DataSet tout simplement parce qu'avec une application qui évolue tous les jours, faut tout le temps ajouter (100 tables, 10 000 champs, le datamodule serait énorme) et comme je suis un fervent utilisateur de l'instanciation dynamique, ... donc oui, ce sont des TFields, sont-ils bien raccrochés à TabTemp ? et enfin pourquoi ne pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QuickReport.DataSet := QryParam;
    pour les 100 soit en dur, soit en champ calculés, soit SQL genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NoChb, 100 as CA, ... FROM ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    la table temporaire se rempli bien.
    mais quand je fait afficher mon état je n'ai que le dernier enregistrement au lieu de les avoir tous dans mon état.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    je rempli mon état a partir de la requête et je n'arrive pas à relier mes champs texte de mon état aux enregistrement correspondant
    il génère bien tout les enregistrements sur mon état mais tout les champs texte sont vide.

    si quelqu'un a une idée.

    merci

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 573
    Points : 25 206
    Points
    25 206
    Par défaut
    Remettre un First devant le PreviewModal ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2010, 13h09
  2. Réponses: 2
    Dernier message: 02/06/2010, 11h55
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  4. Réponses: 2
    Dernier message: 21/03/2008, 09h19
  5. Réponses: 4
    Dernier message: 22/03/2007, 18h28

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