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; public FrmBSQStatis() { InitializeComponent(); bsq = getBSQNameAndNumMap(null); //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()) // { // 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"].AxisX.Title = "标识器类型"; 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") { chartStatis.Series[0].Points[m].Label = chartStatis.Series[0].Points[m].YValues[0].ToString(); } } } catch (Exception ex) { } } //public class typeList //{ // public int num; // public string type; // public typeList(int _num, string _type) // { // num = _num; // type = _type; // } //} private Dictionary<string, int> getBSQNameAndNumMap(GSOGeoPolygon3D polygon) { Dictionary<string, int> result = new Dictionary<string, int>(); Dictionary<string, string> codeAndType = new Dictionary<string, string>(); //得到type的种类 for (int i = 0; i < Utility.listPipelineType.Count; i++) { if (!result.ContainsKey(Utility.listPipelineType[i].type) && Utility.listPipelineType[i].type != "标识器") { result.Add(Utility.listPipelineType[i].type, 0); codeAndType.Add(Utility.listPipelineType[i].code, Utility.listPipelineType[i].type); } } try { conn = OledbHelper.sqlConnection(); conn.Open(); OracleCommand cmd; cmd = new OracleCommand("select 对象类型 from 标识器", conn); OracleDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { string str = Convert.ToString(dr["对象类型"]); if (str == null) continue; foreach (string key in codeAndType.Keys) { if (str.Contains(key)) { result[codeAndType[key]] += 1; } } } conn.Close(); } catch (Exception ex) { } return result; } } }