Basf_EProject/EProject/BLL/Common/ChartControlService.cs

100 lines
3.6 KiB
C#
Raw Normal View History

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