//Получение диапазона клона public void ClearSignals() { ProviderSignals.Clear(); _reportParams.Clear(); _signalsDic.Clear(); _intervalTypes.Clear(); }
//Очистить списки модулей и соединений public void ClearModules() { _modules.Clear(); _connects.Clear(); _sources.Clear(); _receivers.Clear(); }
//Очистка списка сигналов public override void ClearSignals() { base.ClearSignals(); _readingSignals.Clear(); InitialSignals.Clear(); CalcSignals.Clear(); }
public void Complex() { var dic = new DicS <int>(1000); dic.Clear(); Assert.AreEqual(0, dic.Count); dic.Add("First", 1); dic.Add("Second", 2); Assert.AreEqual(2, dic.Count); Assert.AreEqual(1, dic["first"]); Assert.AreEqual(1, dic.Get("FIRST")); Assert.AreEqual(2, dic["Second"]); var dicAdd = new DicS <int>(); dicAdd.Add("second", 22); dicAdd.Add("third", 33); dic.AddDic(dicAdd); Assert.AreEqual(3, dic.Count); Assert.IsTrue(dic.ContainsKey("THIRD")); Assert.IsTrue(dic.ContainsKey("Second")); Assert.AreEqual(56, dic.Values.Sum()); dic.AddDic(dicAdd); Assert.AreEqual(3, dic.Count); Assert.AreEqual(1, dic["first"]); Assert.AreEqual(22, dic["second"]); Assert.AreEqual(33, dic["third"]); dic.Remove((k, v) => v == 33 || k.ToLower() == "second"); Assert.AreEqual(1, dic.Count); Assert.IsTrue(dic.ContainsKey("First")); Assert.IsFalse(dic.ContainsKey("Second")); }
//Очистить список сигналов public void ClearSignals() { ProviderSignals.Clear(); _objects.Clear(); _totals.Clear(); _objectsId.Clear(); _totalsId.Clear(); }
//Очистка списка объектов protected override void ClearOuts() { Outs.Clear(); OutsId.Clear(); Outs2.Clear(); OutsId2.Clear(); OperatorOut = null; }
//Чтение списка сигналов private void ReadSignals() { AddEvent("Чтение списка сигналов"); SignalsReceivers.Clear(); if (ThreadCalc.IsReadSources) { SignalsSources.Clear(); _signalsCodes.Clear(); } using (var rec = new ReaderAdo(File, "SELECT * FROM SignalsInUse")) { int i = 0, n = rec.RecordCount("SELECT Count(*) FROM SignalsInUse"); while (rec.Read()) { var sig = new CalcUnit(rec, this, true); if (IsError) { return; } if (ThreadCalc.IsReadSources && !sig.SourceName.IsEmpty()) { _signalsCodes.Add(sig.FullCode, sig.DataType); SignalsSources.Add(sig.FullCode, sig); if (sig.CodeObject != null)//null для сигналов ручного ввода { if (!Objects.ContainsKey(sig.CodeObject)) { Objects.Add(sig.CodeObject, new CalcObject(sig.CodeObject)); } var ob = Objects[sig.CodeObject]; ob.Signals.Add(sig.CodeSignal, sig); sig.Object = ob; if (sig.Default) { ob.DefaultSignal = sig; } } } if (ThreadCalc.IsWriteReceivers && !sig.ReceiverName.IsEmpty()) { SignalsReceivers.Add(sig.FullCode, sig); } if (++i % 50 == 0) { Procent = i * 100.0 / n; } } } }
public void Simple() { var dic = new DicS <string>(); Assert.AreEqual(0, dic.Count); dic.Add("a", "sa"); dic.Add("B", "sB"); Assert.IsTrue(dic.ContainsKey("a")); Assert.IsTrue(dic.ContainsKey("b")); Assert.AreEqual("sa", dic["a"]); Assert.AreEqual("sB", dic["B"]); Assert.AreEqual("sa", dic.Get("A")); Assert.AreEqual("sB", dic.Get("b", "h")); Assert.IsNull(dic["c"]); Assert.AreEqual("h", dic.Get("c", "h")); Assert.AreEqual(2, dic.Count); dic.Add("b", "gghsdauh"); Assert.AreEqual(2, dic.Count); Assert.AreEqual("sB", dic["B"]); dic["b"] = "gg"; Assert.AreEqual(2, dic.Count); Assert.AreEqual("gg", dic["B"]); dic.Add("c", "SC"); Assert.IsTrue(dic.ContainsKey("C")); Assert.AreEqual(3, dic.Count); dic.Add("b", "ssb", true); Assert.IsTrue(dic.ContainsKey("b")); Assert.IsTrue(dic.ContainsKey("c")); Assert.AreEqual("ssb", dic["b"]); Assert.IsTrue(dic.Keys.Contains("B")); Assert.IsTrue(dic.Values.Contains("ssb")); dic.Remove("C"); Assert.AreEqual(2, dic.Count); Assert.IsFalse(dic.ContainsKey("c")); Assert.IsNull(dic["c"]); Assert.AreEqual("def", dic.Get("C", "def")); Assert.IsFalse(dic.Remove("C")); Assert.IsFalse(dic.ContainsKey("c")); Assert.AreEqual("def", dic.Get("C", "def")); Assert.IsFalse(dic.ContainsKey(null)); dic.Clear(); Assert.AreEqual(0, dic.Count); Assert.IsNull(dic["a"]); Assert.IsFalse(dic.ContainsKey("c")); Assert.IsFalse(dic.ContainsKey("a")); }
//Чтение списка колонок private void ReadColumnsList() { try { _columnsParams.Clear(); _columnsVed.Clear(); using (var rec = new RecDao(_project.File, "SELECT * FROM VedColumns " + (_allTasks ? "" : ("WHERE Task='" + _task + "'")) + " ORDER BY ColumnNum")) { while (rec.Read()) { var col = new VedColumn(rec); _columns.Add(col); if (col.SourceType == ColumnSourceType.ParamChar || col.SourceType == ColumnSourceType.SignalChar || col.SourceType == ColumnSourceType.ResultValue) { _columnsParams.Add(col.Code, col); } if ((col.SourceType == ColumnSourceType.ParamValue || col.SourceType == ColumnSourceType.SubValue) && (col.LinVedView != VedView.None || col.GroupVedView != VedView.None)) { _columnsVed.Add(col.Code, col); } } if (!_task.IsEmpty()) { using (var rect = new RecDao(rec.DaoDb, "SELECT Tasks.TaskDescription, Tasks.TaskTag FROM Tasks WHERE Task='" + _task + "'")) if (rect.HasRows()) { _taskDescription = rect.GetString("TaskDescription"); _taskTag = rect.GetString("TaskTag"); } } } } catch (Exception ex) { AddError("Ошибка загрузки списка колонок", ex, "", _project.Code); } }
//Очистка списка выходов protected override void ClearOuts() { Outs.Clear(); OutsId.Clear(); }
private void butOK_Click(object sender, EventArgs e) { using (_book.StartAtom("Сохранение настроек")) { _book.AddEvent("Сохранение настроек отчета"); if (CodeReport.Text.IsEmpty()) { Different.MessageError("Код отчета должен быть заполнен"); return; } int res; bool er = (!MonthLength.Text.IsEmpty() && (!int.TryParse(MonthLength.Text, out res) || res < 0)); er |= (!DayLength.Text.IsEmpty() && (!int.TryParse(DayLength.Text, out res) || res < 0)); er |= (!HourLength.Text.IsEmpty() && (!int.TryParse(HourLength.Text, out res) || res < 0)); er |= (!MinuteLength.Text.IsEmpty() && (!int.TryParse(MinuteLength.Text, out res) || res < 0)); er |= (!DayStart.Text.IsEmpty() && (!int.TryParse(DayStart.Text, out res) || res < 0)); er |= (!HourStart.Text.IsEmpty() && (!int.TryParse(HourStart.Text, out res) || res < 0)); er |= (!MinuteLength.Text.IsEmpty() && (!int.TryParse(MinuteLength.Text, out res) || res < 0)); if (er) { Different.MessageError("Указана недопустимая длительность или начало интеравала"); return; } var sys = _book.SysPage; bool isInternal = false; try { sys.PutValue("Report", CodeReport.Text); sys.PutValue("ReportName", NameReport.Text); sys.PutValue("ReportDescription", DescriptionReport.Text); sys.PutControl(MonthLength); sys.PutControl(DayLength); sys.PutControl(HourLength); sys.PutControl(MinuteLength); sys.PutControl(DayStart); sys.PutControl(HourStart); sys.PutControl(MinuteStart); sys.PutValue("DifferentLength", radioDifferent.Checked ? "True" : (radioLess.Checked ? "Less" : "Equals")); if (radioNow.Checked) { sys.PutValue("DefaultPeriod", "Now"); } if (radioPrevious.Checked) { sys.PutValue("DefaultPeriod", "Previous"); } sys.PutValue("DifferentBegin", DifferentBegin.Checked); sys.PutValue("DefaultCalcName", CalcName.Text); sys.PutValue("AllowProjectsRepetitions", AllowProjectsRepetitions.Checked); var list = new List <ReportProjectSetup>(); foreach (DataGridViewRow r in Projects.Rows) { if (!r.IsNewRow) { try { var cmode = r.Get("ProjectCalcMode").ToCalcModeType(); isInternal |= cmode == CalcModeType.Internal; list.Add(new ReportProjectSetup(r.Get("Project"), AllowProjectsRepetitions.Checked ? r.Get("ProjectCode2") : null, cmode)); } catch { } } } sys.PutProjects(list); } catch (Exception ex) { GeneralRep.ShowError("Текущий файл не является файлом отчета InfoTask или был поврежден", ex); } try { tabMain.Select(); } catch {} _codes.Clear(); _infs.Clear(); foreach (DataGridViewRow row in Providers.Rows) { string name = row.Get("ProviderName"); _codes.Add(name, row.Get("ProviderCode")); _infs.Add(name, row.Get("ProviderInf")); } int tid; if (!int.TryParse(ThreadId.Text, out tid)) { tid = 0; } if (isInternal) { try { _book.AddEvent("Сохранение настроек в ControllerData"); using (var db = new DaoDb(General.ControllerFile)) { using (var rec = new RecDao(db, "SELECT * FROM Threads WHERE ThreadId=" + tid)) { if (!rec.HasRows()) { rec.AddNew(); } rec.Put("ApplicationType", "Excel"); rec.Put("IsImit", IsImit.Checked); rec.Put("ImitMode", ImitMode.Text); tid = rec.GetInt("ThreadId"); } db.Execute("DELETE * FROM Providers WHERE ThreadId=" + tid); db.Execute("DELETE * FROM Projects WHERE ThreadId=" + tid); using (var rec = new RecDao(db, "Projects")) using (var recc = new RecDao(db, "Providers")) { foreach (DataGridViewRow row in Projects.Rows) { if (!row.IsNewRow && row.Get("ProjectCalcMode").ToCalcModeType() == CalcModeType.Internal) { rec.AddNew(); rec.Put("ThreadId", tid); rec.PutFromDataGrid("Project", row); rec.PutFromDataGrid("ProjectFile", row); } } foreach (DataGridViewRow row in Providers.Rows) { if (row.Get("TypeProvider") != "Архив" || row.Get("ProviderName") == "CalcArchive" || (row.Get("ProviderName") == "Report_Archive" && UseOneArchive.Checked)) { recc.AddNew(); recc.Put("ThreadId", tid); recc.PutFromDataGrid("ProviderType", row, "TypeProvider"); recc.PutFromDataGrid("ProviderCode", row); if (row.Get("ProviderName") != "Report_Archive") { recc.PutFromDataGrid("ProviderName", row); } else { recc.Put("ProviderName", "CalcArchive"); } recc.PutFromDataGrid("ProviderInf", row); recc.Update(); } } } } } catch (Exception ex) { GeneralRep.ShowError("Неправильный файл ControllerData.accdb", ex); return; } } _book.AddEvent("Сохранение настроек в ReporterData"); try //Настройки отчета в ReporterData { using (var db = new DaoDb(General.ReporterFile)) { using (var rec = new RecDao(db, "SELECT * FROM Reports WHERE Report = '" + CodeReport.Text + "'")) { if (!rec.HasRows()) { rec.AddNew(); } rec.Put("Report", CodeReport.Text); rec.Put("ReportName", NameReport.Text); rec.Put("ReportDescription", DescriptionReport.Text); rec.Put("ReportFile", GeneralRep.Application.ActiveWorkbook.FullName); rec.Put("ThreadId", isInternal ? tid : 0); rec.Put("UseOneArchive", UseOneArchive.Checked); rec.Put("CodeArchive", _codes["Report_Archive"]); rec.Put("InfArchive", _infs["Report_Archive"]); string s = "FormTo=" + (FormToTemplate.Checked ? "Template" : (FormToDir.Checked ? "Dir" : "File")) + ";"; s += "ResultDir=" + ResultDir.Text + ";"; s += "ResultFileName=" + ResultFileName.Text + ";"; s += "ResultFile=" + ResultFile.Text + ";"; s += "AddDateToName=" + (AddDateToName.Checked ? "True" : "False") + ";"; var df = DateNameFormat.Text; if (AddDateToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*"))) { Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]"); return; } s += "DateNameFormat=" + df + ";"; s += "AddBeginToName=" + (AddBeginToName.Checked ? "True" : "False") + ";"; df = BeginNameFormat.Text; if (AddBeginToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*"))) { Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]"); return; } s += "BeginNameFormat=" + df + ";"; s += "AddEndToName=" + (AddEndToName.Checked ? "True" : "False") + ";"; df = EndNameFormat.Text; if (AddEndToName.Checked && (df.Contains(":") || df.Contains(@"\") || df.Contains(@"/") || df.Contains("[") || df.Contains("]") || df.Contains("*"))) { Different.MessageError(@"Указан недопустимый формат даты для имени файла или листа. Имя не должно содержать символов / \ : * [ ]"); return; } s += "EndNameFormat=" + df + ";"; s += "AddCalcNameToName=" + (AddCalcNameToName.Checked ? "True" : "False") + ";"; s += "AddSheetToName=" + (AddSheetToName.Checked ? "True" : "False") + ";"; s += "SetFocusToFormed=" + (SetFocusToFormed.Checked ? "True" : "False") + ";"; rec.Put("FormInf", s); rec.Put("ServerReport", ServerReport.Text); if (!ServerReport.Text.IsEmpty()) { var file = new FileInfo(ServerReport.Text); if (!file.Exists || file.Extension != ".xlsx") { Different.MessageError("Указанный файл контрольного экземпляра не существует или не является файлом Excel, " + ServerReport.Text); } else if (ServerReport.Text == _book.Workbook.FullName) { Different.MessageError("Файл контрольного бланка расчета не должен совпадать с файлом бланка отчета, " + ServerReport.Text); } } int rid = rec.GetInt("ReportId"); rec.Update(); db.Execute("DELETE * FROM Projects WHERE ReportId=" + rid); using (var recp = new RecDao(db, "Projects")) foreach (DataGridViewRow r in Projects.Rows) { if (!r.IsNewRow) { recp.AddNew(); recp.Put("ReportId", rid); recp.PutFromDataGrid("Project", r); if (AllowProjectsRepetitions.Checked) { recp.PutFromDataGrid("ProjectCode2", r); } recp.PutFromDataGrid("ProjectName", r); recp.PutFromDataGrid("ProjectFile", r); if (UseOneArchive.Checked) { recp.Put("CodeArchive", _codes["Report_Archive"]); recp.Put("InfArchive", _infs["Report_Archive"]); } else if (r.Get("ProjectCalcMode").ToCalcModeType() == CalcModeType.Internal) { recp.Put("CodeArchive", _codes["CalcArchive"]); recp.Put("InfArchive", _infs["CalcArchive"]); } else { var proj = r.Get("Project"); if (AllowProjectsRepetitions.Checked && !r.Get("ProjectCode2").IsEmpty()) { proj = r.Get("ProjectCode2"); } proj += "_Archive"; recp.Put("CodeArchive", _codes[proj]); recp.Put("InfArchive", _infs[proj]); } } } } } } catch (Exception ex) { GeneralRep.ShowError("Неправильный файл ReporterData.accdb", ex); } _book.ClearReportDataFromMemory(); CheckProviders(); Close(); } }
//Очистка списка сигналов public override void ClearSignals() { base.ClearSignals(); _receiverSignals.Clear(); }
//Удалить все сигналы public void ClearSignals() { _signals.Clear(); _objectsId.Clear(); _objectsParts.Clear(); }
//Очистить список модулей public void ClearModules() { _modules.Clear(); }
//Очистка списка объектов protected internal override void ClearOuts() { ObjectsId.Clear(); Objects.Clear(); ObjectsList.Clear(); }
//Очистка списка выходов protected internal override void ClearOuts() { _outs.Clear(); }
//Проверка таблицы сигналов public string CheckSignals(bool onlyInUse = false) { StartAtom(Atom.CheckSignals); CountsToZero(); var objectsId = new DicI <ObjectSignal>(); var signals = new DicS <Signal>(); _objects.Clear(); try { if (State == State.Closed) { AddError("Копилятор уже был закрыт"); } else if (State == State.Empty) { AddError("Проект не загружен"); } else { //using (var reco = new RecDao(_projectFile, "SELECT CodeObject, NameObject, TagObject, ObjectId, CommName, ErrMess FROM Objects ORDER BY ObjectId")) using (var reco = new RecDao(_objectsFile, "SELECT CodeObject, NameObject, TagObject, ObjectId, CommName, ErrMess FROM Objects ORDER BY ObjectId")) //ab\ { Procent = 10; while (reco.Read()) { var ob = new ObjectSignal(reco, true); objectsId.Add(ob.Id, ob); if (!_objects.ContainsKey(ob.Code)) { _objects.Add(ob.Code, ob); } else { ob.ErrMess += "Повтор кода объекта (" + ob.Code + "); "; reco.Put("ErrMess", ob.ErrMess); _objects[ob.Code].ErrMess += "Повтор кода объекта (" + ob.Code + "); "; } } Procent = 25; using (var recs = new RecDao(reco.DaoDb, "SELECT ObjectId, Signals.Default, CodeSignal, NameSignal, Units, Signals.DataType, ConstValue, Signals.SourceName, Signals.ReceiverName, Signals.Inf, Signals.FullCode AS FullCode, Signals.ErrMess" + (!onlyInUse ? "" : ", SignalsInUse.FullCode AS FullCodeInUse") + " FROM Signals" + (!onlyInUse ? "" : " LEFT JOIN SignalsInUse ON Signals.FullCode=SignalsInUse.FullCode "))) { Procent = 35; while (recs.Read()) { var sig = new Signal(recs, objectsId, true); if (onlyInUse) { sig.InUse = !recs.GetString("FullCodeInUse").IsEmpty(); } objectsId[sig.ObjectId].InUse |= sig.InUse; if (signals.ContainsKey(sig.FullCode)) { sig.ErrMess += "Повтор полного кода сигнала (" + sig.FullCode + "); "; } else { signals.Add(sig.FullCode, sig); } if (sig.ErrMess != "") { recs.Put("ErrMess", sig.ErrMess, true); if (sig.InUse || !onlyInUse) { SignalsErrorsCount++; } objectsId[sig.ObjectId].ErrorInSignals = true; } } } Procent = 80; reco.MoveFirst(); while (!reco.EOF) { var ob = objectsId[reco.GetInt("ObjectId")]; if (ob.DefalutsCount == 0) { ob.ErrMess += "Объект не содержит сигналов по умолчанию; "; } if (ob.DefalutsCount >= 2) { ob.ErrMess += "Объект содержит более одного сигнала по умолчанию; "; } if (ob.ErrorInSignals) { ob.ErrMess += "Ошибки в сигналах; "; } if (ob.ErrMess != "") { reco.Put("ErrMess", ob.ErrMess); if (!onlyInUse || ob.InUse) { ObjectsErrorsCount++; } } reco.MoveNext(); } } } } catch (Exception ex) { return(ex.MessageError("Ошибка при проверке сигналов")); } return(FinishAtom(State.Project, State.Project, "Проект: " + _code + "; Объектов с ошибками: " + ObjectsErrorsCount + "; Сигналов с ошибками: " + SignalsErrorsCount)); }
//Очистить список сигналов public void ClearSignals() { lock (ValuesLocker) Signals.Clear(); }