namespace BLL
{
using System.Collections.Generic;
using System.Data;
using System.Web.UI.DataVisualization.Charting;
///
/// 自定义图形通用类
///
public static class ChartControlService
{
#region 给chart类赋值
///
/// 给chart类赋值
///
/// 数据源表值
/// 图标题
/// 图类型
/// 图显示宽度
/// 图显示高度
/// 是否显示3D效果
/// 返回图
public static Model.DataSourceChart GetDataSourceChart(DataTable dt, string title, string type, int width, int height, bool isNotEnable3D)
{
Model.DataSourceChart dataSourceChart = new Model.DataSourceChart
{
Width = width,
Height = height,
Title = title,
IsNotEnable3D = isNotEnable3D,
ChartType = GetChartType(type)
};
List dataSourceTeams = new List();
for (int i = 1; i < dt.Columns.Count; i++)
{
Model.DataSourceTeam dataSourceTeam = new Model.DataSourceTeam
{
DataPointName = dt.Columns[i].ToString()
};
List dataSourcePoints = new List();
for (int j = 0; j < dt.Rows.Count; j++)
{
Model.DataSourcePoint dataSourcePoint = new Model.DataSourcePoint
{
PointText = dt.Rows[j][0].ToString(),
PointValue = dt.Rows[j][i].ToString()
};
dataSourcePoints.Add(dataSourcePoint);
}
dataSourceTeam.DataSourcePoints = dataSourcePoints;
dataSourceTeams.Add(dataSourceTeam);
}
dataSourceChart.DataSourceTeams = dataSourceTeams;
return dataSourceChart;
}
///
/// 显示类型
///
///
///
public static SeriesChartType GetChartType(string chartType)
{
SeriesChartType chart = SeriesChartType.Column;
if (chartType == "Column")
{
chart = SeriesChartType.Column;
}
else if (chartType == "Line")
{
chart = SeriesChartType.Line;
}
else if (chartType == "StackedArea")
{
chart = SeriesChartType.StackedArea;
}
else if (chartType == "StackedArea100")
{
chart = SeriesChartType.StackedArea100;
}
else if (chartType == "StepLine")
{
chart = SeriesChartType.StepLine;
}
else if (chartType == "Spline")
{
chart = SeriesChartType.Spline;
}
else if (chartType == "Stock")
{
chart = SeriesChartType.Stock;
}
else if (chartType == "Candlestick")
{
chart = SeriesChartType.Candlestick;
}
else if (chartType == "Pie")
{
chart = SeriesChartType.Pie;
}
else if (chartType == "Polar")
{
chart = SeriesChartType.Polar;
}
else if (chartType == "ErrorBar")
{
chart = SeriesChartType.ErrorBar;
}
return chart;
}
#endregion
}
}