using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar; using GeoScene.Engine; using GeoScene.Globe; using GeoScene.Data; namespace Cyberpipe.Forms { public partial class FrmTongXunAttribute : Office2007Form { private GSOFeatureDataset featDataSet; private GSOLayer layer; public GSOFeature feat_old; public GSOFeature feat; public GSOGeoPolyline3D line; private Color color; private string strReference; public FrmTongXunAttribute(GSOLayer _layer, GSOFeature feature, Color color1, string referenceText) { InitializeComponent(); layer = _layer; featDataSet = layer.Dataset as GSOFeatureDataset; line = feature.Geometry as GSOGeoPolyline3D; feat_old = feature; color = color1; strReference = referenceText; } /// <summary> /// 确定按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOK_Click(object sender, EventArgs e) { feat = featDataSet.CreateFeature(); GSOPipeLineStyle3D style = new GSOPipeLineStyle3D(); style.LineColor =color; //需要填写 if (txtGuanJing.Text == "" || txtGuanJing.Text == "0") { if (txtGuanJing.Text == "") { MessageBox.Show("管径不能为空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("管径不能为零!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return; } else { try { style.Radius = Convert.ToDouble(txtGuanJing.Text) / 2000; } catch (Exception ex) { MessageBox.Show("请输入正确的管径!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } line.AltitudeMode = EnumAltitudeMode.RelativeToGround; line.Style = style; GSOPoint3ds pts = line[0]; GSOPoint3d pt1 = pts[0]; GSOPoint3d pt2 = pts[1]; if (txtDeep1.Text == "" || txtDeep1.Text == "0" || txtDeep2.Text == "" || txtDeep2.Text == "0") { if (txtDeep1.Text == "" || txtDeep2.Text == "") { MessageBox.Show("起始埋深和终止埋深不能为空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (txtDeep1.Text == "0" || txtDeep2.Text == "0") { MessageBox.Show("起始埋深和终止埋深埋深不能为零!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return; } try { pt1.Z = 0 - Convert.ToDouble(txtDeep1.Text) - Convert.ToDouble(txtGuanJing.Text) / 1000; pt2.Z = 0 - Convert.ToDouble(txtDeep2.Text) - Convert.ToDouble(txtGuanJing.Text) / 1000; if (strReference == "管顶") { pt1.Z -= Convert.ToDouble(txtGuanJing.Text) / 2000; pt2.Z -= Convert.ToDouble(txtGuanJing.Text) / 2000; } } catch (Exception ex) { MessageBox.Show("请输入正确的起始埋深和终止埋深!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } pts[0] = pt1; pts[1] = pt2; feat.Geometry = line; feat.Geometry = line; feat.SetValue("编号", txtBianHao.Text); //if (combBianMa.SelectedItem !=null ) //{ // feat.SetValue("管线编码", Convert.ToInt32(combBianMa.Text)); //} if (txtGuanJing.Text != "") { feat.SetValue("管径_毫米", Convert.ToInt32(txtGuanJing.Text)); } if (combMaterial.SelectedIndex>0) { feat.SetValue("材质", combMaterial.SelectedItem.ToString()); } if (combMaiShe.SelectedIndex >0) { feat.SetValue("埋设方式", combMaiShe.SelectedItem.ToString()); } if (txtDEM1.Text != "") { feat.SetValue("起始地面高程", Convert.ToDouble(txtDEM1.Text)); } if (txtDeep1.Text != "") { feat.SetValue("起始埋深", Convert.ToDouble(txtDeep1.Text)); } if (txtDEMDing1.Text != "") { feat.SetValue("起始管顶高程", Convert.ToDouble(txtDEMDing1.Text)); } if (txtDEM2.Text != "") { feat.SetValue("终止地面高程", Convert.ToDouble(txtDEM2.Text)); } if (txtDeep2.Text != "") { feat.SetValue("终止埋深", Convert.ToDouble(txtDeep2.Text)); } if (txtDEMDing2.Text != "") { feat.SetValue("终止管顶高程", Convert.ToDouble(txtDEMDing2.Text)); } if (txtDianlanNum.Text != "") { feat.SetValue("电缆条数", Convert.ToDouble(txtDianlanNum.Text)); } if (txtGuanglanNum.Text != "") { feat.SetValue("光缆条数", Convert.ToDouble(txtGuanglanNum.Text)); } if (txtUseNumKong.Text != "") { feat.SetValue("已用孔数", Convert.ToDouble(txtUseNumKong.Text)); } if (txtAllNumKong.Text != "") { feat.SetValue("总孔数", Convert.ToDouble(txtAllNumKong.Text)); } if (dateBuild.Text != "") { feat.SetValue("建设年代", Convert.ToDateTime(dateBuild.Text)); } if (txtYear.Text != "") { feat.SetValue("使用年限", Convert.ToDouble(txtYear.Text)); } feat.SetValue("线路起点", txtStartPlace.Text ); feat.SetValue("线路终点", txtEndPlace.Text); feat.SetValue("权属单位", txtQuanShuDanWei.Text); feat.SetValue("设计单位", txtDesign_Com.Text); feat.SetValue("设计负责人", txtDesign_Per.Text); feat.SetValue("施工单位", txtBuilder_Com.Text); feat.SetValue("施工负责人", txtBuilder_Per.Text); feat.SetValue("监理单位", txtMon_Com.Text); feat.SetValue("监理负责人", txtMon_Per.Text); feat.SetValue("业务负责人", txtHH_Per.Text); feat.SetValue("备注", txtRemark.Text); feat.Name = txtBianHao.Text; line.Name = txtBianHao.Text; layer.AddFeature(feat); feat_old.Delete(); if (MessageBox.Show("是否保存到数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { layer.Save(); } this.DialogResult = DialogResult.OK; this.Close(); } /// <summary> /// 取消按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } /// <summary> /// 键盘按键按下事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtBianMa_KeyPress(object sender, KeyPressEventArgs e) { TextBox text = sender as TextBox; if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (int)e.KeyChar != 46) { e.Handled = true; } if ((int)e.KeyChar == 46) //小数点 { if (text.Text.Length <= 0) e.Handled = true; //小数点不能在第一位 else //处理不规则的小数点 { float f; float oldf; bool b1 = false, b2 = false; b1 = float.TryParse(text.Text, out oldf); b2 = float.TryParse(text.Text + e.KeyChar.ToString(), out f); if (b2 == false) { if (b1 == true) e.Handled = true; else e.Handled = false; } } } } /// <summary> /// 窗体初始化事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmTongXunAttribute_Load(object sender, EventArgs e) { //string str = Utility.Pipe_Code["通信"].ToString(); //string[] aArray = str.Split(','); //for (int i = 0; i < aArray.Length; i++) //{ // combBianMa.Items.Add(aArray[i]); //} //combBianMa.SelectedIndex = 0; string sqltype3 = "select distinct 管线编码 from " + layer.Caption; DataTable table3 = OledbHelper.QueryTable(sqltype3); txtBianMa.Text = table3.Rows[0][0].ToString(); if (layer.Caption.Contains("移动")) { txtBianHao.Text = txtBianHao.Text = "GX_YDL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("联通")) { txtBianHao.Text = txtBianHao.Text = "GX_LTL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("电信")) { txtBianHao.Text = txtBianHao.Text = "GX_DXL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("电通")) { txtBianHao.Text = txtBianHao.Text = "GX_DTL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("网通")) { txtBianHao.Text = txtBianHao.Text = "GX_WTL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("路灯")) { txtBianHao.Text = txtBianHao.Text = "GX_LDL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } else if (layer.Caption.Contains("有线")) { txtBianHao.Text = txtBianHao.Text = "GX_DSL_" + txtBianMa.Text + "_" + Guid.NewGuid().ToString(); } string sqltype1 = "select distinct 材质 from " + layer.Caption; DataTable table1 = OledbHelper.QueryTable(sqltype1); combMaterial.Items.Add("无"); for (int j = 0; j < table1.Rows.Count; j++) { DataRow dr = table1.Rows[j]; string colString1 = dr[0].ToString(); if (colString1 == null || colString1.Trim() == "") continue; combMaterial.Items.Add(colString1); } string sqltype2 = "select distinct 埋设方式 from " + layer.Caption; DataTable table2 = OledbHelper.QueryTable(sqltype2); combMaiShe.Items.Add("无"); for (int k = 0; k < table2.Rows.Count; k++) { DataRow dr = table2.Rows[k]; string colString1 = dr[0].ToString(); if (colString1 == null || colString1.Trim() == "") continue; combMaiShe.Items.Add(colString1); } } } }