//Конструктор, на входе рекордсет с таблицей Functions public FunClass(IRecordRead rec) { Name = rec.GetString("Name"); Synonym = rec.GetString("Synonym"); Code = rec.GetString("Code") ?? (Synonym ?? Name).ToLower(); Type = rec.GetString("CodeType"); }
//Конструктор, на входе рекордсет с таблицей Functions internal FunCompile(IRecordRead rec) { Name = rec.GetString("Name"); Synonym = rec.GetString("Synonym"); Code = (rec.GetString("Code") ?? (Synonym ?? Name)).ToLower(); Id = rec.GetInt("Id"); }
protected BaseObject(IRecordRead rec) { Id = rec.GetInt("ObjectId"); Code = rec.GetString("CodeObject"); Name = rec.GetString("NameObject"); InfObject = rec.GetString("InfObject"); }
//Изменяет элемент в GroupReports из рекордсета, id - ключ элемента, если элемента нет, то элемент добавляется public ListViewItem EditItem(IRecordRead rec, int id = 0) { int key = id == 0 ? rec.GetInt("GroupId") : id; var code = rec.GetString("GroupCode"); var sid = key.ToString(); ListViewItem item = null; if (id == 0) { item = GroupReports.Items.Add(sid, code, null); } else { foreach (ListViewItem it in GroupReports.Items) { if ((int)it.Tag == key) { item = it; } } } item.SubItems.Clear(); item.Tag = key; item.Text = code; item.SubItems.Add(rec.GetString("GroupName")); return(item); }
public TablikCalcParam(TablikModule module, IRecordRead rec, bool isSubParam, bool isGenerated) : base(rec, isSubParam) { Module = module; Keeper = new TablikKeeper(this); IsGenerated = isGenerated; if (!Code.IsCorrectCode()) { ErrMess += "Указан недопустимый код расчетного параметра; "; IsFatalError = true; } CalcOn = rec.GetBool("CalcOn"); UserExpr1 = rec.GetString("UserExpr1", ""); if (UserExpr1 == "") { ErrMess += "Не заполнено расчетное выражение; "; IsFatalError = true; } UserExpr2 = rec.GetString("UserExpr2", ""); if (UserExpr2 == "") { ErrMess += "Не заполнено управляющее выражение; "; IsFatalError = true; } InputsStr = rec.GetString("Inputs"); JoinToParamTree(); }
//Создание провайдера архива protected void LoadArchive(IRecordRead rec, Logger logger) { try { if (!rec.GetString("CodeArchive").IsEmpty() && !rec.GetString("InfArchive").IsEmpty()) { Archive = (IArchive)General.RunProvider(rec.GetString("CodeArchive"), CodeFinal + "_Archive", rec.GetString("InfArchive"), logger, ProviderSetupType.ReporterArchive); } if (Archive == null || !Archive.Check()) { if (this is ReportProject) { Book.AddError("Не удалось соединиться с архивом. Следует проверить настройки", null, CodeFinal + "_Archive"); } Archive.Dispose(); Archive = null; } } catch (Exception ex) { if (this is ReportProject) { Book.AddError("Не удалось соединиться с архивом. Следует проверить настройки", ex, CodeFinal + "_Archive"); } Archive = null; } }
public void LoadEdited(IRecordRead rec) { Units = rec.GetString("Units"); Min = rec.GetDouble("Min"); Max = rec.GetDouble("Max"); ObjectCode = rec.GetString("ObjectCode"); }
//rec - рекордсет таблицы Objects, checkErrors: true - проверка сигналов, false - сигналы для компиляции public ObjectSignal(IRecordRead rec, bool checkErrors) { Id = rec.GetInt("ObjectId"); Code = rec.GetString("CodeObject"); Name = rec.GetString("NameObject"); Tag = rec.GetString("TagObject"); if (checkErrors) { ErrMess = ""; if (Id <= 0) { ErrMess += "Не заполнен идентификатор (ObjectId); "; } if (Code.IsEmpty()) { ErrMess += "Не заполнен код (CodeObject); "; } if (rec.GetString("CommName").IsEmpty()) { ErrMess += "Не заполнено имя коммуникатора (CommName); "; } DefalutsCount = 0; ErrorInSignals = false; } }
public ArchiveReport(IRecordRead rec) { Code = rec.GetString("Report"); Name = rec.GetString("ReportName"); Type = rec.GetString("ReportType").ToReportType(); SourceChange = rec.GetTime("SourceChahge"); Id = rec.GetInt("ReportId"); }
public BaseTablikSignal(TablikConnect connect, IRecordRead rec) { Code = rec.GetString("CodeSignal"); Name = rec.GetString("NameSignal"); DataType = rec.GetString("DataType").ToDataType(); Connect = connect; Simple = new SimpleType(DataType); }
protected ReportObject(IRecordRead rec) { ParamId = rec.GetInt("ParamId"); Page = rec.GetString("Page"); LinkField = rec.GetString("LinkField").ToLinkField(); LinkType = rec.GetString("LinkType").ToLinkType(); IntervalType = rec.GetString("IntervalType").ToIntervalType(); Properties = rec.GetString("Properties").ToPropertyDicS(); }
public ThreadController(IRecordRead rec) { using (var c = Start()) { Id = rec.GetInt("ThreadId"); ThreadName = Id.ToString(); ApplicationType = ApplicationType.Controller; OpenHistory(General.ControllerDir + @"History\History" + Id + ".accdb", General.HistryTemplateFile, true); PrepareResultFile(); using (StartAtom(Atom.OpenThread)) { try { AddEvent("Чтение списка функций"); ReadFunctions(); AddEvent("Чтение свойств потока"); Comment = rec.GetString("Comment"); IsPeriodic = rec.GetBool("IsPeriodic"); CalcType = IsPeriodic ? "Периодический" : "Разовый"; PeriodLength = rec.GetDouble("PeriodLength", 15); SourcesLate = rec.GetDouble("SourcesLate", 2); RushWaitingTime = rec.GetDouble("RushWaitingTime"); TimeAfterError = rec.GetDouble("TimeAfterError", 5); IsImit = rec.GetBool("IsImit"); ImitModeStr = rec.GetString("ImitMode"); using (var sys = new SysTabl(ResultFile)) { PeriodBegin = sys.SubValue("PeriodInfo", "PeriodBegin").ToDateTime(); PeriodEnd = sys.SubValue("PeriodInfo", "PeriodEnd").ToDateTime(); CalcName = sys.SubValue("PeriodInfo", "CalcName"); StartMoment = sys.SubValue("PeriodInfo", "StartMoment").ToDateTime(); StartTime = sys.SubValue("PeriodInfo", "StartTime").ToDateTime(); StopTime = sys.SubValue("PeriodInfo", "StopTime").ToDateTime(); IsStopTime = sys.SubValue("PeriodInfo", "IsStopTime") == "True"; _lastErrorText = sys.SubValue("LastErrorInfo", "ErrorText"); _lastErrorTime = sys.SubValue("LastErrorInfo", "ErrorPeriodBegin").ToDateTime(); _lastErrorPos = 0; UpdateTablo(); } _state = State.Stopped; } catch (Exception ex) { AddError("Ошибка загрузки потока", ex); } } StartAtom(Atom.ReadSetup, ReadSetup); IsClosed = false; if (c.IsError) { Different.MessageError("Ошибка загрузки данных потока расчета. " + c.ErrorMessage()); } } }
public Provider(IRecordRead rec, ThreadCalc thread) { ThreadCalc = thread; Type = rec.GetString("ProviderType"); ProviderType = Type.ToProviderType(); CanBeNotOtm = !ProviderType.IsProviderSource(); Name = rec.GetString("ProviderName"); Code = rec.GetString("ProviderCode"); Inf = rec.GetString("ProviderInf"); Otm = true; }
public CalcParamArchive(IRecordRead rec, Project project) { FirstParam = project.CalcParamsId[rec.GetInt("CalcParamId")]; int sid = rec.GetInt("CalcSubParamId"); LastParam = project.CalcSubParamsId[sid]; DataType = rec.GetString("DataType").ToDataType(); ArchiveParam = new ArchiveParam(rec.GetString("FullCode"), DataType, rec.GetString("Units"), FirstParam, LastParam, rec.GetString("SuperProcessType").ToSuperProcess(), rec.GetInt("DecPlaces", -1), rec.GetDoubleNull("Min"), rec.GetDoubleNull("Max")); //ab 12.04.2019 в Min и Max было rec.GetDouble _saveAbsolute = ArchiveParam.SuperProcess.IsAbsolute(); _savePeriodic = ArchiveParam.SuperProcess.IsPeriodic(); }
public GridError(IRecordRead rec) { Id = rec.GetInt("Id"); Description = rec.GetString("Description"); Params = rec.GetString("Params"); Time = rec.GetTime("Time").ToString(); _command = rec.GetString("Command"); _context = rec.GetString("Context"); Command = _command + "\n" + _context; _periodBegin = rec.GetTimeNull("PeriodBegin"); _periodEnd = rec.GetTimeNull("PeriodEnd"); Period = _periodEnd == null ? null : (_periodBegin + "\n" + _periodEnd); }
//Конструктор, на входе рекордсет с таблицей FunctionsOverloads public FunOverload(IRecordRead reco, FunClass funClass) { Owner = funClass; Number = reco.GetInt("RunNumber"); IsCombined = reco.GetBool("IsCombined"); for (int i = 1; i <= 9; ++i) { var t = reco.GetString("Operand" + i); if (t.IsEmpty()) { break; } Inputs.Add(new FunParam(TypeFromString(t), reco.GetString("Default" + i))); } for (int i = 1; i <= 2; ++i) { var t = reco.GetString("More" + i); if (t.IsEmpty()) { break; } InputsMore.Add(new FunParam(TypeFromString(t))); } var s = reco.GetString("Result"); if (!IsCombined) { Result = TypeFromString(s); } else { var p = s.Split('+'); foreach (string c in p) { if (c == "M1") { InputsMore[0].FormResult = true; } else if (c == "M2") { InputsMore[1].FormResult = true; } else { Inputs[int.Parse(c) - 1].FormResult = true; } } } }
//Чтение значений по одному выходу из рекордсета источника //Возвращает количество сформированных значений protected override int ReadMoments(IRecordRead rec) { int dn = Source is KosmotronikaRetroSource ? 1 : 0; int nwrite = 0; DateTime time = rec.GetTime(2 + dn); var isAnalog = ((KosmotronikaBaseSource)Source).IsAnalog; int ndint = rec.GetInt(isAnalog ? 5 + dn : 7 + dn); var err = MakeError(ndint); nwrite += AddMom(PokSignal, time, rec.GetInt(4 + dn), err); nwrite += AddMom(StateSignal, time, ndint); if (isAnalog) { nwrite += AddMom(ValueSignal, time, rec.GetDouble(7 + dn), err); } else { var strValue = rec.GetString(8 + dn); if (strValue.IndexOf("0x", StringComparison.Ordinal) >= 0) { nwrite += AddMom(ValueSignal, time, Convert.ToUInt32(strValue, 16), err); } else { nwrite += AddMom(ValueSignal, time, Convert.ToDouble(strValue), err); } } return(nwrite); }
//Если провайдер позволяет, чтение из таблицы архива public ArchiveInterval(IRecordRead rec, IntervalType type) : base(rec) { Type = type; Name = rec.GetString("IntervalName"); Id = rec.GetInt("IntervalId"); TimeChange = rec.GetTime("TimeChange"); }
public Prev(IRecordRead rec, Project project) { _project = project; Code = rec.GetString("FullCode"); _calcParamArchive = _project.ArchiveParams[Code]; var ap = _calcParamArchive.ArchiveParam; var listLast = new List <IntervalType>(); IsPrevAbs = rec.GetBool("PrevAbs"); IsLastBase = rec.GetBool("LastBase"); IsLastHour = rec.GetBool("LastHour"); IsLastDay = rec.GetBool("LastDay"); IsManyBase = rec.GetBool("ManyBase"); IsManyHour = rec.GetBool("ManyHour"); IsManyDay = rec.GetBool("ManyDay"); IsManyMoments = rec.GetBool("ManyMoments"); if (IsLastBase) { listLast.Add(IntervalType.Base); } if (IsLastHour) { listLast.Add(IntervalType.Hour); } if (IsLastDay) { listLast.Add(IntervalType.Day); } if (listLast.Count > 0) { LastReportParam = new ArchiveReportParam(ap.FullCode, project.Code, ap.DataType, ap.SuperProcess, ap.FirstParam.CalcParamType, listLast); } var listMany = new List <IntervalType>(); if (IsManyBase) { listMany.Add(IntervalType.Base); ManyBase = new List <Moment>(); } if (IsManyHour) { listMany.Add(IntervalType.Hour); ManyHour = new List <Moment>(); } if (IsManyDay) { listMany.Add(IntervalType.Day); ManyDay = new List <Moment>(); } if (IsManyMoments) { listMany.Add(IntervalType.Moments); ManyMoments = new List <Moment>(); } if (listMany.Count > 0) { ManyReportParam = new ArchiveReportParam(ap.FullCode, project.Code, ap.DataType, ap.SuperProcess, ap.FirstParam.CalcParamType, listMany); } }
public CalcParam(CalcModule module, IRecordRead rec, bool isSubParam) : base(rec, isSubParam) { Module = module; CompiledExpr = rec.GetString("CompiledExpr"); Keeper = new CalcKeeper(this); }
//Загрузка из файла данных public ReportParam(IRecordRead rec) { ArchiveParam = new ArchiveParam(rec); Project = rec.GetString("Project"); Id = rec.GetInt("ParamId"); FromArchive = rec.GetBool("FromArchive"); FromProject = rec.GetBool("FromProject"); }
//Загрузка из рекордсета ReporterData или файла данных отчета public ReportProjectBase(ReportBook book, IRecordRead rec) { Book = book; Code = rec.GetString("Project"); Code2 = rec.GetString("ProjectCode2"); Name = rec.GetString("ProjectName"); var prs = book.SysPage.GetProjects(); if (prs.ContainsKey(CodeFinal)) { CalcMode = prs[CodeFinal].CalcMode; } File = rec.GetString("ProjectFile"); if (!DbVersion.IsProject(File)) { File = null; } }
protected int AddMomString(SourceSignal sig, DateTime time, IRecordRead rec, string field, MomErr err = null) { if (sig == null) { return(0); } sig.BufMom.String = rec.GetString(field); return(sig.AddMom(time, err)); }
public BaseSignal(IRecordRead rec) { Code = rec.GetString("CodeSignal"); Name = rec.GetString("NameSignal"); DataType = rec.GetString("DataType").ToDataType(); InfOut = rec.GetString("InfOut"); InfProp = rec.GetString("InfProp"); SignalType = rec.GetString("SignalType"); InitialSignals = rec.GetString("InitialSignals"); Formula = rec.GetString("Formula"); }
public Grafic(IRecordRead recg, ThreadCalc thread) : base(recg.GetInt("Dimension"), 0) { Code = recg.GetString("Code"); GraficType = recg.GetString("GraficType").ToGraficType(); ThreadCalc = thread; while (!recg.EOF && recg.GetString("Code").ToLower() == Code.ToLower()) { try { ReadPoint(recg); recg.Read(); } catch (Exception ex) { thread.AddError("Ошибка загрузки графика", ex, "График=" + Code); } } }
//Чтение значений по одному выходу из рекордсета источника protected override int ReadMoments(IRecordRead rec) { int dn = Source is KosmotronikaRetroSource ? 1 : 0; int nwrite = 0; DateTime time = rec.GetTime(0); nwrite += AddMom(NumWsSignal, time, rec.GetInt(2)); nwrite += AddMom(ModeSignal, time, rec.GetInt(3)); nwrite += AddMom(CodeSignal, time, rec.GetInt(4)); nwrite += AddMom(SnSignal, time, rec.GetInt(5)); nwrite += AddMom(NumTypeSignal, time, rec.GetInt(6)); if (dn == 1) { nwrite += AddMom(AppartmentSignal, time, rec.GetInt(7)); } nwrite += AddMom(ParamsSignal, time, rec.GetString(7 + dn)); nwrite += AddMom(ExtCommandSignal, time, rec.GetString(8 + dn)); nwrite += AddMom(PointSignal, time, rec.GetString(9 + dn)); return(nwrite); }
public ReportCell(IRecordRead rec) : base(rec) { Id = rec.GetInt("CellId"); X = rec.GetInt("X"); Y = rec.GetInt("Y"); SaveCode = rec.GetString("SaveCode"); if (SaveCode.IsEmpty()) { SaveCode = Page + "_" + Y + "_" + X; } AllowEdit = rec.GetBool("AllowEdit"); }
//Конструктор, на входе рекорсет rec, objects - список объектов, checkErrors: true - проверка сигналов, false - сигналы для компиляции public Signal(IRecordRead rec, DicI <ObjectSignal> objects, bool checkErrors) { ErrMess = ""; Code = rec.GetString("CodeSignal"); Name = rec.GetString("NameSignal"); Units = rec.GetString("Units"); DataType = rec.GetString("DataType").ToDataType(); InUseSource = false; InUseReceiver = false; ObjectId = rec.GetInt("ObjectId"); ConstValue = rec.GetString("ConstValue"); SourceName = rec.GetString("SourceName"); ReceiverName = rec.GetString("ReceiverName"); Inf = rec.GetString("Inf"); Default = rec.GetBool("Default"); if (checkErrors) { if (Code.IsEmpty()) { ErrMess += "Не заполнен код (CodeSignal); "; } if (DataType == DataType.Error) { ErrMess += "Недопустимый тип данных (DataType); "; } if (ConstValue.IsEmpty() && SourceName.IsEmpty() && ReceiverName.IsEmpty()) { ErrMess += "Должно быть заполнено имя источника (SourceName), имя приемника (ReceiverName) или значение константы (ConstValue); "; } } if (objects.ContainsKey(ObjectId)) { ObjectSignal = objects[ObjectId]; ObjectSignal.Signals.Add(Code, this); FullCode = ObjectSignal.Code + "." + Code; if (checkErrors) { //((RecDao)rec).Put("FullCode", FullCode); if (Default) { objects[ObjectId].DefalutsCount++; } if (ErrMess != "") { objects[ObjectId].ErrorInSignals = true; } } } }
//Конструктор internal FunOverload(FunCompile fun, //Функция-владелец IRecordRead rec) //Рекордсет с таблицей FunctionsOverloads { _arrayType = rec.GetString("ResultArray").ToArrayType(); Code = fun.Code + "_"; for (int i = 1; i <= 9; ++i) { var dtype = rec.GetString("Operand" + i); if (dtype.IsEmpty()) { break; } string atype = i == 1 ? rec.GetString("Operand1Array") : ""; var fp = new FunParam(dtype, atype, rec.GetString("Default" + i)); _inputs.Add(fp); Code += fp.DataType.ToLetter(); } for (int i = 1; i <= 2; ++i) { var dtype = rec.GetString("More" + i); if (dtype.IsEmpty()) { break; } var fp = new FunParam(dtype); _inputsMore.Add(fp); Code += fp.DataType.ToLetter(); } var s = rec.GetString("Result"); var dt = s.ToDataType(); _isCombined = dt == DataType.Error; if (!_isCombined) { _resultType = dt; } else { var p = s.Split('+'); foreach (string c in p) { if (c == "M1") { _inputsMore[0].UsedInResult = true; } else if (c == "M2") { _inputsMore[1].UsedInResult = true; } else { _inputs[int.Parse(c) - 1].UsedInResult = true; } } } }
//Подгрузка свойств имитируемого юнита из таблиц public ImitSignal(IRecordRead rec, Imitator imitator) : base("", rec.GetString("FullCode"), DataType.Variant, imitator) { Imitator = imitator; ImitId = rec.GetInt("ImitId"); ImitType = rec.GetInt("ImitType"); _intervalLength = rec.GetInt("IntervalLength"); if (_intervalLength < 0) { _intervalLength = 0; } _intervalSpan = new TimeSpan(0, 0, _intervalLength); _signalValue = rec.GetDouble("SignalValue"); _signalNd = rec.GetInt("SignalNd"); }