Newer
Older
LSPipeline / HTForms / FrmValiData.cs
using System;
using System.IO;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Globe;

namespace WorldGIS.HTForms
{
    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();
        }

    }
}