//Попытка запроса private bool TryRunCommand() { try { var begs = _b.ToOvationString(); var ens = _e.ToOvationString(); string s = ""; foreach (var ob in _objs) { if (s != "") { s += " or "; } s += "(ID=" + ob.Id + ")"; } s = "(" + s + ") and "; _histReader = new ReaderAdo(_connection, "select ID, TIMESTAMP, TIME_NSEC, F_VALUE, RAW_VALUE, STS from PT_HF_HIST " + "where " + s + " (TIMESTAMP >= " + begs + ") and (TIMESTAMP <= " + ens + ") order by TIMESTAMP, TIME_NSEC"); } catch (Exception ex) { AddError("Ошибка выполнения запроса к Historian", ex); return(false); } return(true); }
//Конструктор, на входе рекордсет с таблицей Functions internal FunCompile(IRecordRead rec) { Name = rec.GetString("Name"); Synonym = rec.GetString("Synonym"); Code = (rec.GetString("Code") ?? (Synonym ?? Name)).ToLower(); Id = rec.GetInt("Id"); }
public void LoadEdited(IRecordRead rec) { Units = rec.GetString("Units"); Min = rec.GetDouble("Min"); Max = rec.GetDouble("Max"); ObjectCode = rec.GetString("ObjectCode"); }
//Загрузка из рекордсета ReporterData public ReportProjectForData(ReportBook book, IRecordRead rec) : base(book, rec) { ProjectChangeTime = Different.MinDate; ArchiveChangeTime = Different.MinDate; DataChangeTime = Different.MinDate; LoadArchive(rec, book); }
//Изменяет элемент в 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); }
//Чтение одной строчки значений protected override int ReadMoments(IRecordRead rec) { var time = rec.GetTime("Time"); return(AddMomReal(ValueSignal, time, rec, "ValueSignal") + AddMomReal(ValueSignal2, time, rec, "ValueSignal2")); }
//Если провайдер позволяет, чтение из таблицы архива public ArchiveInterval(IRecordRead rec, IntervalType type) : base(rec) { Type = type; Name = rec.GetString("IntervalName"); Id = rec.GetInt("IntervalId"); TimeChange = rec.GetTime("TimeChange"); }
//Чтение значений по одному выходу из рекордсета источника и добавление их в список или клон //Возвращает количество сформированных значений protected override int ReadMoments(IRecordRead rec) { var time = rec.GetTime("TIME"); return(AddMomReal(IndicationSignal, time, rec, "VALUE_INDICATION") + AddMomReal(UnitSignal, time, rec, "VALUE_UNIT")); }
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 override int ReadMoments(IRecordRead rec) { var time = rec.GetTime("Time"); return(AddMomString(TextSignal, time, rec, "CommandText") + AddMomInt(NumberSignal, time, rec, "CommandNumber")); }
public CalcParam(CalcModule module, IRecordRead rec, bool isSubParam) : base(rec, isSubParam) { Module = module; CompiledExpr = rec.GetString("CompiledExpr"); Keeper = new CalcKeeper(this); }
//Конструктор, на входе рекордсет с таблицей Functions public FunClass(IRecordRead rec) { Name = rec.GetString("Name"); Synonym = rec.GetString("Synonym"); Code = rec.GetString("Code") ?? (Synonym ?? Name).ToLower(); Type = rec.GetString("CodeType"); }
protected BaseObject(IRecordRead rec) { Id = rec.GetInt("ObjectId"); Code = rec.GetString("CodeObject"); Name = rec.GetString("NameObject"); InfObject = rec.GetString("InfObject"); }
public TimeInterval(IRecordRead rec) { try { Begin = rec.GetTime("TimeBegin"); } catch { Begin = rec.GetTime("Begin"); } try { End = rec.GetTime("TimeEnd"); } catch { End = rec.GetTime("End"); } }
//Создание провайдера архива 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; } }
//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 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); } }
//Чтение значений по одному выходу из рекордсета источника //Возвращает количество сформированных значений 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); }
//Формирование параметра из рекордсета protected BaseCalcParam(IRecordRead rec, bool isSubParam) //Является подпараметром { IsSubParam = isSubParam; if (!IsSubParam) { ParamId = rec.GetInt("ParamId"); Code = rec.GetString("ParamCode"); Name = rec.GetString("ParamName"); Task = rec.GetString("Task"); } else { OwnerId = rec.GetInt("ParamId"); ParamId = rec.GetInt("SubParamId"); Code = rec.GetString("SubParamCode"); Name = rec.GetString("SubParamName"); } Comment = rec.GetString("Comment"); Units = rec.GetString("Units"); Min = rec.GetString("Min"); Max = rec.GetString("Max"); ArchiveParamType = rec.GetString("ArchiveParamType").ToArchiveParamType(); SuperProcess = rec.GetString("SuperProcess").ToSuperProcess(); ObjectCode = rec.GetString("ObjectCode"); }
//Чтение значений из рекордсета по одному блоку private ValuesCount ReadPartValues(IRecordRead rec) { var vc = new ValuesCount(); while (rec.Read()) { vc.ReadCount++; ListSourceOut ob = null; try { ob = _defineObjectFun(rec); if (ob != null) { vc.WriteCount += ob.ReadMoments(rec); } vc.AddStatus(VcStatus.Success); } catch (Exception ex) { AddErrorOut(ob == null ? "" : ob.Context, "Ошибка при чтении значений из рекордсета", ex); vc.AddStatus(VcStatus.NoSuccess); } } return(vc); }
//Загрузка из файла данных public ReportParam(IRecordRead rec) { ArchiveParam = new ArchiveParam(rec); Project = rec.GetString("Project"); Id = rec.GetInt("ParamId"); FromArchive = rec.GetBool("FromArchive"); FromProject = rec.GetBool("FromProject"); }
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); }
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"); }
//Получает значение из текущей строчки рекордсета private double Mean(IRecordRead rec) { if (!rec.IsNull("F_VALUE")) { return(rec.GetDouble("F_VALUE")); } return(rec.GetInt("RAW_VALUE")); }
//Конструктор 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; } } } }
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(); }
protected int AddMomInt(SourceSignal sig, DateTime time, IRecordRead rec, string field, MomErr err = null) { if (sig == null) { return(0); } sig.BufMom.Integer = rec.GetInt(field); return(sig.AddMom(time, err)); }
//Чтение значений по одному выходу из рекордсета источника и добавление их в список или клон //Возвращает количество сформированных значений protected override int ReadMoments(IRecordRead rec) { DateTime time = rec.GetTime("TimeStamp").ToLocalTime(); var quality = rec.GetInt("Quality"); var err = MakeError(quality); return(AddMom(FlagsSignal, time, rec.GetInt("Flags"), err) + AddMom(QualitySignal, time, quality, err) + AddMom(ValueSignal, time, ((AdoReader)rec).Reader["RealValue"], err)); }
public DerivedParam(IRecordRead rec) { Code = rec.GetString("FullCode"); ParamCode = rec.GetString("ParamCode"); Name = rec.GetString("FullName"); ParamName = rec.GetString("ParamName"); Task = rec.GetString("Task"); SuperProcess = rec.GetString("SuperProcess").ToSuperProcess(); LoadEdited(rec); }
//Загрузка потока контроллера public void AddThread(IRecordRead rec) { var t = new ThreadController(rec) { App = this, Synchro = Synchro }; ThreadsDic.Add(t.Id, t); Threads.Add(t); MonitorHistory.AddHistoryTables(t.Id); }