//Перевод из SuperProcessType в строку public static string ToRussian(this SuperProcess t) { switch (t) { case SuperProcess.Moment: return("Мгновенные"); case SuperProcess.Average: return("Среднее"); case SuperProcess.Min: return("Минимум"); case SuperProcess.Max: return("Максимум"); case SuperProcess.First: return("Первое"); case SuperProcess.Last: return("Последнее"); case SuperProcess.Summ: return("Сумма"); } return(null); }
private void ToRecordset(IRecordSet rec, bool addnew) { if (addnew) { rec.AddNew(); } rec.Put("Code", FullCode); rec.Put("Units", Units); rec.Put("DataType", DataType.ToRussian()); rec.Put("SuperProcessType", SuperProcess.ToRussian()); rec.Put("Min", Min); rec.Put("Max", Max); rec.Put("DecPlaces", DecPlaces); if (FirstParam != null) { rec.Put("CodeParam", FirstParam.Code); rec.Put("Name", FirstParam.Name); rec.Put("Task", FirstParam.Task); rec.Put("Comment", FirstParam.Comment); rec.Put("CalcParamType", FirstParam.CalcParamType.ToRussian()); rec.Put("Tag", FirstParam.Tag); } if (LastParam != null) { rec.Put("CodeSubParam", LastParam.Code); rec.Put("SubName", LastParam.Name); rec.Put("SubComment", LastParam.Comment); } }
//Записывает себя в ReportParams, reportId - id родительской записи public void ToRecordset(IRecordSet rec, int reportId, bool addnew = false) { if (addnew) { rec.AddNew(); } rec.Put("ReportId", reportId); rec.Put("ParamId", ParamId); rec.Put("Project", Project); rec.Put("Code", Code); rec.Put("DataType", DataType.ToRussian()); rec.Put("SuperProcessType", SuperProcess.ToRussian()); rec.Put("CalcParamType", CalcParamType.ToRussian()); rec.Put("IsSingle", Queries.ContainsKey(IntervalType.Single)); rec.Put("IsBase", Queries.ContainsKey(IntervalType.Base)); rec.Put("IsHour", Queries.ContainsKey(IntervalType.Hour)); rec.Put("IsDay", Queries.ContainsKey(IntervalType.Day)); rec.Put("IsCombined", Queries.ContainsKey(IntervalType.Combined)); rec.Put("IsAbsolute", Queries.ContainsKey(IntervalType.Absolute)); rec.Put("IsAbsoluteDay", Queries.ContainsKey(IntervalType.AbsoluteDay)); rec.Put("IsAbsoluteCombined", Queries.ContainsKey(IntervalType.AbsoluteCombined)); rec.Put("IsAbsoluteListBase", Queries.ContainsKey(IntervalType.AbsoluteListBase)); rec.Put("IsAbsoluteListHour", Queries.ContainsKey(IntervalType.AbsoluteListHour)); rec.Put("IsAbsoluteListDay", Queries.ContainsKey(IntervalType.AbsoluteListDay)); rec.Put("IsMoments", Queries.ContainsKey(IntervalType.Moments)); if (addnew) { rec.Update(); } }
//True, если тип накопления предполагает периодическое накопление public static bool IsPeriodic(this SuperProcess t) { return((new HashSet <SuperProcess> { SuperProcess.MinP, SuperProcess.MinPA, SuperProcess.MaxP, SuperProcess.MaxPA, SuperProcess.FirstP, SuperProcess.FirstPA, SuperProcess.LastP, SuperProcess.LastPA, SuperProcess.SummP, SuperProcess.SummPA, SuperProcess.AverageP, SuperProcess.AveragePA, SuperProcess.AvNonZeroP, SuperProcess.AvNonZeroPA }) .Contains(t)); }
//True, если тип накопления предполагает абсолютное накопление public static bool IsAbsolute(this SuperProcess t) { return((new HashSet <SuperProcess> { SuperProcess.MinA, SuperProcess.MinPA, SuperProcess.MaxA, SuperProcess.MaxPA, SuperProcess.FirstA, SuperProcess.FirstPA, SuperProcess.LastA, SuperProcess.LastPA, SuperProcess.SummA, SuperProcess.SummPA, SuperProcess.AverageA, SuperProcess.AveragePA, SuperProcess.AvNonZeroA, SuperProcess.AvNonZeroPA }) .Contains(t)); }
//Как преобразуется тип расчетного параметра при преобразовании в архивный параметр с учетом типа накопления public static DataType AplySuperProcess(this DataType dt, SuperProcess sp) { if (sp == SuperProcess.Average) { return(DataType.Real); } if (sp == SuperProcess.Summ && dt == DataType.Boolean) { return(DataType.Integer); } return(dt); }
public ArchiveReportParam(string code, string project, DataType dataType, SuperProcess superProcess, CalcParamType ctype, IEnumerable <IntervalType> intervals) { Code = code; Project = project; DataType = dataType; SuperProcess = superProcess; CalcParamType = ctype; foreach (var t in intervals) { Queries.Add(t, new ArchiveQueryValues()); } }
public ArchiveParam(string fullCode, DataType dtype, string units = null, CalcParamBase first = null, CalcParamBase last = null, SuperProcess superProcess = SuperProcess.None, int?decPlaces = null, double?min = null, double?max = null) { FullCode = fullCode; FirstParam = first; LastParam = last; DataType = dtype; Units = units; SuperProcess = superProcess; DecPlaces = decPlaces; Min = min; Max = max; }
//Как преобразуется тип расчетного параметра при преобразовании в архивный параметр с учетом типа накопления public static DataType AplySuperProcess(this DataType dt, SuperProcess sp) { var s = sp.ToProcess(); if (s == SuperProcess.AverageP || s == SuperProcess.AvNonZeroP) { return(DataType.Real); } if (s == SuperProcess.SummP && dt == DataType.Boolean) { return(DataType.Integer); } return(dt); }
public TablikDerivedParam(string paramCode, string fullCode, string paramName, string fullName, string task, SuperProcess superProcess, string units, double?min, double?max, string objectCode) { ParamCode = paramCode; Code = fullCode; ParamName = paramName; Name = fullName; Task = task; SuperProcess = superProcess; Units = units; Min = min; Max = max; ObjectCode = objectCode; }
public void ToRecordset(IRecordAdd rec) { rec.AddNew(); rec.Put("ParamCode", ParamCode); rec.Put("FullCode", Code); rec.Put("ParamName", ParamName); rec.Put("FullName", Name); rec.Put("Task", Task); rec.Put("SuperProcess", SuperProcess.ToRussian()); rec.Put("Units", Units); rec.Put("Min", Min); rec.Put("Max", Max); rec.Put("ObjectCode", ObjectCode); rec.Update(); }
//Убирает A из типа накопления (оставляет P) public static SuperProcess ToProcess(this SuperProcess t) { switch (t) { case SuperProcess.None: return(SuperProcess.None); case SuperProcess.Moment: return(SuperProcess.Moment); case SuperProcess.AverageA: case SuperProcess.AverageP: case SuperProcess.AveragePA: return(SuperProcess.AverageP); case SuperProcess.AvNonZeroA: case SuperProcess.AvNonZeroP: case SuperProcess.AvNonZeroPA: return(SuperProcess.AvNonZeroP); case SuperProcess.MinA: case SuperProcess.MinP: case SuperProcess.MinPA: return(SuperProcess.MinP); case SuperProcess.MaxA: case SuperProcess.MaxP: case SuperProcess.MaxPA: return(SuperProcess.MaxP); case SuperProcess.FirstA: case SuperProcess.FirstP: case SuperProcess.FirstPA: return(SuperProcess.FirstP); case SuperProcess.LastA: case SuperProcess.LastP: case SuperProcess.LastPA: return(SuperProcess.LastP); case SuperProcess.SummA: case SuperProcess.SummP: case SuperProcess.SummPA: return(SuperProcess.SummP); } return(SuperProcess.Error); }
//True, если тип накопления не заполнен, или заполнен с ошибкой public static bool IsNone(this SuperProcess t) { return(t == SuperProcess.None || t == SuperProcess.Error); }
//Перевод из SuperProcessType в строку public static string ToRussian(this SuperProcess t) { switch (t) { case SuperProcess.Moment: return("Мгновенные"); case SuperProcess.AverageA: return("Среднее(А)"); case SuperProcess.AverageP: return("Среднее(П)"); case SuperProcess.AveragePA: return("Среднее(ПА)"); case SuperProcess.AvNonZeroA: return("СреднееНеНоль(А)"); case SuperProcess.AvNonZeroP: return("СреднееНеНоль(П)"); case SuperProcess.AvNonZeroPA: return("СреднееНеНоль(ПА)"); case SuperProcess.MinA: return("Минимум(А)"); case SuperProcess.MinP: return("Минимум(П)"); case SuperProcess.MinPA: return("Минимум(ПА)"); case SuperProcess.MaxA: return("Максимум(А)"); case SuperProcess.MaxP: return("Максимум(П)"); case SuperProcess.MaxPA: return("Максимум(ПА)"); case SuperProcess.FirstA: return("Первое(А)"); case SuperProcess.FirstP: return("Первое(П)"); case SuperProcess.FirstPA: return("Первое(ПА)"); case SuperProcess.LastA: return("Последнее(А)"); case SuperProcess.LastP: return("Последнее(П)"); case SuperProcess.LastPA: return("Последнее(ПА)"); case SuperProcess.SummA: return("Сумма(А)"); case SuperProcess.SummP: return("Сумма(П)"); case SuperProcess.SummPA: return("Сумма(ПА)"); } return(null); }