/// <summary> /// Добавить строку в таблицу /// </summary> /// <param name="obj">Объект с параметром алгоритма расчета</param> public int AddRow(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER obj) { int iRes = -1; //!!! Объект уже добавлен в словарь //!!! столбец с 'SYMBOL' уже добавлен activateCellValue_onChanged(false); iRes = Rows.Add(new DataGridViewRow()); Rows[iRes].Tag = obj.m_Id; // установить значение для заголовка Rows[iRes].HeaderCell.Value = obj.m_nAlg; // установить значение для всплывающей подсказки Rows[iRes].HeaderCell.ToolTipText = obj.m_strDescription; // установить значение для обозначения параметра и его ед./измерения Rows[iRes].Cells[0].Value = string.Format(@"{0},[{1}]", obj.m_strSymbol, obj.m_strMeausure); // установить формат ячеек по умолчанию Rows[iRes].DefaultCellStyle.Format = m_dictNAlgProperties[obj.m_Id].FormatRound; activateCellValue_onChanged(true); return(iRes); }
/// <summary> /// Обработчик события - добавить NAlg-параметр /// </summary> /// <param name="obj">Объект - NAlg-параметр(основной элемент алгоритма расчета)</param> protected override void handlerDbTaskCalculate_onAddNAlgParameter(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER obj) { base.handlerDbTaskCalculate_onAddNAlgParameter(obj); (PanelManagement as PanelManagementTaskTepValues).AddNAlgParameter(obj); // добавить свойства для строки таблицы со значениями m_dgvValues.AddNAlgParameter(obj); // в процессе создаем структуру, т.к. она простая // , иначе требовалось бы подаждать добавления всех параметров 'NAlg' (m_dgvValues as DataGridViewTaskTepValues).AddRow(obj); }
private void addColumn(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER nAlgPar, TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER putPar) { DataGridViewTextBoxColumn column; column = new DataGridViewTextBoxColumn(); column.Name = @"VALUE"; column.HeaderText = @"Значения"; column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleRight; // номер столбца в соответствии с шаблоном книги MS Excel при экспорте column.Tag = new COLUMN_TAG(putPar, ColumnCount + 2, false); // 'Tag' присваивается ДО добавления в коллекцию Columns.Add(column); }
/// <summary> /// Добавить строку в таблицу /// </summary> /// <param name="obj">Объект с параметром алгоритма расчета</param> public int AddRow(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER obj) { int iRes = -1; //!!! Объект уже добавлен в словарь //!!! столбец с 'SYMBOL' уже добавлен iRes = Rows.Add(new DataGridViewRow()); Rows[iRes].Tag = obj.m_Id; // установить значение для заголовка Rows[iRes].HeaderCell.Value = obj.m_nAlg; // установить значение для всплывающей подсказки Rows[iRes].HeaderCell.ToolTipText = obj.m_strDescription; // установить значение для обозначения параметра и его ед./измерения Rows[iRes].Cells[0].Value = string.Format(@"{0},[{1}]", obj.m_strSymbol, obj.m_strMeausure); return(iRes); }
public void AddNAlgParameter(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER nAlgPar) { CheckedListBoxTaskCalculate ctrl; bool bChecked = false; // в этих элементах управления размещаются элементы проекта - параметры алгоритма расчета INDEX_CONTROL[] arIndexControl = new INDEX_CONTROL[] { INDEX_CONTROL.MIX_PARAMETER_CALCULATED , INDEX_CONTROL.CLBX_PARAMETER_VISIBLED }; foreach (INDEX_CONTROL indxCtrl in arIndexControl) { ctrl = find(indxCtrl) as CheckedListBoxTaskCalculate; if (indxCtrl == INDEX_CONTROL.MIX_PARAMETER_CALCULATED) { bChecked = nAlgPar.m_bEnabled; } else if (indxCtrl == INDEX_CONTROL.CLBX_PARAMETER_VISIBLED) { bChecked = nAlgPar.m_bVisibled; } else { bChecked = false; } if (!(ctrl == null)) { (ctrl as CheckedListBoxTaskCalculate).AddItem(nAlgPar.m_Id, string.Format(@"[{0}]-{1}", nAlgPar.m_nAlg, nAlgPar.m_strNameShr), bChecked); } else { Logging.Logg().Error(@"PanelManagementTaskTepValues::AddNAlgParameter () - не найден элемент =" + indxCtrl.ToString(), Logging.INDEX_MESSAGE.NOT_SET); } } }
/// <summary> /// Обработчик события - добавить NAlg-параметр /// </summary> /// <param name="obj">Объект - NAlg-параметр(основной элемент алгоритма расчета)</param> protected override void handlerDbTaskCalculate_onAddNAlgParameter(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER obj) { base.handlerDbTaskCalculate_onAddNAlgParameter(obj); m_dgvValues.AddNAlgParameter(obj); }
public override void AddColumns(List <TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER> listNAlgParameter , List <TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER> listPutParameter) { DataGridViewColumn column; List <TepCommon.HandlerDbTaskCalculate.TECComponent> listTECComponent; TepCommon.HandlerDbTaskCalculate.TECComponent comp_tec; int beginColumnAddress = -1 // начальный индекс столбца //, countColumnBeforeAdding = -1 // количество столбцов перед добавлением ; //List<int> arColumnAddresses; string strFormula = string.Empty; // Функция поиска объекта 'PUT_PARAMETER' для его назначения в свойство 'Tag' для добавляемого столбца Func <HandlerDbTaskCalculate.TaskCalculate.TYPE, int, TepCommon.HandlerDbTaskCalculate.IPUT_PARAMETERChange> findPutParameterGTP = (HandlerDbTaskCalculate.TaskCalculate.TYPE type, int id) => { TepCommon.HandlerDbTaskCalculate.IPUT_PARAMETERChange putRes = new TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER(); IEnumerable <TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER> puts; TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER nAlgRes = null; puts = listPutParameter.Where(putPar => { return(putPar.IdComponent == id); }); if (puts.Count() > 0) { foreach (TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER putPar in puts) { nAlgRes = listNAlgParameter.FirstOrDefault(nAlg => { return((nAlg.m_Id == putPar.m_idNAlg) && (nAlg.m_type == type)); }); if (!(nAlgRes == null)) { putRes = putPar; break; } else { ; } } } else { // ошибка на 1-ом этапе - возвращается объект по умолчанию (IsNaN == true) ; } return(putRes); }; listTECComponent = new List <TepCommon.HandlerDbTaskCalculate.TECComponent>(); listPutParameter.ForEach(putPar => { if (listTECComponent.FindAll(comp => { return(comp.m_Id == putPar.m_component.m_Id); }).Count == 0) { listTECComponent.Add(putPar.m_component); } else { ; } }); // сортировать ГТП: сначала 1,2 затем 3-6 listTECComponent.Sort(delegate(TepCommon.HandlerDbTaskCalculate.TECComponent comp1, TepCommon.HandlerDbTaskCalculate.TECComponent comp2) { return(comp1.m_Id <comp2.m_Id ? -1 : comp1.m_Id> comp2.m_Id ? 1 : 0); }); //ГТП - Корректировка ПТО // начальный индекс столбца при экспорте beginColumnAddress = 2; listTECComponent.ForEach(comp => { if (comp.IsGtp == true) { column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_CORRECT_{0}", comp.m_Id); column.HeaderText = string.Format(@"Корр-ка ПТО {0}", comp.m_nameShr); column.Tag = new COLUMN_TAG(findPutParameterGTP(HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES, comp.m_Id) , beginColumnAddress++ , false); column.ReadOnly = false; Columns.Add(column); } else { ; } }); //ГТП - Значения (без корректировки) listTECComponent.ForEach(comp => { if (comp.IsGtp == true) { column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_VALUE_{0}", comp.m_Id); column.HeaderText = string.Format(@"По прибору {0}", comp.m_nameShr); column.Tag = new COLUMN_TAG(findPutParameterGTP(HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES, comp.m_Id) , -1 , false); column.Visible = false; column.ReadOnly = true; Columns.Add(column); } else { ; } }); //ГТП - Значения по прибору учета с учетом корректрировки beginColumnAddress = 4; listTECComponent.ForEach(comp => { if (comp.IsGtp == true) { column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"CORRECT_VALUE_{0}", comp.m_Id); column.HeaderText = string.Format(@"+ коррект. {0}", comp.m_nameShr); column.Tag = new COLUMN_TAG(new FormulaHelper(string.Format("COLUMN_CORRECT_{0}+COLUMN_VALUE_{0}", comp.m_Id)) , beginColumnAddress++ , false); column.ReadOnly = true; Columns.Add(column); } else { ; } }); //Станция - компонент beginColumnAddress = 6; comp_tec = listTECComponent.Find(comp => { return(comp.IsTec); }); //Станция - Значения - ежесуточные column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_ST_DAY_{0}", comp_tec.m_Id); column.HeaderText = string.Format(@"{0} значения", comp_tec.m_nameShr); listTECComponent.ForEach(comp => { if (comp.IsGtp == true) { strFormula += string.Format(@"{0}CORRECT_VALUE_{1}", string.IsNullOrEmpty(strFormula) == true ? string.Empty : @"+", comp.m_Id); } else { } }); column.Tag = //findPutParameterGTP(HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES, comp_tec.m_Id) new COLUMN_TAG(new FormulaHelper(strFormula) , beginColumnAddress , false); ; Columns.Add(column); //Станция - Значения - нарастающие beginColumnAddress = 7; column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_ST_SUM_{0}", comp_tec.m_Id); column.HeaderText = string.Format(@"{0} нараст.", comp_tec.m_nameShr); column.Tag = //ToolsHelper.Compiler.Compile(ToolsHelper.Parser.Parse(string.Format("INC(COLUMN_ST_DAY_{0})", comp_tec.m_Id))) new COLUMN_TAG(new FormulaHelper(string.Format("SUMM({0})", string.Format(@"COLUMN_ST_DAY_{0}", comp_tec.m_Id))) , beginColumnAddress , true) ; column.ReadOnly = true; Columns.Add(column); //Станция - План - ежесуточный beginColumnAddress = -1; column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_PLAN_DAY_{0}", comp_tec.m_Id); column.HeaderText = string.Format(@"План сутки"); column.Tag = new COLUMN_TAG(findPutParameterGTP(HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES, comp_tec.m_Id) , beginColumnAddress , false); column.ReadOnly = true; column.Visible = false; Columns.Add(column); //Станция - План - ежесуточный - накапливаемый beginColumnAddress = 8; column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_PLAN_SUM_{0}", comp_tec.m_Id); column.HeaderText = string.Format(@"План нараст."); column.Tag = new COLUMN_TAG(new FormulaHelper(string.Format("SUMM({0})", string.Format(@"COLUMN_PLAN_DAY_{0}", comp_tec.m_Id))) , beginColumnAddress , true); column.ReadOnly = true; Columns.Add(column); //Станция - План - отклонение beginColumnAddress = 9; column = new DataGridViewTextBoxColumn(); column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; column.Name = string.Format(@"COLUMN_PLAN_DEV_{0}", comp_tec.m_Id); column.HeaderText = string.Format(@"План отклон."); column.Tag = new COLUMN_TAG(new FormulaHelper(string.Format("COLUMN_ST_SUM_{0}-COLUMN_PLAN_SUM_{0}", comp_tec.m_Id)) , beginColumnAddress , true); column.ReadOnly = true; Columns.Add(column); }