后台数据库中已经有关于要显示的数据库,以视图的形式存在,而且都是已经统计好的,一个字段型的:如:要实现的是能够在饼状图中这样显示:
还望各位大侠们能够伸出援手哈:不胜感激!

解决方案 »

  1.   

    ChartChannelReport.ChartAreas["CAChannel"].Area3DStyle.Enable3D = true;//是否使用3D
                ChartChannelReport.Titles.Add(pro.Name);//标题
                ChartChannelReport.ChartAreas["CAChannel"].BorderDashStyle = ChartDashStyle.Solid;//边框的风格
                ChartChannelReport.ChartAreas["CAChannel"].BorderWidth = 0;//边框的宽度
                Series series = ChartChannelReport.Series["Series1"];
               // series.ChartType = SeriesChartType.Pie;
                DataTable dtchannel = GetSaleChannelInSameAccountSet(accountset);
                
                if(dtchannel!=null)
                {
                    ArrayList XTitle = new ArrayList();
                    for (int t = 0; t < dtchannel.Rows.Count; t++)
                    {
                        XTitle.Add(dtchannel.Rows[t][1].ToString());
                    }
                    XTitle.Add("仓库");
                    ArrayList[] ChartData = new ArrayList[1];
                    ChartData[0]=new ArrayList();
                    for (int t = 0; t < dtchannel.Rows.Count;t++ )
                    {
                       // int amount = GetShopAmountInSameChannel(accountset,new Guid(dtchannel.Rows[t][0].ToString()));
                        int leftamount = GetShopLeftAmount(accountset, pro.Id, new Guid(dtchannel.Rows[t][0].ToString()));
                        ChartData[0].Add(leftamount);
                    }
                    int storeamount = GetStoreAmount(pro.Id,accountset);
                    ChartData[0].Add(storeamount);
                    series.Points.DataBindXY(XTitle,ChartData);
                    for (int i = 0; i <series.Points.Count; i++)
                    {
                        series.Points[i].Label = ChartData[0][i].ToString();
                    }
                    for (int t = 0; t < dtchannel.Rows.Count; t++)
                    {
                        series.Points[t].LegendText = dtchannel.Rows[t][1].ToString();
                    }
                    series.Points[dtchannel.Rows.Count].LegendText = "仓库";
                }
      

  2.   

    <asp:Chart ID="ChartChannelReport" runat="server" Width="350px" Height="300px">
                        <Legends>
                            <asp:Legend Name="Legend1" Docking="Top">
                            </asp:Legend>
                        </Legends>
                        <Series>
                            <asp:Series Name="Series1" ChartType="Pie">
                            </asp:Series>
                        </Series>
                        <ChartAreas>
                            <asp:ChartArea Name="CAChannel" Area3DStyle-Enable3D="true">
                            </asp:ChartArea>
                        </ChartAreas>
                    </asp:Chart>
      

  3.   

    能麻烦把你的
    GetSaleChannelInSameAccountSet(accountset);GetShopLeftAmount(accountset, pro.Id, new Guid(dtchannel.Rows[t][0].ToString()));
    代码给贴出来下哦
      

  4.   

    还有里面的   ArrayList[] ChartData = new ArrayList[1];不太懂哦,还请能够细说下,谢谢楼主喽