private void Init() { // 标准和方案 Dictionary <int, string> dicStandard = SysDbHelper.GetStandardInfo(); if (dicStandard == null) { MessageBoxApi.ShowWaringMessageBox("当前系统库中找不到质检标准,无法创建任务!"); this.Close(); this.DialogResult = DialogResult.Cancel; return; } Dictionary <int, string> .ValueCollection.Enumerator enName = dicStandard.Values.GetEnumerator(); while (enName.MoveNext()) { cmbStandard.Properties.Items.Add(enName.Current); } if (cmbStandard.Properties.Items.Count > 0) { cmbStandard.SelectedIndex = 0; } // 创建时间 dateTime.DateTime = DateTime.Now; }
private void Init() { // 标准和方案 Dictionary <int, string> dicStandard = SysDbHelper.GetStandardInfo(); if (dicStandard == null) { XtraMessageBox.Show("当前系统库中未建立标准", "HyDC 错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); return; } Dictionary <int, string> .Enumerator enStandard = dicStandard.GetEnumerator(); m_StandardIDList = new List <int>(); while (enStandard.MoveNext()) { cmbStandard.Properties.Items.Add(enStandard.Current.Value); m_StandardIDList.Add(enStandard.Current.Key); } if (cmbStandard.Properties.Items.Count > 0) { cmbStandard.SelectedIndex = 0; } //设置点击可以修改的列弹出的修改文本框的属性和订阅事件 m_RepTxtDatasource.TextEditStyle = TextEditStyles.DisableTextEditor; m_RepTxtDatasource.ButtonClick += new ButtonPressedEventHandler(m_RepTxtDatasource_ButtonClick); m_RepCmbTaskPath.TextEditStyle = TextEditStyles.DisableTextEditor; m_RepCmbTaskPath.ButtonClick += new ButtonPressedEventHandler(pRepTxtTaskPath_ButtonClick); m_RepCmbMapScale.Items.AddRange(m_MapScales);// new string[] {"1:500", "1:1000", "1:2000", "1:5000", "1:10000","1:25000", "1:50000" , "1:100000", "1:25000", "1:500000", "1:1000000"}); m_RepCmbMapScale.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; m_RepCmbMapScale.DisplayFormat.FormatString = "1:{0}"; m_RepCmbCheckType.Items.AddRange(new string[] { Text_CheckMode_CreateOnly, Text_CheckMode_CheckPartly, Text_CheckMode_CheckAll }); m_RepCmbMapScale.TextEditStyle = TextEditStyles.DisableTextEditor; //m_RepCmbMapScale.SelectedIndexChanged += new EventHandler(m_pRepComBox_Scale_SelectedIndexChanged); m_RepCmbCheckType.TextEditStyle = TextEditStyles.DisableTextEditor; m_RepCmbCheckType.CloseUp += new CloseUpEventHandler(m_pRepComBox_CheckType_CloseUp); // wpSourceSelect.AllowNext = false; }
/// <summary> /// 使用统一入口进行质检 /// </summary> /// <param name="dsTarget">可以是IWorkspace,IFeatureClass或ITable</param> /// <returns></returns> public DataTable Check(IDataset dsTarget) { // 数据导入 string strBaseName = "Base.gdb"; string strQueryDB = "Base.mdb"; bool ready = false; enumDataType baseDataType = enumDataType.FileGDB; SendCheckingMessage("正在进行数据导入…"); try { Clear(); if (dsTarget is IWorkspace) { ready = PrepareForWorkspace(dsTarget as IWorkspace, out strBaseName, out strQueryDB, out baseDataType); } else if (dsTarget is IFeatureClass) { ready = PrepareForFeatureClass(dsTarget, out strBaseName, out strQueryDB); baseDataType = enumDataType.PGDB; } else if (dsTarget is ITable) { ready = PrepareForTable(dsTarget, out strBaseName, out strQueryDB); baseDataType = enumDataType.PGDB; } if (!ready) { } // 开始准备检查 string strBaseFullName = string.Format("{0}\\{1}", TempPath, strBaseName); string strQueryFullName = string.Format("{0}\\{1}", TempPath, strQueryDB); IWorkspace wsBase = AEAccessFactory.OpenWorkspace(baseDataType, strBaseFullName); IWorkspace wsQuery = AEAccessFactory.OpenWorkspace(enumDataType.PGDB, strQueryFullName); IDbConnection queryConnection = AdoDbHelper.GetDbConnection(strQueryFullName); // 开始执行检查 Checker curChecker = new Checker(); curChecker.VerifyingRuleChanged += new DealingRuleChangedHandler(VerifyingRuleChanged); curChecker.VerifyedComplete += new VerifyedCompleteHandler(VerifyedComplete); curChecker.PretreatingRuleChanged += new DealingRuleChangedHandler(PretreatingRuleChanged); curChecker.PretreatComplete += new CheckEventHandler(PretreatComplete); curChecker.CheckingRuleChanged += new DealingRuleChangedHandler(CheckingRuleChanged); curChecker.CheckComplete += new CheckEventHandler(CheckComplete); curChecker.RuleChecked += new RuleCheckedHandler(RuleChecked); curChecker.TopoRuleCheckBegin += new CheckEventHandler(TopoRuleCheckBegin); curChecker.BaseWorkspace = wsBase; curChecker.QueryWorkspace = wsQuery; curChecker.QueryConnection = queryConnection; curChecker.ResultPath = TempPath; // 如果没有设置SchemaID,获取第一个 // 如果没有设置RuleInfo列表,获取所有 if (string.IsNullOrEmpty(this.SchemaID)) { Dictionary <int, string> dictStandard = SysDbHelper.GetStandardInfo(); if (dictStandard == null || dictStandard.Count == 0) { return(null); } Dictionary <string, string> dictSchema = SysDbHelper.GetSchemasInfo(dictStandard.ElementAt(0).Value); if (dictSchema == null || dictSchema.Count == 0) { return(null); } this.SchemaID = dictSchema.ElementAt(0).Key; } if (this.RuleInfos == null) { TemplateRules templateRule = new TemplateRules(this.SchemaID); this.RuleInfos = templateRule.CurrentSchemaRules; } curChecker.RuleInfos = this.RuleInfos; curChecker.SchemaID = this.SchemaID; curChecker.TopoDBPath = TempPath; curChecker.TopoTolerance = this.TopoTolerence; COMMONCONST.TOPOTOLORANCE = this.TopoTolerence; COMMONCONST.dAreaThread = this.MapScale * 0.04; COMMONCONST.dLengthThread = this.MapScale * 0.2 / 10000; //SendCheckBeginEvent(curChecker); curChecker.Check(); // 检查 // 获取结果 string strResultFullName = string.Format("{0}\\{1}", TempPath, "Result.mdb"); IDbConnection resultConnection = AdoDbHelper.GetDbConnection(strResultFullName); return(GetErrors(resultConnection)); } catch { return(null); } finally { GC.Collect(); //Clear(); } }