//Записывает себя в 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(); } }
public CalcParamBase(string code, string name = null, string comment = null, string task = null, CalcParamType calcParamType = CalcParamType.Class, string tag = null) { Code = code; Name = name; Comment = comment; Task = task; CalcParamType = calcParamType; Tag = tag; }
//Конструктор для чтения информации по параметру из рекордсета //rec - рекордсет с таблицей CalcParams, project - проект public CalcParam(Project project, IRecordRead rec, bool isSubParam) { Project = project; _logger = Project.ThreadCalc; try { Code = rec.GetString("Code"); Id = rec.GetInt("CalcParamId"); Name = rec.GetString("Name"); Units = rec.GetString("Units"); Comment = rec.GetString("Comment"); Interpolation = rec.GetString("InterpolationType").ToInterpolation(); if (Interpolation == InterpolationType.None) { Interpolation = project.Interpolation; } ExprString = rec.GetString("Expr"); ResultType = rec.GetString("ResultType"); Min = rec.GetDoubleNull("Min"); Max = rec.GetDoubleNull("Max"); DecPlaces = rec.GetIntNull("DecPlaces"); Tag = rec.GetString("Tag"); if (!isSubParam) { CalcParamType = rec.GetString("CalcParamType").ToCalcParamType(); if (CalcParamType != CalcParamType.Class) { HandInputValue = new Moment(CalcParamType.HandDataType(), rec.GetString("DefaultValue")); } Task = rec.GetString("Task"); CodeSignal = rec.GetString("CodeSignal"); } //Архив SuperProcess = rec.GetString("SuperProcessType").ToSuperProcess(); //Приемник var rcode = rec.GetString("ReceiverCode"); if (Project.SignalsReceivers.ContainsKey(rcode)) { ReceiverSignal = Project.SignalsReceivers[rcode].ReceiverSignal; } if (!rec.GetString("ErrMess").IsEmpty()) { _logger.AddError("Список расчетных параметров содержит ошибки компиляции", null, "Параметр=" + Code); } } catch (Exception ex) { AddLog(ex); } }
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()); } }
//Тип данных параметра ручного ввода по CalcParamType public static DataType HandDataType(this CalcParamType t) { switch (t) { case CalcParamType.HandBool: return(DataType.Boolean); case CalcParamType.HandInt: return(DataType.Integer); case CalcParamType.HandReal: return(DataType.Real); case CalcParamType.HandTime: return(DataType.Time); case CalcParamType.HandString: return(DataType.String); } return(DataType.Error); }
//Перевод CalcParamType в строку public static string ToRussian(this CalcParamType t) { switch (t) { case CalcParamType.HandBool: return("ВводЛогич"); case CalcParamType.HandInt: return("ВводЦелое"); case CalcParamType.HandTime: return("ВводВремя"); case CalcParamType.HandReal: return("ВводДейств"); case CalcParamType.HandString: return("ВводСтрока"); } return(null); }