コード例 #1
0
            /// <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);
            }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
            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);
            }
コード例 #4
0
            /// <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);
            }
コード例 #5
0
            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);
                    }
                }
            }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
            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);
            }