Newer
Older
EMS_SZ / FrmBSQStatis.cs
root on 21 Mar 2016 4 KB first
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 GeoScene.Data;
using GeoScene.Engine;
using GeoScene.Globe;
using System.Windows.Forms.DataVisualization.Charting;
using System.Data.OracleClient;

namespace Cyberpipe
{
    public partial class FrmBSQStatis : Office2007Form
    {
        public Dictionary<string, int> bsq = new Dictionary<string, int>();
        //SqlConnection conn;
        public static List<typeList> typeLists;
        OracleConnection conn;
        string connectString;
        int count = 0;

        public FrmBSQStatis()
        {
            InitializeComponent();
            BSQNumStatis();
        }
        string[] codeStr = new string[50];
        string[] nameStr = new string[30];
        public static List<string> pipeLists = new List<string>();
 
        private void BSQNumStatis()
        {
            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);
            }

            try
            {
                conn = OledbHelper.sqlConnection();
                conn.Open();
                OracleCommand cmd;
                cmd = new OracleCommand("select 对象类型 from 标识器", conn);
                OracleDataReader dr = cmd.ExecuteReader();
                bsq.Clear();

                while (dr.Read())
                {
                    count++;
                    string str =Convert.ToString(dr["对象类型"]);
                    codeStr = str.Split(',');
                    for(int n=0;n<codeStr.Length;n++)
                    {
                       for (int i = 0; i < Utility.listPipelineType.Count; i++)
                       {
                           if (Utility.listPipelineType[i].code == codeStr[n])
                           {
                               for (int m = 0; m < typeLists.Count; m++)
                               {
                                   if (Utility.listPipelineType[i].type == typeLists[m].type)
                                   {
                                       typeLists[m].num++;
                                       break;
                                   }
                               }
                               break;
                           }
                        }
                    }
                }
                conn.Close();
                for (int i = 0; i < typeLists.Count; i++)
                {
                    if (typeLists[i].num > 0)
                        bsq.Add(typeLists[i].type, typeLists[i].num);
                }

            }
            catch (Exception ex)
            {

            }
        }

        private void FrmBSQStatis_Load(object sender, EventArgs e)
        {
            
            try
            {
                
                chartStatis.Series.Add("标识器");
                chartStatis.ChartAreas["ChartArea1"].AxisY.Title = "标识器个数";
                chartStatis.ChartAreas["ChartArea1"].AxisX.Interval = 1;
                chartStatis.Series[0].ChartType = SeriesChartType.Column;
                chartStatis.Series[0]["DrawingStyle"] = "Cylinder";
                chartStatis.Series[0].Points.DataBindXY(bsq.Keys, bsq.Values);
                for (int m = 0; m < bsq.Values.Count; m++)
                {
                    if (chartStatis.Series[0].Points[m].YValues[0].ToString().Trim() != "0")
                    {
                        //count += Convert.ToInt16(chartStatis.Series[0].Points[m].YValues[0].ToString());
                        chartStatis.Series[0].Points[m].Label = chartStatis.Series[0].Points[m].YValues[0].ToString();
                    }
                }

                
                chartStatis.ChartAreas["ChartArea1"].AxisX.Title = "标识器类型(总数:" + count + ")";
                

            }
            catch (Exception ex)
            {
            }
        }

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

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

    }
}