Mukesh Pr@sad Ответов: 1

Как нарисовать линейный график с несколькими рядами в asp.net.


Привет Эксперты,

Я должен создать линейный график для 3 записей. Эти 3 записи будут показаны 3 отдельными сериями в линейном графике. Я должен показывать записи еженедельно в течение всего года.

Что я уже пробовал:

Ниже приведен код, который я пробовал.

В Дизайне
<pre> <asp:Chart ID="Chart1" runat="server" Width="1059px">
                <Series>
                    <asp:Series Name="Series1" ChartType="Line" LegendText="Sap"></asp:Series>
                    </Series>

                     <Series>
                    <asp:Series Name="Series2" ChartType="Line" LegendText="Raildocs"></asp:Series>
                    </Series>

                     <Series>
                    <asp:Series Name="Series3" ChartType="Line" LegendText="RIC"></asp:Series>
                    </Series>
                <ChartAreas>
                    <asp:ChartArea Name="ChartArea1"></asp:ChartArea>
                </ChartAreas>
            </asp:Chart>


В коде позади.
Я вызываю следующий метод для предоставления данных на диаграмму.
<pre> public void ProDocs()
        {
            using (ProDocsEntities objcontext = new ProDocsEntities())
            {
                DateTime startDate = new DateTime(DateTime.Today.Year, 1, 1);
                for (int i = 1; i <= 53; i++)
                {
                    //DateTime startDate = new DateTime();
                   // DateTime endDate = new DateTime();
                      
                      DateTime endDate = startDate.AddDays(7 - (int)(startDate.DayOfWeek));
                      
                    

                    var SapData = (from a in objcontext.FileProgresses
                                   join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs
                                   from g in pgs.DefaultIfEmpty()
                                   join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs
                                   from p in prs.DefaultIfEmpty()
                                   where a.FullPath.Contains("2014KR0055") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null)
                                   select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToList();
                    int SapCount = SapData.Count();
                    var RaildocsData = (from a in objcontext.FileProgresses
                                        join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs
                                        from g in pgs.DefaultIfEmpty()
                                        join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs
                                        from p in prs.DefaultIfEmpty()
                                        where a.FullPath.Contains("2014KR0062") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null)
                                        select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToList();
                    int raildocCount = RaildocsData.Count();
                    var RicData = (from a in objcontext.FileProgresses
                                   join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs
                                   from g in pgs.DefaultIfEmpty()
                                   join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs
                                   from p in prs.DefaultIfEmpty()
                                   where a.FullPath.Contains("2015KR0050") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null)
                                   select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToList();
                    int RicCount = RicData.Count();

                    Series series1 = Chart1.Series["Series1"];
                    series1.Points.AddY( SapCount);
                    series1.Points.AddY( raildocCount);
                    series1.Points.AddY( RicCount);
                    Series series2 = Chart1.Series["Series2"];
                    series2.Points.AddY(SapCount);
                    series2.Points.AddY(raildocCount);
                    series2.Points.AddY(RicCount);
                    Series series3 = Chart1.Series["Series3"];
                    series3.Points.AddY(SapCount);
                    series3.Points.AddY(raildocCount);
                    series3.Points.AddY(RicCount);
                    
                    

                    startDate = endDate;

                }
            }
        }


Любая помощь будет оценена по достоинству.
заранее спасибо.

1 Ответов

Рейтинг:
0

Bryian Tan

Эта статья может помочь, она описывает ту же тему, и с ней связан пример кода.

MSChart : как нарисовать линию или несколько линейных графиков[^]