Newer
Older
GHFX_REFACTOR / FrmBSQDuoBianXingStatis.cs
wxn on 2 Nov 2016 6 KB 提交
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.SqlClient;
using System.Windows.Forms.DataVisualization.Charting;
using GeoScene.Data;
using GeoScene.Engine;
using GeoScene.Globe;
using System.Data.OracleClient;

namespace Cyberpipe
{
    public partial class FrmBSQDuoBianXingStatis : Office2007Form
    {
        Dictionary<string, int> bsq = new Dictionary<string, int>();
        Dictionary<string, int> bsq1 = new Dictionary<string, int>();
        static FrmBSQDuoBianXingStatis frm;
        GSOGlobeControl globeControl1;
        List<GSOFeatures> list = new List<GSOFeatures>();
        public static List<string> pipeLists = new List<string>();

        string[] codeStr = new string[50];
        string[] nameStr = new string[30];
        public static List<typeList> typeLists;

        public FrmBSQDuoBianXingStatis(Dictionary<string, int> workWellLen, GSOGlobeControl glb,List<GSOFeatures> _list)
        {
            InitializeComponent();
            bsq = workWellLen;
            globeControl1 = glb;
            list = _list;
        }
       
        private void FrmBSQDuoBianXingStatis_Load(object sender, EventArgs e)
        {
            FrmBSQDuoBianXingStatisFenLei();
            try
            {
                chart1.Series.Add("标识器");
                chart1.ChartAreas["ChartArea1"].AxisX.Title = "标识器类型";
                chart1.ChartAreas["ChartArea1"].AxisY.Title = "标识器数量";
                chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
                chart1.Series["标识器"].ChartType = SeriesChartType.Column;
                chart1.Series["标识器"]["DrawingStyle"] = "Cylinder";

                chart1.Series["标识器"].Points.DataBindXY(bsq1.Keys, bsq1.Values);
                if (bsq1.Values.Count == 0)
                {
                    MessageBox.Show("该区域没有标识器信息", "提示");
                    this.Close();
                    return;
                }
                else
                {
                    for (int m = 0; m < bsq1.Values.Count; m++)
                    {
                        if (chart1.Series["标识器"].Points[m].YValues[0].ToString() != "0")
                        {
                            chart1.Series["标识器"].Points[m].Label = chart1.Series[0].Points[m].YValues[0].ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //ErrorLog.PublishError(ex);
            }
        }

        private void FrmBSQDuoBianXingStatis_FormClosing(object sender, FormClosingEventArgs e)
        {
            frm = null;
            globeControl1.Globe.ClearAnalysis();
            globeControl1.Globe.MemoryLayer.RemoveAllFeature();
        }


        private void FrmBSQDuoBianXingStatisFenLei()
        {
            try
            {
                bool flag2 = false;
                for (int i = 0; i < Utility.listPipelineType.Count; i++)
                {

                    for (int j = 0; j < pipeLists.Count; j++)
                    {
                        if (pipeLists[j] == Utility.listPipelineType[i].type)
                        {
                            flag2 = true;
                            break;
                        }
                    }
                    if (!flag2 && Utility.listPipelineType[i].type != "标识器")
                    {
                        pipeLists.Add(Utility.listPipelineType[i].type);
                    }
                    flag2 = false;
                }

                typeLists = new List<typeList>();
                for (int num = 0; num < pipeLists.Count; num++)
                {
                    typeList ls = new typeList(0, pipeLists[num]);
                    typeLists.Add(ls);
                }

                GSOFeatures fs = list[0];
                string pipetype = "标识器";
                foreach (string key in bsq.Keys)
                {
                    if (key.StartsWith(pipetype))
                    {
                        pipetype = key;
                        break;
                    }
                }
                if (fs.Length > 0)
                {
                    for (int i = 0; i < fs.Length; i++)
                    {
                        string str = fs[i].GetValue("对象名称").ToString();
                        codeStr = str.Split(',');
                        for (int n = 0; n < codeStr.Length; n++)
                        {
                            for (int ii = 0; ii < Utility.listPipelineType.Count; ii++)
                            {
                                if (Utility.listPipelineType[ii].code == codeStr[n])
                                {
                                    for (int m = 0; m < typeLists.Count; m++)
                                    {
                                        if (Utility.listPipelineType[ii].type == typeLists[m].type)
                                        {
                                            typeLists[m].num++;
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }

                for (int i = 0; i < typeLists.Count; i++)
                {
                    if (typeLists[i].num > 0)
                        bsq1.Add(typeLists[i].type, typeLists[i].num);
                }

            }
            catch (Exception ex)
            {
                //ErrorLog.PublishError(ex);
                //MessageBox.Show(ex.Message);
            }

        }
        public class typeList
        {
            public int num;
            public string type;

            public typeList(int _num, string _type)
            {
                num = _num;
                type = _type;
            }
        }


    }
}