Beispiel #1
0
        public void OnDataCheck()
        {
            Exception eError = null;

            if (Hook == null)
            {
                return;
            }
            IArcgisDataCheckParaSet dataCheckParaSet = Hook.DataCheckParaSet as IArcgisDataCheckParaSet;

            if (dataCheckParaSet == null)
            {
                return;
            }
            if (dataCheckParaSet.Workspace == null)
            {
                return;
            }

            //实现代码
            SysCommon.DataBase.SysTable pSysTable = new SysCommon.DataBase.SysTable();
            pSysTable.DbConn    = dataCheckParaSet.DbConnPara;
            pSysTable.DBConType = SysCommon.enumDBConType.OLEDB;
            pSysTable.DBType    = SysCommon.enumDBType.ACCESS;

            //分类代码字段名
            string codeName = TopologyCheckClass.GetCodeName(pSysTable, out eError);

            if (eError != null)
            {
                //eError=new Exception(eError.Message);
                return;
            }

            //控制点注记检查,参数ID为29
            DataTable mTable = TopologyCheckClass.GetParaValueTable(pSysTable, 29, out eError);

            if (eError != null)
            {
                //SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
                return;
            }
            if (mTable.Rows.Count == 0)
            {
                //eError = new Exception("未进行等高线注记一致性检查参数配置!");
                return;
            }
            //控制点注记检查搜索半径,参数ID为32
            string paraValue3 = TopologyCheckClass.GetParaValue(pSysTable, 32, out eError);

            if (eError != null)
            {
                eError = new Exception("读取数据减配置表失败。" + eError.Message);
                return;
            }
            double serchRadiu3 = Convert.ToDouble(paraValue3);

            //控制点注记检查精度控制,参数ID为35
            paraValue3 = TopologyCheckClass.GetParaValue(pSysTable, 35, out eError);
            if (eError != null)
            {
                eError = new Exception("读取数据减配置表失败。" + eError.Message);
                return;
            }
            long precision3 = Convert.ToInt64(paraValue3);

            SysCommon.Gis.SysGisDataSet sysGisDataSet = new SysCommon.Gis.SysGisDataSet(dataCheckParaSet.Workspace);
            List <IDataset>             LstFeaClass   = sysGisDataSet.GetAllFeatureClass();

            if (LstFeaClass.Count == 0)
            {
                return;
            }

            //执行控制点注记检查
            PointAnnoCheck(Hook, LstFeaClass, mTable, codeName, serchRadiu3, precision3, out eError);
            if (eError != null)
            {
                eError = new Exception("控制点注记检查失败。" + eError.Message);
                return;
            }

            # region 获取所有数据集
            //SysCommon.Gis.SysGisDataSet sysGisDataSet = new SysCommon.Gis.SysGisDataSet(dataCheckParaSet.Workspace);
            //List<string> featureDatasetNames = sysGisDataSet.GetAllFeatureDatasetNames();
            //if (featureDatasetNames.Count == 0) return;
            //foreach (string name in featureDatasetNames)
            //{
            //    IFeatureDataset featureDataset = sysGisDataSet.GetFeatureDataset(name, out eError);
            //    if (eError != null) continue;


            //    //控制点注记检查,参数ID为29
            //    DataTable mTable = TopologyCheckClass.GetParaValueTable(featureDataset, pSysTable, 29, out eError);
            //    if (eError != null)
            //    {
            //        //SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
            //        return;
            //    }
            //    if (mTable.Rows.Count == 0)
            //    {
            //        continue;
            //    }
            //    //控制点注记检查搜索半径,参数ID为32
            //    string paraValue1 = TopologyCheckClass.GetParaValue(pSysTable, 32, out eError);
            //    if (eError != null)
            //    {
            //        eError=new Exception("读取数据减配置表失败。" + eError.Message);
            //        return;
            //    }
            //    double serchRadiu1 = Convert.ToDouble(paraValue1);
            //    //控制点注记检查精度控制,参数ID为35
            //    paraValue1 = TopologyCheckClass.GetParaValue(pSysTable, 35, out eError);
            //    if (eError != null)
            //    {
            //        eError = new Exception("读取数据减配置表失败。" + eError.Message);
            //        return;
            //    }
            //    long precision1 = Convert.ToInt64(paraValue1);
            //    //执行控制点注记检查
            //    PointAnnoCheck(Hook, featureDataset, mTable, codeName, serchRadiu1, precision1, out eError);
            //    if (eError != null)
            //    {
            //        eError = new Exception("控制点注记检查失败。" + eError.Message);
            //        return;
            //    }
            //}
            #endregion
        }
Beispiel #2
0
        public void OnDataCheck()
        {
            Exception eError = null;

            if (Hook == null)
            {
                return;
            }
            IArcgisDataCheckParaSet dataCheckParaSet = Hook.DataCheckParaSet as IArcgisDataCheckParaSet;

            if (dataCheckParaSet == null)
            {
                return;
            }
            if (dataCheckParaSet.Workspace == null)
            {
                return;
            }
            string path = dataCheckParaSet.Workspace.PathName;

            //实现代码
            SysCommon.DataBase.SysTable pSysTable = new SysCommon.DataBase.SysTable();
            pSysTable.DbConn    = dataCheckParaSet.DbConnPara;
            pSysTable.DBConType = SysCommon.enumDBConType.OLEDB;
            pSysTable.DBType    = SysCommon.enumDBType.ACCESS;

            DataTable mTable = TopologyCheckClass.GetParaValueTable(pSysTable, 2, out eError);

            if (eError != null)
            {
                //SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
                return;
            }
            if (mTable.Rows.Count == 0)
            {
                //SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未进行空值检查配置!");
                return;
            }

            SysCommon.Gis.SysGisDataSet sysGisDataSet = new SysCommon.Gis.SysGisDataSet(dataCheckParaSet.Workspace);
            List <IDataset>             LstFeaClass   = sysGisDataSet.GetAllFeatureClass();

            if (LstFeaClass.Count == 0)
            {
                return;
            }

            //执行空值检查
            IsNullCheck(Hook, LstFeaClass, mTable, path, out eError);
            if (eError != null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "空值检查失败。" + eError.Message);
                return;
            }

            #region
            ////获取所有数据集
            //SysCommon.Gis.SysGisDataSet sysGisDataSet = new SysCommon.Gis.SysGisDataSet(dataCheckParaSet.Workspace);
            //List<string> featureDatasetNames = sysGisDataSet.GetAllFeatureDatasetNames();
            //if (featureDatasetNames.Count == 0) return;
            //foreach (string name in featureDatasetNames)
            //{
            //    IFeatureDataset featureDataset = sysGisDataSet.GetFeatureDataset(name, out eError);
            //    if (eError != null) continue;


            //    //空值检查参数ID为2
            //    DataTable mTable = TopologyCheckClass.GetParaValueTable(featureDataset, pSysTable, 2, out eError);
            //    if (eError != null)
            //    {
            //        //SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
            //        return;
            //    }
            //    if (mTable.Rows.Count == 0)
            //    {
            //        continue;
            //    }
            //    //执行空值检查
            //    IsNullCheck(Hook, featureDataset, mTable, out eError);
            //    if (eError != null)
            //    {
            //        eError=new Exception("空值检查失败。" + eError.Message);
            //        return;
            //    }
            //}
            #endregion
        }