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

Как нарисовать многострочный график ?


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

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

1) Below is the design page aspx.
<pre lang="HTML"><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>


2) Ниже приведен код, стоящий за code. cs.

public void ProDocs()
       {
           DataSet result = new DataSet();
           DataTable dtSap = new DataTable();
           DataTable dtRic = new DataTable();
           DataTable dtRailDocs = new DataTable();
           dtSap.Columns.Add("SapPlm", typeof(int));
           dtSap.Columns.Add("Date", typeof(DateTime));
           dtRailDocs.Columns.Add("RailDocs", typeof(int));
           dtRailDocs.Columns.Add("Date", typeof(DateTime));
           dtRic.Columns.Add("RIC", typeof(int));
           dtRic.Columns.Add("Date", typeof(DateTime));
           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 }).ToArray();
                   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();


                   dtSap.Rows.Add(SapCount, startDate);
                   dtRailDocs.Rows.Add(raildocCount,startDate);
                   dtRic.Rows.Add(RicCount,startDate);



                   startDate = endDate;

               }

                   Chart1.Series[1].XValueMember = "Date";
                   Chart1.Series[1].YValueMembers = "SapPlm";
                   Chart1.Series[1].Color = Color.Blue;
                   Chart1.DataSource = dtSap;



                   Chart1.Series[2].XValueMember = "Date";
                   Chart1.Series[2].YValueMembers = "SapPlm";
                   Chart1.DataSource = dtRailDocs;
                   Chart1.Series[2].Color = Color.Green;




                   Chart1.Series[3].XValueMember = "Date";
                   Chart1.Series[3].YValueMembers = "RIC";
                   Chart1.Series[3].Color = Color.Red;
                   Chart1.DataSource = dtRic;


           }
       }



Заранее спасибо

Ralf Meier

Если вы хотите, чтобы внутри вашей диаграммы были разные линии, вы должны добавить свои данные в ряд.
Возможно, также возможно (вы должны попробовать это сделать) добавить к диаграмме более одной таблицы данных.Источник данных - но то, что вы делаете, это назначаете свой DataTable свойству...

0 Ответов