using System; using System.IO; using System.Windows.Forms; using DevComponents.DotNetBar; using GeoScene.Globe; namespace Cyberpipe { public partial class FrmValiData : Office2007Form { private GSOGlobeControl ctl; public FrmValiData(GSOGlobeControl _ctl) { InitializeComponent(); ctl = _ctl; } /// <summary> /// 窗体初始化事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmValiData_Load(object sender, EventArgs e) { if (ctl != null) { for (int i = 0; i < ctl.Globe.Layers.Count; i++) { GSOLayer layer = ctl.Globe.Layers[i]; if (layer != null && layer.Name.ToLower().EndsWith(".shp")) { cmbShps.Items.Add(layer.Caption); } } } intalCombobox(); } private void intalCombobox() { cmbLayerType.Items.Add("不带压管线"); cmbLayerType.Items.Add("带压管线"); cmbLayerType.Items.Add("特征管点"); cmbLayerType.Items.Add("附属物"); cmbLayerType.Items.Add("标识器"); cmbLayerType.Items.Add("方沟"); cmbLayerType.Items.Add("阀门"); } /// <summary> /// 验证按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnVali_Click(object sender, EventArgs e) { DateTime dt=DateTime.Now; string logFilePath = Application.StartupPath + "\\log\\" + dt.Year + "\\" + dt.Year + dt.Month + "\\" + dt.Year + dt.Month + dt.Day + ".txt"; GSOLayer layer = ctl.Globe.Layers.GetLayerByCaption(Path.GetFileNameWithoutExtension( cmbShps.Text)); if (layer == null) return; FieldValidate fieldValidate = FieldValidateFactory.Create(ValidateConfig.LoadConfig(), getEnumValidateType()); if (!fieldValidate.Validate(layer)) MessageBox.Show("选择的数据不符合数据规范,详情见日志" + logFilePath, "提示"); else MessageBox.Show("数据质量满足要求!", "提示"); } private EnumValidateType getEnumValidateType() { switch (cmbLayerType.Text) { default: return EnumValidateType.PipeLineNoPress; break; case "带压管线": return EnumValidateType.PipeLinePress; break; case "特征管点": return EnumValidateType.Charac; break; case "附属物": return EnumValidateType.Attach; break; case "标识器": return EnumValidateType.Marker; break; case "方沟": return EnumValidateType.FangGou; break; case "阀门": return EnumValidateType.Valve; break; } } private void btnCancel_Click(object sender, EventArgs e) { Close(); } } }