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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using System.Drawing;
using System.Drawing.Imaging;
using System.Reflection;
using System.Collections;
using System.IO;
namespace NewLCGenerator
{
class ChartBuilder
{
public string CreateGraph(string type, string codeass, ArrayList xvalues, ArrayList yvalues)
{
string imageuri = @".\asf" + codeass + @"_fichiers\" + type + ".png";
string codeimg = "<img alt ='" + type + "' src ='" + imageuri + "'/>";
Directory.CreateDirectory("asf" + codeass + "_fichiers");
ChartArea chartArea1 = new ChartArea();
Chart chart1 = new Chart();
Title title1 = new Title();
switch (type)
{
case "remuneration":
chartArea1.Name = type;
title1.Name = type;
title1.Text = "Rémunération du 1er dirigeant";
Legend legendrem1 = new Legend();
Series seriesrem1 = new Series();
seriesrem1.ChartType = SeriesChartType.Pie;
seriesrem1.XValueType = ChartValueType.String;
for (int i = 0; i < xvalues.Count; i++)
{
if (Convert.ToDouble(yvalues[i]) > 0 && yvalues[i] != null)
{
seriesrem1.Points.AddXY(xvalues[i], (Convert.ToDouble(yvalues[i]) / Convert.ToDouble(yvalues[yvalues.Count - 1])));
}
}
chartArea1.Area3DStyle.Enable3D = true;
chartArea1.Area3DStyle.Inclination = 50;
chartArea1.Area3DStyle.Rotation = 50;
chartArea1.Area3DStyle.WallWidth = 0;
chart1.ChartAreas.Add(chartArea1);
legendrem1.Name = "Legendrem";
chart1.Legends.Add(legendrem1);
chart1.Location = new System.Drawing.Point(12, 12);
chart1.Name = type;
seriesrem1.ChartArea = type;
seriesrem1.Color = System.Drawing.Color.RoyalBlue;
seriesrem1.IsValueShownAsLabel = true;
seriesrem1.IsXValueIndexed = true;
seriesrem1.Legend = "Legendrem";
seriesrem1.LabelFormat = "P2";
seriesrem1.CustomProperties = "MinimumRelativePieSize=70, PieLabelStyle=Outside, 3DLabelLineSize=30";
foreach (DataPoint point in seriesrem1.Points)
{
point.CustomProperties = "Exploded=true";
}
chart1.Series.Add(seriesrem1);
chart1.Size = new System.Drawing.Size(800, 500);
chart1.TabIndex = 0;
chart1.Text = "chartremuneration";
chart1.Titles.Add(title1);
break;
case "finance":
chartArea1.Name = type;
title1.Name = type;
title1.Text = "chiffres-clef";
Legend legendfin1 = new Legend();
Series seriesfin1 = new Series();
seriesfin1.XValueType = ChartValueType.String;
seriesfin1.Points.AddXY(xvalues[0], Convert.ToDouble(yvalues[0]));
seriesfin1.Points.AddXY(xvalues[1], Convert.ToDouble(yvalues[1]));
seriesfin1.Points.AddXY(xvalues[2], Convert.ToDouble(yvalues[2]));
seriesfin1.Points.AddXY(xvalues[3], Convert.ToDouble(yvalues[3]));
Series seriesfin2 = new Series();
seriesfin2.XValueType = ChartValueType.String;
seriesfin2.Points.AddXY(xvalues[0], Convert.ToDouble(yvalues[4]));
seriesfin2.Points.AddXY(xvalues[1], Convert.ToDouble(yvalues[5]));
seriesfin2.Points.AddXY(xvalues[2], Convert.ToDouble(yvalues[6]));
seriesfin2.Points.AddXY(xvalues[3], Convert.ToDouble(yvalues[7]));
Series seriesfin3 = new Series();
seriesfin3.XValueType = ChartValueType.String;
seriesfin3.Points.AddXY(xvalues[0], Convert.ToDouble(yvalues[8]));
seriesfin3.Points.AddXY(xvalues[1], Convert.ToDouble(yvalues[9]));
seriesfin3.Points.AddXY(xvalues[2], Convert.ToDouble(yvalues[10]));
seriesfin3.Points.AddXY(xvalues[3], Convert.ToDouble(yvalues[11]));
chartArea1.AlignmentOrientation = ((AreaAlignmentOrientations)((AreaAlignmentOrientations.Vertical | AreaAlignmentOrientations.Horizontal)));
chartArea1.Area3DStyle.Enable3D = true;
chartArea1.Area3DStyle.Inclination = 17;
chartArea1.Area3DStyle.IsClustered = true;
chartArea1.Area3DStyle.Rotation = 25;
chartArea1.Area3DStyle.WallWidth = 0;
chart1.ChartAreas.Add(chartArea1);
legendfin1.Name = "Legendfin";
chart1.Legends.Add(legendfin1);
chart1.Location = new System.Drawing.Point(12, 12);
chart1.Name = type;
seriesfin1.ChartArea = type;
seriesfin1.Color = System.Drawing.Color.RoyalBlue;
seriesfin1.IsValueShownAsLabel = true;
seriesfin1.IsXValueIndexed = true;
seriesfin1.Legend = "Legendfin";
seriesfin1.Name = "Chiffre d'affaire";
seriesfin2.ChartArea = type;
seriesfin2.IsValueShownAsLabel = true;
seriesfin2.IsXValueIndexed = true;
seriesfin2.Legend = "Legendfin";
seriesfin2.Name = "Résultat opérationnel";
seriesfin2.XValueType = ChartValueType.Date;
seriesfin3.ChartArea = type;
seriesfin3.IsValueShownAsLabel = true;
seriesfin3.IsXValueIndexed = true;
seriesfin3.Legend = "Legendfin";
seriesfin3.Name = "Résultat net";
seriesfin3.XValueType = ChartValueType.Date;
chart1.Series.Add(seriesfin1);
chart1.Series.Add(seriesfin2);
chart1.Series.Add(seriesfin3);
chart1.Size = new System.Drawing.Size(703, 300);
chart1.TabIndex = 0;
chart1.Text = "chartfinance";
chart1.Titles.Add(title1);
break;
case "courbe":
//code ici.
break;
}
chart1.SaveImage(imageuri,ImageFormat.Png);
return codeimg;
}
}
} |