/// <summary> /// /// </summary> /// <param name="lc"></param> /// <param name="lccfg"></param> public static void Set(LineChart lc, LineChartConfig lccfg, object dataSource, string valueFormatString) { if (lc == null) throw new ArgumentNullException("lc"); if (lccfg == null) throw new ArgumentNullException("lccfg"); if (dataSource == null) throw new ArgumentNullException("dataSource"); lc.Series.Clear(); lc.Graphs.Clear(); foreach ( LineGraphItemConfig itemConfig in lccfg.LineGraphItemConfigCollection ) { am.Charts.LineChartGraph lcg = new LineChartGraph(); lcg.EnableViewState = false; if (itemConfig.Color != Color.White) { // title color // lcg.BalloonColor = itemConfig.Color; // data point color // lcg.BulletColor = itemConfig.Color; // line color // lcg.ForeColor = itemConfig.Color; } lcg.Title = itemConfig.Title; lcg.Bullet = LineChartBulletTypes.Round; DataView dsTable = dataSource as DataView; foreach (DataRowView rowView in dsTable) { string seriesItemID = rowView.Row[lccfg.DataSeriesIDField].ToString(); object value = rowView.Row[itemConfig.DataValueField]; if (value == null || value == DBNull.Value) continue; value = Convert.ToDouble(value); string strValue = string.Format(valueFormatString, value); LineChartValuesDataItem item = new LineChartValuesDataItem(seriesItemID, strValue); lcg.Items.Add(item); } lc.Graphs.Add(lcg); } lc.YLeftValuesMin = lccfg.YLeftValueMin; lc.Connect = true; lc.DataSeriesIDField = lccfg.DataSeriesIDField; DataView view = dataSource as DataView; DataTable tbl = view.ToTable(true, lccfg.DataSeriesIDField); lc.DataSource = tbl; lc.DataBind(); }
/// <summary> /// /// </summary> /// <param name="lc"></param> /// <param name="lccfg"></param> /// <param name="lineDataSource"></param> /// <param name="xAxisDataSource"></param> static public void Set(LineChart lc, LineChartConfig lccfg, object lineDataSource, object xAxisDataSource, string valueFormatString) { if (lc == null) { throw new ArgumentNullException("lc"); } if (lccfg == null) { throw new ArgumentNullException("lccfg"); } if (lineDataSource == null) { throw new ArgumentNullException("dataSource"); } lc.Series.Clear(); lc.Graphs.Clear(); foreach (LineGraphItemConfig itemConfig in lccfg.LineGraphItemConfigCollection) { am.Charts.LineChartGraph lcg = new LineChartGraph(); lcg.EnableViewState = false; lcg.Title = itemConfig.Title; lcg.Bullet = LineChartBulletTypes.Round; DataView dsTable = lineDataSource as DataView; foreach (DataRowView rowView in dsTable) { string seriesItemID = rowView.Row[lccfg.DataSeriesIDField].ToString(); object value = rowView.Row[itemConfig.DataValueField]; if (value == null || value == DBNull.Value) { continue; } value = Convert.ToDouble(value); string strValue = string.Format(valueFormatString, value); LineChartValuesDataItem item = new LineChartValuesDataItem(seriesItemID, strValue); lcg.Items.Add(item); } lc.Graphs.Add(lcg); } lc.YLeftValuesMin = lccfg.YLeftValueMin; lc.Connect = true; lc.DataSeriesIDField = lccfg.DataSeriesIDField; DataView view = xAxisDataSource as DataView; DataTable tbl = view.ToTable(true, lccfg.DataSeriesIDField); lc.DataSource = tbl; lc.DataBind(); }
/// <summary> /// /// </summary> /// <param name="dataSource"></param> /// <param name="lcCfg"></param> public void SetLineChartInfo(object dataSource, string filterColumn, string dateTimeColumn, string dataColumn, string title, string yTitle) { //string chartTitle = "2001-1-1 12:00:00 ~ 2001-1-1 12:00:00 一干渠 水位曲线"; //this.LineChart1.Series.Clear(); ////this.LineChart1.Graphs.Clear(); //if (LineChart1.Graphs.Count > 0) //{ // this.LineChart1.Graphs[0].Items.Clear(); //} this.LineChart1.Labels.Clear(); //this.LineChart1 = new LineChart(); //this.LineChart1 = new LineChart(); ChartLabel titleLabel = new ChartLabel(title, 60, 20,false, 600, LabelAlignments.Center , System.Drawing.Color.Black , 18); this.LineChart1.Labels.Add(titleLabel); ChartLabel yLabel = new ChartLabel(yTitle, 5, 150, true, 20, LabelAlignments.Center, System.Drawing.Color.Black, 12); this.LineChart1.Labels.Add(yLabel); DataTable source = dataSource as DataTable; DataTable convertedTable = DataTableConverter.ConvertRowToColumn(source, filterColumn, dataColumn, dateTimeColumn); LineChartConfig lccfg = new LineChartConfig(); lccfg.DataSeriesIDField = dateTimeColumn; lccfg.YLeftValueMin = 0; foreach (DataColumn col in convertedTable.Columns) { if (!StringHelper.Equal(col.ColumnName, dateTimeColumn)) { LineGraphItemConfig item = new LineGraphItemConfig(); item.DataValueField = col.ColumnName; item.Title = col.ColumnName; item.Color = GetLineColor(col.ColumnName); lccfg.LineGraphItemConfigCollection.Add(item); } } //Sort(lccfg.LineGraphItemConfigCollection); lccfg.LineGraphItemConfigCollection.Sort(this.StationOrderList); convertedTable.DefaultView.Sort = dateTimeColumn; LineGraphSetter.Set(this.LineChart1, lccfg, convertedTable.DefaultView, FormatStringManager.FloatValueFormatString); this.ColumnChart1.Visible = false; this.LineChart1.Visible = true; }
/// <summary> /// /// </summary> /// <param name="dataSource"></param> /// <param name="lcCfg"></param> public void SetDayLineChartInfo(object dataSource, string filterColumn, string dateTimeColumn, string dataColumn, string title, string yTitle) { this.LineChart1.Labels.Clear(); ChartLabel titleLabel = new ChartLabel(title, 60, 20, false, 600, LabelAlignments.Center, System.Drawing.Color.Black, 18); this.LineChart1.Labels.Add(titleLabel); ChartLabel yLabel = new ChartLabel(yTitle, 5, 150, true, 20, LabelAlignments.Center, System.Drawing.Color.Black, 12); this.LineChart1.Labels.Add(yLabel); DataTable source = dataSource as DataTable; DataTable convertedTable = DataTableConverter.ConvertRowToColumn(source, filterColumn, dataColumn, dateTimeColumn); LineChartConfig lccfg = new LineChartConfig(); lccfg.DataSeriesIDField = dateTimeColumn; lccfg.YLeftValueMin = 0; foreach (DataColumn col in convertedTable.Columns) { if (!StringHelper.Equal(col.ColumnName, dateTimeColumn)) { LineGraphItemConfig item = new LineGraphItemConfig(); item.DataValueField = col.ColumnName; item.Title = col.ColumnName; item.Color = GetLineColor(col.ColumnName); lccfg.LineGraphItemConfigCollection.Add(item); } } convertedTable.DefaultView.Sort = dateTimeColumn; //LineGraphSetter.Set(this.LineChart1, lccfg, convertedTable.DefaultView); DataTable xAxisDataSource = GetDayXAxisDataSource ( convertedTable, dateTimeColumn ); xAxisDataSource.DefaultView.Sort = dateTimeColumn; LineGraphSetter.Set(this.LineChart1, lccfg, convertedTable.DefaultView, xAxisDataSource.DefaultView, FormatStringManager.FloatValueFormatString); this.ColumnChart1.Visible = false; this.LineChart1.Visible = true; }