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

C++Builder Discussion :

Utilisation de AdvDBGrid


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut Utilisation de AdvDBGrid
    Bonjour,

    J'arrive pas à mettre les totaux des colonnes d'un AdvDBGrid (TMS).

    J'ai mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AdvDBGrid1->Floating->Visible=true; //pour afficher la somme en bas

    et j'ai mets le code suivant à l'éxecution de oncreate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fascall TForm1::FormCreate(TObject *Sender)
    {
      AdvDBGrid1->FloatingFooter->ColumnCalc[5] = acSum;//5 est la colone à totaliser
      AdvDBGrid1->RandomFill(False,100);
      AdvDBGrid1->AutoNumberCol(0);
    }
    A la compilation, c++builder me signale l'erreur :

    E2451 Undefined symbol 'acSum'

  2. #2
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    J'ai utilisé une autre solution, mais je reçois un message d'erreur à la compilation :
    [C++ Error] PieceUnit.cpp(1603): E2193 Too few parameters in call to '_fastcall TAdvStringGrid::SetFloats(int,int,const double)'

    Mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TPieceFrm::FormPaint(TObject *Sender)
    {
            UpdateSums(5);
    }
    //---------------------------------------------------------------------------
     
    void  TPieceFrm::UpdateSums(int depart)//les 5 dernieres colonnes á totaliser
    {
            for (int i=depart; DBAdvGrid1->ColCount-1;i++)
                    DBAdvGrid1->Floats[i,DBAdvGrid1->RowCount-1]=DBAdvGrid1->ColumnSum(i,1,DBAdvGrid1->RowCount-2);
            DBAdvGrid1->FloatingFooter->Invalidate();
    }
    //---------------------------------------------------------------------------

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Bonjour tout le monde,
    Est-ce qu'il y a personne qui utilise les composants de TMS ?!!!
    S.v.p Je suis bloqué et j'ai besoin d'une solution.

  4. #4
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    Quand tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DBAdvGrid1->FloatingFooter->Visible=true;
    Non seulement tu affiche une ligne grise en bas de la grille, mais tu modifie la dimention de la grille, çàd que tu ajoute une ligne.

    Pour faire la somme des colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int IndexDeLaDerniereLigne=DBAdvGrid1->RowCount-1;//çàd la FloatingFooter
    for(int j=0;j<AdvStringGrid1->ColCount;j++)
             DBAdvGrid1->Floats[j][IndexDeLaDerniereLigne]=
             DBAdvGrid1->ColumnSum(j,1,IndexDeLaDerniereLigne);
    Je modifie ta fonction de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    void  TPieceFrm::UpdateSums(int depart)//les 5 dernieres colonnes á totaliser
    {
    int IndexDeLaDerniereLigne=DBAdvGrid1->RowCount-1;
    
    for (int j=depart; j<DBAdvGrid1->ColCount;j++)
           DBAdvGrid1->Floats[j][IndexDeLaDerniereLigne] =
           DBAdvGrid1->ColumnSum(j,1,IndexDeLaDerniereLigne-1);
    
    }
    Attention: à toi de vérifier ci les elements des colonnes contiennent vraiment des valeurs de type float.


    Espérant t'avoir aider.



    A+
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  5. #5
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Bonjour Interruption13h,

    Merci pour ta solution, je vais l'esayer tout de suite.

  6. #6
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    J' ai fai une erreur de saisie, a la ligne suivante (le test de la boucle for):
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i=depart; DBAdvGrid1->ColCount-1;i++)
    je dois faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=depart;i<DBAdvGrid1->ColCount;j++)
    Merci encore.

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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