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 :

quels types de graphes HIsto je peux utiliser


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut quels types de graphes HIsto je peux utiliser
    Bonjour,

    je cherche un composant pour faire des graphes ( en camembert ou en histogramme)

    j'ai essayé les VtChart (Onglet Active X) , et je regarde pour les DecisionCube mais il n'y a aucun tutoriel pour ces deux types de composants...

    Vous ne sauriez pas quels composants pourraient faire ce que je souhaite et avec lesquels je pourrais m'entrainer à l'aide de tuto?


    Merci bcp


    PS: je l'ai mis dans base de données car je fais appel aux bases par des SUM etc....

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    1- Pose un composant DBChart sur ta form
    2- Doubleclick sur le composant
    3- Dans l'onglet Graph/Series, click sur Ajouter
    4- Sélectionnes Histogramme
    5- Click sur l'onglet Séries, puis sur Source de données
    6- Dans la liste déroulante selectionne Dataset
    7- Selectionnes ta Requete/Table dans la liste déroulante juste en dessous de la première
    8- Selectionnes les champs que tu veux utiliser dans ton histo.
    9- Pour afficher les données dans le code tu dois ouvrir ta source de données et activer la série

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MaQuery.Active := True;
    DbChart1.SerieList.Series[0].Active := True;
    // ou
    // Series1.Active := True;
    Après bidouille les propriétés du composants pour donner l'aspect que tu souhaites.

    [edit]
    Vu que tu utilises les composants MyDac, le DBchart ne va pas trouver ta requete/table (enfin chez moi il ne le trouve pas)

    J'ai été obligé de faire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       With DBChart1.Series[0] do
          begin
            Clear;
            DBChart1.Title.Text.Clear;
            DBChart1.Title.Text.Add('Mon Titre');
            While not MaQuery.Eof do
            begin
              AddXY(MaQuery.FieldByName('x').AsFloat,MaQuery.FieldByName('y').AsFloat);
              MaQuery.Next;
            end;
          end;
    [/edit]

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    ok je te remercie bcp

    dans mon code j'utilise une requete qui n'est pas dans mon composant mais dans le code lui même, de type:

    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
    WITH DataModule1.MyQLCC DO
      BEGIN
        SQL.Clear;
        SQL.Add('SELECT DISTINCT ID_Engin_FK3,Nom_Pas_FK1,Periode_LCC,MOE_CostHour,');
        SQL.Add('SUM((Periode_LCC*Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix)) As Cout_Total,');
        SQL.Add('SUM( (Periode_LCC*Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix)/(Nb_KM_Annuel*Periode_LCC)) As Cout_au_KM');
        SQL.Add('FROM Arbo A                                                                  ');
        SQL.Add('     INNER  JOIN Param_LCC L       ON L.ID_Engin_FK1 = A.ID_Engin_FK3  ');
        SQL.Add('     INNER  JOIN ID_M M            ON M.Nom_Pas = A.Nom_Pas_FK1  ');
        SQL.Add('WHERE '+ concatener + ' = ' + QuotedStr(SelectedModule)+'');
        SQL.Add('AND Niveau_M <> 6');
        SQL.Add('GROUP BY Pas_nominal,Nom_Pas_FK1,Periode_LCC,Nb_Km_Annuel,MOE_CostHour');
        SQL.Add('ORDER BY Pas_nominal ASC;');
        //DataModule1.QSelectModule.SQL.SaveToFile(ExtractFilePath(Application.ExeName) + 'MonSQL.txt');
        Open;

    Donc si je dois implanter le DBChart comme tu dis je fais comme cela ? :

    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
    WITH DBChart1.Series[0] DO
      BEGIN
           Clear;
           DBChart1.Title.Text.Clear;
           DBChart1.Title.Text.add('Titre');
          WITH DataModule1.MyQLCC DO
          BEGIN
              SQL.Clear;
              SQL.Add('SELECT DISTINCT ID_Engin_FK3,Nom_Pas_FK1,Periode_LCC,MOE_CostHour,');
              SQL.Add('SUM((Periode_LCC*Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix)) As Cout_Total,');
              SQL.Add('SUM( (Periode_LCC*Nb_Km_Annuel/Pas_nominal)*(Duree_Operation*MOE_CostHour*Nb_MOE+Cout_Conso + Prix)/(Nb_KM_Annuel*Periode_LCC)) As Cout_au_KM');
              SQL.Add('FROM Arbo A                                                                  ');
              SQL.Add('     INNER  JOIN Param_LCC L       ON L.ID_Engin_FK1 = A.ID_Engin_FK3  ');
              SQL.Add('     INNER  JOIN ID_M M            ON M.Nom_Pas = A.Nom_Pas_FK1  ');
              SQL.Add('WHERE '+ concatener + ' = ' + QuotedStr(SelectedModule)+'');
              SQL.Add('AND Niveau_M <> 6');
              SQL.Add('GROUP BY Pas_nominal,Nom_Pas_FK1,Periode_LCC,Nb_Km_Annuel,MOE_CostHour');
              SQL.Add('ORDER BY Pas_nominal ASC;');
              Open;
              First;
              WHILE NOT DataModule1.MyQLCC.eof DO
              BEGIN
                   AddXY(FieldByName('Nom_Pas_FK1').AsString,FieldByName('Cout_Total').AsFloat);
                   Next;
              END;
          END;
      END;

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Oui normalement ca devrait fonctionner, mais bon tu pourrais le tester au lieu de me le demander ca irait plus vite ^^

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    lol
    tu as raison ms j'ai oublié une partie de ma requete...

    il ne reconnait pas le .........

    je dois mettre quelque chose dans le var?

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Les With qui peuvent mélanger un peu tout comme tu les as mis.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Tiens, j'ai changé mais il me met tjs "AddXY identificateur non déclaré"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    WITH Form2.DBChart1.Series[0] DO
        BEGIN
          Clear;
          Form2.DBChart1.Title.Text.Clear;
          Form2.DBChart1.Title.Text.add('Titre');
          WHILE NOT DataModule1.MyQLCC.eof DO
          BEGIN
            Form2.DBChart1.AddXY(FieldByName('Nom_Pas_FK1').AsString,FieldByName('Cout_Total').AsFloat);
            Next;
          END;
        END;

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Normal vu que c'est une fonction de Series

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Form2.DBChart1.Series[0].AddXY(FieldByName('Nom_Pas_FK1').AsString,
        FieldByName('Cout_Total').AsFloat);
    Ce n'est pas tout de copier un code, faut aussi le comprendre et utiliser

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    dsl tu as raison

    cependant, j'ai des difficultés pour trouver la "légende" sur les X.

    EN fait je ne fais que AddY et en X il met 0 , 1 , 2 ,....
    moi je veux mettre ce qu'il y a dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FieldByName('Nom_Pas_FK1').AsString
    .

    J'ai cherché un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form2.DBChart1.Series[0].Title...
    mais il ne change rien, il laisse 0 1 ..... donc cpa ca!
    Saurais tu à quel propriété il fait appel???

Discussions similaires

  1. Quel algorithme de cryptage je peux utiliser?
    Par bejaouijamil dans le forum Sécurité
    Réponses: 2
    Dernier message: 04/01/2007, 16h33
  2. Quel type de redirection à utiliser
    Par cassy dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2006, 16h28
  3. [C#] Quel type d'objet (tableau) utiliser?
    Par cyllix dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/06/2006, 11h50
  4. Réponses: 6
    Dernier message: 26/04/2006, 16h13
  5. Réponses: 0
    Dernier message: 26/04/2006, 14h01

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