587 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			587 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						||
using System.Collections.Generic;
 | 
						||
using System.Linq;
 | 
						||
using System.Web;
 | 
						||
using System.Web.UI;
 | 
						||
using System.Web.UI.WebControls;
 | 
						||
using System.Data;
 | 
						||
using System.Web.UI.DataVisualization.Charting;
 | 
						||
using System.Drawing;
 | 
						||
 | 
						||
namespace Web.Controls
 | 
						||
{
 | 
						||
    public partial class ChartControl : System.Web.UI.UserControl
 | 
						||
    {
 | 
						||
        protected void Page_Load(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            if (!IsPostBack)
 | 
						||
            {
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 创建Chart图形
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="dataSourceChart">Chart类</param>
 | 
						||
        public void CreateChart(Model.DataSourceChart dataSourceChart)
 | 
						||
        {
 | 
						||
            Chart chart1 = new Chart
 | 
						||
            {
 | 
						||
                ID = "chart1",
 | 
						||
                BackColor = Color.WhiteSmoke,
 | 
						||
                ImageLocation = "~/Images/ChartPic_#SEQ(300,3)",
 | 
						||
                BorderlineDashStyle = ChartDashStyle.Solid,
 | 
						||
                Palette = ChartColorPalette.BrightPastel,
 | 
						||
                BackSecondaryColor = Color.White,
 | 
						||
                BackGradientStyle = GradientStyle.TopBottom,
 | 
						||
                BorderWidth = 2,
 | 
						||
                BorderColor = Color.FromArgb(26, 59, 105),
 | 
						||
                ImageType = ChartImageType.Png,
 | 
						||
 | 
						||
                Width = dataSourceChart.Width,
 | 
						||
                Height = dataSourceChart.Height
 | 
						||
            };
 | 
						||
 | 
						||
            Title title = new Title
 | 
						||
            {
 | 
						||
                Text = dataSourceChart.Title,
 | 
						||
                ShadowColor = Color.FromArgb(32, 0, 0, 0),
 | 
						||
                Font = new Font("Trebuchet MS", 10F, FontStyle.Bold),
 | 
						||
                ShadowOffset = 3,
 | 
						||
                ForeColor = Color.FromArgb(26, 59, 105)
 | 
						||
            };
 | 
						||
            chart1.Titles.Add(title);
 | 
						||
 | 
						||
            Legend legend = new Legend
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                TextWrapThreshold = 1,
 | 
						||
                Docking = Docking.Top,
 | 
						||
                Alignment = StringAlignment.Center,
 | 
						||
                BackColor = Color.Transparent,
 | 
						||
                Font = new Font(new FontFamily("Trebuchet MS"), 8),
 | 
						||
                LegendStyle = LegendStyle.Row,
 | 
						||
                IsEquallySpacedItems = true,
 | 
						||
                IsTextAutoFit = false
 | 
						||
            };
 | 
						||
            chart1.Legends.Add(legend);
 | 
						||
 | 
						||
            ChartArea chartArea = new ChartArea
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                BackColor = Color.Transparent
 | 
						||
            };
 | 
						||
            chartArea.AxisX.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisY.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.Interval = 1;
 | 
						||
            chartArea.Area3DStyle.Enable3D = dataSourceChart.IsNotEnable3D;
 | 
						||
            chart1.ChartAreas.Add(chartArea);
 | 
						||
 | 
						||
            if (dataSourceChart.ChartType == SeriesChartType.Pie)
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Label = "#PERCENT{P1}";
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
                        int m = 0;
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points[m].LegendText = dataSourcePoint.PointText + "#PERCENT{P1}";
 | 
						||
                            m++;
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
 | 
						||
                        if (dataSourceTeam.DataPointName == "Actual Finished")
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Color = Color.Red;
 | 
						||
                        }
 | 
						||
                        else if (dataSourceTeam.DataPointName == "Plan Finished")
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Color = Color.Blue;
 | 
						||
                        }
 | 
						||
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            Controls.Add(chart1);
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 创建自定义Chart图形
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="dt">数据源</param>
 | 
						||
        /// <param name="width">宽度</param>
 | 
						||
        /// <param name="height">高度</param>
 | 
						||
        public void CreateMaryChart(DataTable dt, int width, int height, string projectShortName)
 | 
						||
        {
 | 
						||
            Chart chart1 = new Chart();
 | 
						||
            chart1.ID = "chart1";
 | 
						||
            chart1.BackColor = Color.WhiteSmoke;
 | 
						||
            chart1.ImageLocation = "~/Images/ChartPic_#SEQ(300,3)";
 | 
						||
            chart1.BorderlineDashStyle = ChartDashStyle.Solid;
 | 
						||
            chart1.Palette = ChartColorPalette.BrightPastel;
 | 
						||
            chart1.BackSecondaryColor = Color.White;
 | 
						||
            chart1.BackGradientStyle = GradientStyle.TopBottom;
 | 
						||
            chart1.BorderWidth = 2;
 | 
						||
            chart1.BorderColor = Color.FromArgb(26, 59, 105);
 | 
						||
            chart1.ImageType = ChartImageType.Png;
 | 
						||
 | 
						||
            chart1.Width = width;
 | 
						||
            chart1.Height = height;
 | 
						||
 | 
						||
            Title title = new Title();
 | 
						||
            title.Text = "赢得值曲线";
 | 
						||
            if (!string.IsNullOrEmpty(projectShortName))
 | 
						||
            {
 | 
						||
                title.Text = projectShortName + "赢得值曲线";
 | 
						||
            }
 | 
						||
            title.Text = BLL.Funs.GetSubStr(title.Text, 30);
 | 
						||
            title.ToolTip = title.Text;
 | 
						||
            title.ShadowColor = Color.FromArgb(32, 0, 0, 0);
 | 
						||
            title.Font = new Font("Trebuchet MS", 10F, FontStyle.Bold);
 | 
						||
            title.ShadowOffset = 3;
 | 
						||
            title.ForeColor = Color.FromArgb(26, 59, 105);
 | 
						||
            chart1.Titles.Add(title);
 | 
						||
 | 
						||
            Legend legend1 = new Legend();
 | 
						||
            legend1.TextWrapThreshold = 1;
 | 
						||
            legend1.Docking = Docking.Right;
 | 
						||
            legend1.Alignment = StringAlignment.Center;
 | 
						||
            legend1.BackColor = Color.Transparent;
 | 
						||
            legend1.Font = new Font(new FontFamily("Trebuchet MS"), 8);
 | 
						||
            legend1.LegendStyle = LegendStyle.Column;
 | 
						||
            legend1.IsEquallySpacedItems = true;
 | 
						||
            legend1.IsTextAutoFit = false;
 | 
						||
            chart1.Legends.Add(legend1);
 | 
						||
 | 
						||
            ChartArea chartArea = new ChartArea();
 | 
						||
            chartArea.BackColor = Color.Transparent;
 | 
						||
            chartArea.AxisX.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisY.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LabelStyle.Format = "#(万元)";
 | 
						||
            chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.Interval = 1;
 | 
						||
            chartArea.Area3DStyle.Enable3D = false;
 | 
						||
            chart1.ChartAreas.Add(chartArea);
 | 
						||
 | 
						||
            chart1.Series.Add("本月计划工作预算费用-BCWS");
 | 
						||
            chart1.Series.Add("本月已完工作预算费用-BCWP");
 | 
						||
            chart1.Series.Add("本月已完工作实际费用-ACWP");
 | 
						||
            chart1.Series.Add("累计计划工作预算费用-BCWS");
 | 
						||
            chart1.Series.Add("累计已完工作预算费用-BCWP");
 | 
						||
            chart1.Series.Add("累计已完工作实际费用-ACWP");
 | 
						||
 | 
						||
            DataView dv = dt.DefaultView;
 | 
						||
 | 
						||
            chart1.Series["本月计划工作预算费用-BCWS"].Points.DataBindXY(dv, "月份", dv, "本月计划工作预算费用-BCWS");
 | 
						||
            chart1.Series["本月计划工作预算费用-BCWS"].ChartType = SeriesChartType.Column;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["本月计划工作预算费用-BCWS"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["本月计划工作预算费用-BCWS"].Points[i].ToolTip = "本月计划工作预算费用-BCWS\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            chart1.Series["本月已完工作预算费用-BCWP"].Points.DataBindXY(dv, "月份", dv, "本月已完工作预算费用-BCWP");
 | 
						||
            chart1.Series["本月已完工作预算费用-BCWP"].ChartType = SeriesChartType.Column;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["本月已完工作预算费用-BCWP"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["本月已完工作预算费用-BCWP"].Points[i].ToolTip = "本月已完工作预算费用-BCWP\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            chart1.Series["本月已完工作实际费用-ACWP"].Points.DataBindXY(dv, "月份", dv, "本月已完工作实际费用-ACWP");
 | 
						||
            chart1.Series["本月已完工作实际费用-ACWP"].ChartType = SeriesChartType.Column;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["本月已完工作实际费用-ACWP"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["本月已完工作实际费用-ACWP"].Points[i].ToolTip = "本月已完工作实际费用-ACWP\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            chart1.Series["累计计划工作预算费用-BCWS"].Points.DataBindXY(dv, "月份", dv, "累计计划工作预算费用-BCWS");
 | 
						||
            chart1.Series["累计计划工作预算费用-BCWS"].ChartType = SeriesChartType.Spline;
 | 
						||
            chart1.Series["累计计划工作预算费用-BCWS"].Color = Color.Blue;
 | 
						||
            chart1.Series["累计计划工作预算费用-BCWS"].BorderWidth = 2;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["累计计划工作预算费用-BCWS"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["累计计划工作预算费用-BCWS"].Points[i].ToolTip = "累计计划工作预算费用-BCWS\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            chart1.Series["累计已完工作预算费用-BCWP"].Points.DataBindXY(dv, "月份", dv, "累计已完工作预算费用-BCWP");
 | 
						||
            chart1.Series["累计已完工作预算费用-BCWP"].ChartType = SeriesChartType.Spline;
 | 
						||
            chart1.Series["累计已完工作预算费用-BCWP"].Color = Color.MediumSeaGreen;
 | 
						||
            chart1.Series["累计已完工作预算费用-BCWP"].BorderWidth = 2;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["累计已完工作预算费用-BCWP"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["累计已完工作预算费用-BCWP"].Points[i].ToolTip = "累计已完工作预算费用-BCWP\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            chart1.Series["累计已完工作实际费用-ACWP"].Points.DataBindXY(dv, "月份", dv, "累计已完工作实际费用-ACWP");
 | 
						||
            chart1.Series["累计已完工作实际费用-ACWP"].ChartType = SeriesChartType.Spline;
 | 
						||
            chart1.Series["累计已完工作实际费用-ACWP"].Color = Color.Red;
 | 
						||
            chart1.Series["累计已完工作实际费用-ACWP"].BorderWidth = 2;
 | 
						||
 | 
						||
            for (int i = 0; i < chart1.Series["累计已完工作实际费用-ACWP"].Points.Count; i++)
 | 
						||
            {
 | 
						||
                chart1.Series["累计已完工作实际费用-ACWP"].Points[i].ToolTip = "累计已完工作实际费用-ACWP\n#VALX\n#VALY";
 | 
						||
            }
 | 
						||
 | 
						||
            Controls.Add(chart1);
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 创建Chart图形百分比
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="dataSourceChart">Chart类</param>
 | 
						||
        public void CreateChartBaifenbi(Model.DataSourceChart dataSourceChart)
 | 
						||
        {
 | 
						||
            Chart chart1 = new Chart
 | 
						||
            {
 | 
						||
                ID = "chart1",
 | 
						||
                BackColor = Color.WhiteSmoke,
 | 
						||
                ImageLocation = "~/Images/ChartPic_#SEQ(300,3)",
 | 
						||
                BorderlineDashStyle = ChartDashStyle.Solid,
 | 
						||
                Palette = ChartColorPalette.BrightPastel,
 | 
						||
                BackSecondaryColor = Color.White,
 | 
						||
                BackGradientStyle = GradientStyle.TopBottom,
 | 
						||
                BorderWidth = 2,
 | 
						||
                BorderColor = Color.FromArgb(26, 59, 105),
 | 
						||
                ImageType = ChartImageType.Png,
 | 
						||
 | 
						||
                Width = dataSourceChart.Width,
 | 
						||
                Height = dataSourceChart.Height
 | 
						||
            };
 | 
						||
 | 
						||
            Title title = new Title
 | 
						||
            {
 | 
						||
                Text = dataSourceChart.Title,
 | 
						||
                ShadowColor = Color.FromArgb(32, 0, 0, 0),
 | 
						||
                Font = new Font("Trebuchet MS", 10F, FontStyle.Bold),
 | 
						||
                ShadowOffset = 3,
 | 
						||
                ForeColor = Color.FromArgb(26, 59, 105)
 | 
						||
            };
 | 
						||
            chart1.Titles.Add(title);
 | 
						||
 | 
						||
            Legend legend = new Legend
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                TextWrapThreshold = 1,
 | 
						||
                Docking = Docking.Top,
 | 
						||
                Alignment = StringAlignment.Center,
 | 
						||
                BackColor = Color.Transparent,
 | 
						||
                Font = new Font(new FontFamily("Trebuchet MS"), 8),
 | 
						||
                LegendStyle = LegendStyle.Row,
 | 
						||
                IsEquallySpacedItems = true,
 | 
						||
                IsTextAutoFit = false
 | 
						||
            };
 | 
						||
            chart1.Legends.Add(legend);
 | 
						||
 | 
						||
            ChartArea chartArea = new ChartArea
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                BackColor = Color.Transparent
 | 
						||
            };
 | 
						||
            chartArea.AxisX.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisY.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.Interval = 1;
 | 
						||
            chartArea.Area3DStyle.Enable3D = dataSourceChart.IsNotEnable3D;
 | 
						||
 | 
						||
            chartArea.AxisY.LabelStyle.Format = " 0% "; // 格式化,为了显示百分号
 | 
						||
           
 | 
						||
 | 
						||
            chart1.ChartAreas.Add(chartArea);
 | 
						||
 | 
						||
            if (dataSourceChart.ChartType == SeriesChartType.Pie)
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Label = "#PERCENT{P1}";
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
                        int m = 0;
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points[m].LegendText = dataSourcePoint.PointText + "#PERCENT{P1}";
 | 
						||
                            m++;
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Label = "#VAL{P}";//设置标签文本 (在设计期通过属性窗口编辑更直观)
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;//显示标签
 | 
						||
                        if (dataSourceTeam.DataPointName == "Actual Finished(%)")
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Color = Color.Red;
 | 
						||
                        }
 | 
						||
                        else {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Color = Color.Blue;
 | 
						||
                        }
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            Controls.Add(chart1);
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 创建Chart图形百分比
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="dataSourceChart">Chart类</param>
 | 
						||
        public void CreateChartPunchlistFrom(Model.DataSourceChart dataSourceChart)
 | 
						||
        {
 | 
						||
            Chart chart1 = new Chart
 | 
						||
            {
 | 
						||
                ID = "chart1",
 | 
						||
                BackColor = Color.WhiteSmoke,
 | 
						||
                ImageLocation = "~/Images/ChartPic_#SEQ(300,3)",
 | 
						||
                BorderlineDashStyle = ChartDashStyle.Solid,
 | 
						||
                Palette = ChartColorPalette.BrightPastel,
 | 
						||
                BackSecondaryColor = Color.White,
 | 
						||
                BackGradientStyle = GradientStyle.TopBottom,
 | 
						||
                BorderWidth = 2,
 | 
						||
                BorderColor = Color.FromArgb(26, 59, 105),
 | 
						||
                ImageType = ChartImageType.Png,
 | 
						||
 | 
						||
                Width = dataSourceChart.Width,
 | 
						||
                Height = dataSourceChart.Height
 | 
						||
            };
 | 
						||
 | 
						||
            Title title = new Title
 | 
						||
            {
 | 
						||
                Text = dataSourceChart.Title,
 | 
						||
                ShadowColor = Color.FromArgb(32, 0, 0, 0),
 | 
						||
                Font = new Font("Trebuchet MS", 10F, FontStyle.Bold),
 | 
						||
                ShadowOffset = 3,
 | 
						||
                ForeColor = Color.FromArgb(26, 59, 105)
 | 
						||
            };
 | 
						||
            chart1.Titles.Add(title);
 | 
						||
 | 
						||
            Legend legend = new Legend
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                TextWrapThreshold = 1,
 | 
						||
                Docking = Docking.Top,
 | 
						||
                Alignment = StringAlignment.Center,
 | 
						||
                BackColor = Color.Transparent,
 | 
						||
                Font = new Font(new FontFamily("Trebuchet MS"), 8),
 | 
						||
                LegendStyle = LegendStyle.Row,
 | 
						||
                IsEquallySpacedItems = true,
 | 
						||
                IsTextAutoFit = false
 | 
						||
            };
 | 
						||
            chart1.Legends.Add(legend);
 | 
						||
 | 
						||
            ChartArea chartArea = new ChartArea
 | 
						||
            {
 | 
						||
                Name = dataSourceChart.Title,
 | 
						||
                BackColor = Color.Transparent
 | 
						||
            };
 | 
						||
            chartArea.AxisX.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisY.IsLabelAutoFit = false;
 | 
						||
            chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
 | 
						||
            chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
 | 
						||
            chartArea.AxisX.Interval = 1;
 | 
						||
            chartArea.Area3DStyle.Enable3D = dataSourceChart.IsNotEnable3D;
 | 
						||
 | 
						||
            chartArea.AxisY.LabelStyle.Format = " 0% "; // 格式化,为了显示百分号
 | 
						||
 | 
						||
 | 
						||
            chart1.ChartAreas.Add(chartArea);
 | 
						||
 | 
						||
            if (dataSourceChart.ChartType == SeriesChartType.Pie)
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Label = "#PERCENT{P1}";
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
                        int m = 0;
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points[m].LegendText = dataSourcePoint.PointText + "#PERCENT{P1}";
 | 
						||
                            m++;
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
 | 
						||
                {
 | 
						||
                    this.lblTotal.Text = "累计值为:";
 | 
						||
                    if (dataSourceTeam.DataPointName == "累计")
 | 
						||
                    {
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
 | 
						||
                        }
 | 
						||
                        if (this.lblTotal.Text != "累计值为:")
 | 
						||
                        {
 | 
						||
                            this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        this.lblTotal.Visible = false;
 | 
						||
                        chart1.Series.Add(dataSourceTeam.DataPointName);
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
 | 
						||
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].Label = "#VAL{P}";//设置标签文本 (在设计期通过属性窗口编辑更直观)
 | 
						||
                        chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;//显示标签
 | 
						||
                        foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
 | 
						||
                        {
 | 
						||
                            chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText, dataSourcePoint.PointValue);
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            Controls.Add(chart1);
 | 
						||
        }
 | 
						||
    }
 | 
						||
} |