2014-07-24 38 views
0

嗨,大家好,我无法在我的代码中添加条形图。我需要做的是从饼图中为每件作品制作条形图。不幸的是,我很难做到这一点。我试图做的主要目标是根据GroupName创建单独的详细条形图。这是我的C#代码:使用C#和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

什么部分不工作 –

+0

为了好奇,代码本身在工作,它是创建条形图是我遇到的问题之一。我一直在寻找代码来在dundas网站上制作条形图,但目前没有任何工作 – jofred

回答

0

我发现的必要步骤,这个列表创建一个条形图:

的基本步骤是:

  1. 初始化图表控件。定义任何非默认属性。
  2. 初始化ChartArea。定义任何非默认属性。每个 ChartArea都有一个Axis集合(X,Y和X2,Y2),因此如有必要,请务必设置 这些属性。
  3. 初始化要显示在图表中的系列。没有一个系列,没有数据点要显示,所以一定要 创建至少一个。
  4. (可选)创建图例。
  5. 将数据点添加到系列。
  6. 将ChartArea,Series和Legend元素添加到图表。
  7. 将图表控件添加到页面的一个元素。

而且继承人link用一个例子(登打士)整个页面。

您可以创建单独的图表( - 对象)或尝试向现有图表添加新的ChartArea,并设置Series["barchart"].ChartArea = "ChartArea2"以允许在同一图表对象中使用不同的图表类型。