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; } } } }