2014-07-24 4 views
0

Salut les gars, j'ai des difficultés à ajouter des graphiques à barres sur mon code. Ce que je dois faire est de camemberte est de faire un graphique à barres pour chaque pièce qu'il a. Malheureusement, j'ai du mal à le faire. L'objectif principal que j'essaie de faire est de créer un graphique à barres détaillé séparé basé sur le GroupName. Ceci est mon code C#:Création de plusieurs diagrammes à barres avec C# et dundas

void StartReport10() 
    { 
     Chart c = Chart11; 

     string str = ConfigurationManager.ConnectionStrings["SLRC_debug"].ConnectionString; 
     SqlConnection con = new SqlConnection(str); 
     SqlDataAdapter da = new SqlDataAdapter("sp_SLRC_GetReport_MajorAndMinorCauseCategories", con); 
     da.SelectCommand.CommandType = CommandType.StoredProcedure; 
     da.SelectCommand.CommandTimeout = 60; //(1 minute) 

     da.SelectCommand.Parameters.Add(new SqlParameter("@rtype", SqlDbType.Int)).Value = Timeline10.RangeTypeIndex; 
     da.SelectCommand.Parameters.Add(new SqlParameter("@y1", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.FYFrom); 
     da.SelectCommand.Parameters.Add(new SqlParameter("@r1", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.RangeFrom); 
     da.SelectCommand.Parameters.Add(new SqlParameter("@y2", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.FYTo); 
     da.SelectCommand.Parameters.Add(new SqlParameter("@r2", SqlDbType.Int)).Value = Convert.ToInt32(Timeline10.RangeTo); 

     int top = Int32.Parse(tbTop1.Text); 
     da.SelectCommand.Parameters.Add(new SqlParameter("@top", SqlDbType.Int)).Value = top; 
     da.SelectCommand.Parameters.Add(new SqlParameter("@MROProjFilter", SqlDbType.VarChar)).Value = MROProjReport3.GetSelectedMROProjFilter; 
     da.SelectCommand.Parameters.Add(new SqlParameter("@TradeIntercoFilter", SqlDbType.VarChar)).Value = TradeInterco3.GetSelectedIntercoTradeFilter; 

     if (CustomerFilter2.IsEnabled && CustomerFilter2.IsValid) 
     { 
      string a = CustomerFilter2.GetStrSelection; 
      da.SelectCommand.Parameters.Add(new SqlParameter("@str", SqlDbType.VarChar)).Value = a; 
     } 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     ds.Tables["Table"].TableName = "Table_for_Major"; 
     ds.Tables["Table1"].TableName = "Table_for_Detailed"; 

     c.DataSource = ds.Tables["Table_for_Major"]; 
     c.Series.Clear(); 
     c.Series.Add("Default"); 
     c.Series[0].ValueMemberX = "GroupName : %"; 
     c.Series[0].ValueMembersY = "% of Total LineCount"; 
     c.Series[0].Type = SeriesChartType.Pie; 
     c.Series[0]["PieLabelStyle"] = "Inside"; 
     c.Series[0]["PieDrawingStyle"] = "SoftEdge"; 
     c.Series[0].ShowInLegend = false; 
     c.DataBind(); 

     //Chart Title 
     c.Palette = ChartColorPalette.Dundas; 
     c.Titles.Clear(); 
     c.Titles.Add("PDSL Major & Minor Cause Categories"); 
     c.Titles[0].Font = new Font("Arial", 14, FontStyle.Bold); 
     c.Titles.Add(Timeline10.FYRangeFrom + " - " + Timeline10.FYRangeTo); 
     c.Titles[1].Font = new Font("Arial", 8, FontStyle.Regular); 

     c.ChartAreas[0].Area3DStyle.Enable3D = true; 
     c.ChartAreas[0].Area3DStyle.XAngle = 5; 
+1

Quelle partie ne fonctionne pas –

+0

Pour inquisitiveldiot le code lui-même fonctionne c'est la création de graphiques à barres est celui avec lequel j'ai des problèmes. J'ai cherché partout un code pour faire des graphiques à barres même sur le site dundas mais rien ne fonctionne pour le moment – jofred

Répondre

0

Je trouve cette liste des étapes nécessaires pour créer un barchart:

Les étapes de base sont les suivants:

  1. Initialiser le contrôle graphique. Définissez les propriétés autres que les valeurs par défaut.
  2. Initialiser la ChartArea. Définissez les propriétés autres que les valeurs par défaut. Chaque ChartArea possède une collection Axis (X, Y et X2, Y2). Veillez donc à définir si nécessaire.
  3. Initialiser la ou les séries à afficher dans le tableau. Sans une série, il n'y a aucun point de données à afficher, alors assurez-vous de créer au moins un .
  4. En option, créez une légende.
  5. Ajouter des points de données à la série.
  6. Ajoutez les éléments ChartArea, Series et Legend au graphique.
  7. Ajouter le contrôle du graphique à un élément de la page.

Et voici un link à la page complète avec un exemple (Dundas).

Vous pouvez créer un graphique séparé (-objets) ou essayer d'ajouter une nouvelle ChartArea à votre diagramme existant et définir Series["barchart"].ChartArea = "ChartArea2" pour autoriser différents types de graphique dans le même objet de graphique.

Questions connexes