コード例 #1
0
        private List <ChartSeriesInfo> createExtendChart(DataTable table, ChartMappingInfo mapping, string viewType)
        {
            List <ChartSeriesInfo> chartSeries = new List <ChartSeriesInfo>();

            foreach (DataRow row in table.Rows)
            {
                string xValue     = row[mapping.XColumn].ToString();
                string seriesName = row[mapping.SeriesColumn].ToString();

                decimal yValue = 0;

                if (row[mapping.YColumn] != null)
                {
                    yValue = decimal.Parse(row[mapping.YColumn].ToString());
                }

                var chart = chartSeries.Find(c => c.Name == seriesName);

                if (chart == null)
                {
                    chart = new ChartSeriesInfo(seriesName, viewType);
                    chartSeries.Add(chart);
                }

                chart.SeriesPoints.Add(new ChartSeriesPointInfo(xValue, yValue));
            }

            return(chartSeries);
        }
コード例 #2
0
        private List <ChartSeriesInfo> createSumChart(DataTable table, ChartMappingInfo mapping, string viewType)
        {
            List <ChartSeriesInfo> chartSeries = new List <ChartSeriesInfo>();
            IEnumerable <IGrouping <string, DataRow> > result = table.Rows.Cast <DataRow>().GroupBy <DataRow, string>(dr => dr[mapping.SeriesColumn].ToString());

            foreach (IGrouping <string, DataRow> series in result)
            {
                var seriesInfo = new ChartSeriesInfo(series.Key, viewType.ToString());
                var xValues    = series.Cast <DataRow>().GroupBy <DataRow, string>(dr => dr[mapping.XColumn].ToString());
                foreach (IGrouping <string, DataRow> points in xValues)
                {
                    seriesInfo.SeriesPoints.Add(new ChartSeriesPointInfo(points.Key, points.Sum <DataRow>(o => decimal.Parse(o[mapping.YColumn].ToString()))));
                }
                chartSeries.Add(seriesInfo);
            }
            return(chartSeries);
        }