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

 Delphi Discussion :

Rajouter des lignes de total dans un stringgrid


Sujet :

Delphi

  1. #1
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut Rajouter des lignes de total dans un stringgrid
    bonjour a tous,
    voila je récupére des données d'un dbgrid vers Tstringgrid avec ce code la:
    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
    datset:=dbgrid1.DataSource.DataSet; //on récupère le dataset dans ta
     datset.First; //on place le pointer sur le premier élément
     j:=0;
     stringgrid1.RowCount:=1;
     stringgrid1.FixedCols:=0;
     stringgrid1.ColCount:=dbgrid1.Columns.Count; //on ajuste le nombre de colonne du stringgrid en fonction du dbgrid
     for i:=0 to dbgrid1.Columns.Count-1 do //on parcours toutes les colonnes de la première ligne pour ajuster la ligne fixe
     begin
     stringgrid1.Cells[i,0]:=dbGrid1.Columns.Items[i].FieldName;
     end;
     while not datset.Eof do
     begin
     j:=j+1;
     stringgrid1.RowCount:=stringgrid1.RowCount+1; //on ajoute une ligne dans le stringgrid
     for i:=0 to dbgrid1.Columns.Count-1 do //pour toutes les colonnes on recopie les données
     month:=strtoint(dbgrid1.DataSource.DataSet.FieldValues['date_deb']);
     if (MonthOf(dbgrid1.Columns.Grid.Fields[7].AsDateTime)=month) then
     begin
     stringgrid1.Cells[i,j]:=dbgrid1.Columns.Grid.Fields[i].AsString;
     datset.Next; //on passe à la prochaine ligne de la source de données
     end;
     if stringgrid1.RowCount>1 then stringgrid1.FixedRows:=1; //si il y a au moins une ligne, la première est fixe
    end;
    sauf qu je veux faire des traitements lors de cette récupération en fait j'ai un champ date j'aimerais regroupé les enregistrements qui sont du meme mois des que je trouve le dernier enregistrement de ce mois la j'ajoute une ligne au string grid pour faire un total :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query1.sql.add(' select SUM(motif) from mouvement //normalement ya un where
    merci bcp!!!

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu peux voir avec "WITH ROLLUP" dans le SQL et le gérer directement dans le DBGrid ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    excuse moi de mon ignorance mais c'est quoi roll up ca sert a quoi???

    merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    "WITH ROLLUP" est une clause du GROUP BY disponible en Oracle, SQL Server, MySQL ... qui permet d'avoir des lignes de totaux dans le DataSet sans devoir le gérer soit-même !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Débutant Avatar de lila23
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 54
    Points
    54
    Par défaut
    les requêtes ROLLUP ne font pas parti des requetes OLAP?
    je ne savais pas quelles existe dans SQL Serveur

    donc si cela me permet de calculé des totaux comment définir que je fais ces sous totaux que si la date_deb de mes enregistrement est du meme mois

    par exemple :

    j'ai un renregistement
    261 absence le 10/01/2009 nbre_heure 2
    261 absence le 03/02/2009 nbre_heure 4
    261 absence le 10/02/2009 nbre_heure 4
    je dois avoir un premier total de 2 d'aprés ca je fai un traitement et un deuxiéme total de 8 et je refais le meme traitement

    merci bcp

Discussions similaires

  1. Rajouter des lignes dans un csv sans l'écraser
    Par JulienNvr dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 03/07/2013, 10h08
  2. rajouter des lignes dans la combobox
    Par levac dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2007, 09h38
  3. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  4. Réponses: 4
    Dernier message: 02/09/2004, 14h50
  5. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41

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