cs_emmanuel9
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
23 juin 2005 à 10:27
C'est du c++.net, c'est pareil que le c# sauf que tu remplaces les
-> par des ., dans ta base je supppose que tu dois avoir des
nombres, tu les convertis pour en faire un pourcentage tu te créer une
classe special genre Analyse avec un champs "valeur réel" valeur "mise
à l'echelle" . si tu as 150000 et 150 va bien falloir que tu les
convertisse pour en faire un pourcentage sur le hauteur de ton
diagramme. Utilise la classe Graphics et un panel pour afficher ton
diagramme. Ma fonction recoit une ArrayList d'instance Analyse. Déja en
premier traite t'es données pour en faire une ArrayList de Analyse et
ensuite tu les envois à la fonction affiche barre. Regarde l'evenement
paint pour l'affichage.
void affiche_barre(ArrayList * stats1, bool pointille)
{
//affiche le graphique pour les barres
Pen * noir = Pens::Black ;
Pen * noir_p = new Pen(Color::BlueViolet,1.0) ;
noir_p->set_DashOffset(3.0) ;
noir_p->DashStyle = DashStyle::Dash ;
pg2->DrawLine(noir,62,420,500,420) ;
pg2->DrawLine(noir_p,62,400,500,400) ;
pg2->DrawLine(noir,62,380,500,380) ;
pg2->DrawLine(noir_p,62,360,500,360) ;
pg2->DrawLine(noir,62,340,500,340) ;
pg2->DrawLine(noir_p,62,320,500,320) ;
pg2->DrawLine(noir,62,300,500,300) ;
pg2->DrawLine(noir_p,62,280,500,280) ;
pg2->DrawLine(noir,62,260,500,260) ;
pg2->DrawLine(noir_p,62,240,500,240) ;
pg2->DrawLine(noir,62,220,500,220) ;
pg2->DrawLine(noir_p,62,200,500,200) ;
pg2->DrawLine(noir,62,180,500,180) ;
pg2->DrawLine(noir_p,62,160,500,160) ;
pg2->DrawLine(noir,62,140,500,140) ;
pg2->DrawLine(noir_p,62,120,500,120) ;
pg2->DrawLine(noir,62,100,500,100) ;
pg2->DrawLine(noir_p,62,80,500,80) ;
pg2->DrawLine(noir,62,60,500,60) ;
pg2->DrawLine(noir_p,62,40,500,40) ;
pg2->DrawLine(noir,62,20,500,20) ;
pg2->DrawLine(noir,50,20,50,420) ;
pg2->DrawLine(noir,45,420,55,420) ;
pg2->DrawLine(noir,47,400,53,400) ;
pg2->DrawLine(noir,45,380,55,380) ;
pg2->DrawLine(noir,47,360,53,360) ;
pg2->DrawLine(noir,45,340,55,340) ;
pg2->DrawLine(noir,47,320,53,320) ;
pg2->DrawLine(noir,45,300,55,300) ;
pg2->DrawLine(noir,47,280,53,280) ;
pg2->DrawLine(noir,45,260,55,260) ;
pg2->DrawLine(noir,47,240,53,240) ;
pg2->DrawLine(noir,45,220,55,220) ;
pg2->DrawLine(noir,47,200,53,200) ;
pg2->DrawLine(noir,45,180,55,180) ;
pg2->DrawLine(noir,47,160,53,160) ;
pg2->DrawLine(noir,45,140,55,140) ;
pg2->DrawLine(noir,47,120,53,120) ;
pg2->DrawLine(noir,45,100,55,100) ;
pg2->DrawLine(noir,47,80,53,80) ;
pg2->DrawLine(noir,45,60,55,60) ;
pg2->DrawLine(noir,47,40,53,40) ;
pg2->DrawLine(noir,45,20,55,20) ;
System::Drawing::Font * font1 = new
System::Drawing::Font("Verdana",3,FontStyle::Regular,GraphicsUnit::Millimeter)
;
pg2->DrawString("100%",font1,br5,1,15) ;
pg2->DrawString("90%",font1,br5,4,55) ;
pg2->DrawString("80%",font1,br5,4,95) ;
pg2->DrawString("70%",font1,br5,4,135) ;
pg2->DrawString("60%",font1,br5,4,175) ;
pg2->DrawString("50%",font1,br5,4,215) ;
pg2->DrawString("40%",font1,br5,4,255) ;
pg2->DrawString("30%",font1,br5,4,295) ;
pg2->DrawString("20%",font1,br5,4,335) ;
pg2->DrawString("10%",font1,br5,4,375) ;
pg2->DrawString("0%",font1,br5,9,415) ;
if (pointille == false)
{
Decimal barre = 0 ;
for (int i = 0 ; i<stats1->get_Count() ; i++)
{
barre = dynamic_cast(stats1->get_Item(i))->get_Analyse_Pourcentage_Barre() ;
switch (i)
{
case 0 :pg2->FillRectangle(br1,70,420-c->ToUInt32(barre),30,c->ToUInt32(barre)) ;break ;
case 1 : pg2->FillRectangle(br2,0+120,420-c->ToUInt32(barre),30,c->ToUInt32(barre)) ;break ;
case 2 : pg2->FillRectangle(br3,0+170,420-c->ToUInt32(barre),30,c->ToUInt32(barre)) ;break ;
case 3 :pg2->FillRectangle(br4,0+220,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
case 4 : pg2->FillRectangle(br5,0+270,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
case 5 : pg2->FillRectangle(br6,0+320,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
case 6 : pg2->FillRectangle(br7,0+370,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
case 7 : pg2->FillRectangle(br8,0+420,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
case 8 : pg2->FillRectangle(br9,0+470,420-c->ToUInt32(barre),30,c->ToUInt32(barre)); break ;
}
}
}