コード例 #1
0
            public virtual void AddPutParameter(HandlerDbTaskCalculate.PUT_PARAMETER putPar)
            {
                if (m_dictNAlgProperties.ContainsKey(putPar.m_idNAlg) == true)
                {
                    if (m_dictNAlgProperties[putPar.m_idNAlg].m_dictPutParameters == null)
                    {
                        m_dictNAlgProperties[putPar.m_idNAlg].m_dictPutParameters = new Dictionary <int, HandlerDbTaskCalculate.PUT_PARAMETER>();
                    }
                    else
                    {
                        ;
                    }

                    if (m_dictNAlgProperties[putPar.m_idNAlg].m_dictPutParameters.ContainsKey(putPar.m_Id) == false)
                    {
                        m_dictNAlgProperties[putPar.m_idNAlg].m_dictPutParameters.Add(putPar.m_Id, putPar);
                    }
                    else
                    {
                        ;
                    }
                }
                else
                {
                    ;
                }
            }
コード例 #2
0
        /// <summary>
        /// Обработчик события - добавить Put-параметр
        /// </summary>
        /// <param name="obj">Объект - Put-параметр(дополнительный, в составе NAlg, элемент алгоритма расчета)</param>
        protected override void handlerDbTaskCalculate_onAddPutParameter(HandlerDbTaskCalculate.PUT_PARAMETER obj)
        {
            base.handlerDbTaskCalculate_onAddPutParameter(obj);

            m_dgvValues.AddPutParameter(obj);

            m_dgvValues.AddColumn(obj);
        }
コード例 #3
0
        /// <summary>
        /// Обработчик события - добавить Put-параметр
        /// </summary>
        /// <param name="obj">Объект - Put-параметр(дополнительный, в составе NAlg, элемент алгоритма расчета)</param>
        protected override void handlerDbTaskCalculate_onAddPutParameter(HandlerDbTaskCalculate.PUT_PARAMETER obj)
        {
            base.handlerDbTaskCalculate_onAddPutParameter(obj);

            m_listDataGridViewVedomostBl.ForEach(dgv => {
                dgv.AddPutParameter(obj);
            });
        }
コード例 #4
0
            public override void AddPutParameter(HandlerDbTaskCalculate.PUT_PARAMETER putPar)
            {
                base.AddPutParameter(putPar);

                if (m_dictTECComponent.ContainsKey(putPar.IdComponent) == false)
                {
                    m_dictTECComponent.Add(putPar.IdComponent, putPar.m_component);
                }
                else
                {
                    ;
                }
            }
コード例 #5
0
 protected override void handlerDbTaskCalculate_onAddPutParameter(HandlerDbTaskCalculate.PUT_PARAMETER obj)
 {
     throw new NotImplementedException();
 }
コード例 #6
0
            /// <summary>
            /// Добавить столбец
            /// </summary>
            /// <param name="id_comp">номер компонента</param>
            /// <param name="txtHeader">заголовок столбца</param>
            /// <param name="nameCol">имя столбца</param>
            /// <param name="bRead">"только чтение"</param>
            /// <param name="bVisibled">видимость столбца</param>
            public void AddColumn(HandlerDbTaskCalculate.PUT_PARAMETER putPar)
            {
                int indxCol = -1; // индекс столбца при вставке
                DataGridViewContentAlignment   alignText     = DataGridViewContentAlignment.NotSet;
                DataGridViewAutoSizeColumnMode autoSzColMode = DataGridViewAutoSizeColumnMode.NotSet;

                try
                {
                    // найти индекс нового столбца
                    // столбец для станции - всегда крайний
                    foreach (DataGridViewColumn col in Columns)
                    {
                        if ((((HandlerDbTaskCalculate.PUT_PARAMETER)col.Tag).IdComponent > 0) &&
                            (((HandlerDbTaskCalculate.PUT_PARAMETER)col.Tag).m_component.IsTec == true))
                        {
                            indxCol = Columns.IndexOf(col);

                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    DataGridViewColumn column = new DataGridViewTextBoxColumn();
                    column.Tag    = putPar;
                    alignText     = DataGridViewContentAlignment.MiddleRight;
                    autoSzColMode = DataGridViewAutoSizeColumnMode.Fill;

                    if (!(indxCol < 0)) // для вставляемых столбцов (компонентов ТЭЦ)
                    {
                        ;               // оставить значения по умолчанию
                    }
                    else
                    {                                       // для добавляемых столбцов
                        if (putPar.IdComponent < 0)
                        {                                   // для служебных столбцов
                            if (putPar.m_bVisibled == true) // только для столбца с [SYMBOL]
                            {
                                alignText     = DataGridViewContentAlignment.MiddleLeft;
                                autoSzColMode = DataGridViewAutoSizeColumnMode.AllCells;
                            }
                            else
                            {
                                ;
                            }

                            column.Frozen = true;
                        }
                        else
                        {
                            ;
                        }
                    }

                    column.HeaderText = putPar.NameShrComponent;
                    column.ReadOnly   = putPar.m_bEnabled;
                    column.Name       = @"???";
                    column.DefaultCellStyle.Alignment = alignText;
                    column.AutoSizeMode = autoSzColMode;
                    column.Visible      = putPar.m_bVisibled;

                    if (!(indxCol < 0))
                    {
                        Columns.Insert(indxCol, column as DataGridViewTextBoxColumn);
                    }
                    else
                    {
                        Columns.Add(column as DataGridViewTextBoxColumn);
                    }
                } catch (Exception e) {
                    Logging.Logg().Exception(e, string.Format(@"DataGridViewTReaktivka::AddColumn (id_comp={0}) - ...", putPar.IdComponent), Logging.INDEX_MESSAGE.NOT_SET);
                }
            }
コード例 #7
0
ファイル: DataGridView.cs プロジェクト: ChrisNovoselic/Tep32
            ///// <summary>
            ///// Сформировать списки строк, содержащих параметры для указанной таблицы (входной и выходной)
            ///// </summary>
            ///// <param name=""></param>
            //public void getTableNalg(DataTable tableInNAlg, DataTable tableOutNAlg, DataTable tableComp, Dictionary<int, object[]> dict_profile)
            //{
            //    List<DataRow> col_in = new List<DataRow>();
            //    List<DataRow> col_out = new List<DataRow>();

            //    switch (m_ViewValues)
            //    {
            //        case INDEX_VIEW_VALUES.Block:

            //            rows = tableComp.Select("ID_COMP=1000 or ID_COMP=1");
            //            break;
            //        case INDEX_VIEW_VALUES.Output:
            //            //colums_in = nAlgTable.Select("N_ALG='2'");
            //            //colums_out = nAlgOutTable.Select("N_ALG='2'");
            //            rows = tableComp.Select("ID_COMP=2000 or ID_COMP=1");
            //            break;
            //        case INDEX_VIEW_VALUES.TeploBL:
            //            //colums_in = nAlgTable.Select("N_ALG='3'");
            //            //colums_out = nAlgOutTable.Select("N_ALG='3'");
            //            rows = tableComp.Select("ID_COMP=1");
            //            break;
            //        case INDEX_VIEW_VALUES.TeploOP:
            //            //colums_in = nAlgTable.Select("N_ALG='4'");
            //            //colums_out = nAlgOutTable.Select("N_ALG='4'");
            //            rows = tableComp.Select("ID_COMP=1");
            //            break;
            //        case INDEX_VIEW_VALUES.Param:
            //            //colums_in = nAlgTable.Select("N_ALG='5'");
            //            //colums_out = nAlgOutTable.Select("N_ALG='5'");
            //            rows = tableComp.Select("ID_COMP=1");
            //            break;
            //        case INDEX_VIEW_VALUES.PromPlozsh:
            //            //colums_in = nAlgTable.Select("N_ALG='6'");
            //            //colums_out = nAlgOutTable.Select("N_ALG='6'");
            //            rows = tableComp.Select("ID_COMP=3000 or ID_COMP=1");
            //            break;
            //        default:
            //            //colums_in = nAlgTable.Select();
            //            //colums_out = nAlgOutTable.Select();
            //            rows = tableComp.Select();
            //            break;
            //    }

            //    foreach (object[] list in dict_profile[(int)m_ViewValues])
            //    {
            //        if ((TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE)list[1] == TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES)
            //        {

            //            m_dict_ProfileNALG_IN = (Dictionary<string, HTepUsers.DictionaryProfileItem>)list[2];

            //            foreach (Double id in (double[])list[0])
            //                col_in.Add(tableInNAlg.Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]);
            //        }
            //        else
            //        { }

            //        if ((TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE)list[1] == TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES)
            //        {
            //            m_dict_ProfileNALG_OUT = (Dictionary<string, HTepUsers.DictionaryProfileItem>)list[2];

            //            foreach (Double id in (double[])list[0])
            //                col_out.Add(tableOutNAlg.Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]);
            //        }
            //        else
            //        { }
            //    }
            //    colums_in = col_in.ToArray();
            //    colums_out = col_out.ToArray();
            //}

            /// <summary>
            /// Инициализация dataGridView
            /// </summary>
            /// <param name="tableInNAlg"></param>
            /// <param name="tableOutNAlg"></param>
            /// <param name="tableComp"></param>
            /// <returns></returns>
            public void InitializeStruct(List <HandlerDbTaskCalculate.NALG_PARAMETER> listNAlg, List <HandlerDbTaskCalculate.PUT_PARAMETER> listPut, Dictionary <int, object[]> dict_profile /*DataTable tableInNAlg, DataTable tableOutNAlg, DataTable tableComp, DataTable tableRatio
                                                                                                                                                                                              * , List<HandlerDbTaskCalculate.PUT_PARAMETER> listPutParemeters*/)
            {
                this.CellValueChanged -= new DataGridViewCellEventHandler(cellEndEdit);
                this.Rows.Clear();
                this.Columns.Clear();
                DataTable tableNAlg = new DataTable();

                //DataRow[] colums_in = null;
                //DataRow[] colums_out = null;
                //DataRow[] rows = null;

                List <HandlerDbTaskCalculate.NALG_PARAMETER> col_in  = new List <HandlerDbTaskCalculate.NALG_PARAMETER>();
                List <HandlerDbTaskCalculate.NALG_PARAMETER> col_out = new List <HandlerDbTaskCalculate.NALG_PARAMETER>();
                //m_dbRatio = tableRatio.Copy();
                int indx;

                TepCommon.HandlerDbTaskCalculate.PUT_PARAMETER putPar = new HandlerDbTaskCalculate.PUT_PARAMETER();

                // получить список ID из таблицы inval, для размещения в TAG столбцов и ячеек ???

                foreach (object[] list in dict_profile[(int)m_ViewValues])
                {
                    if ((TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE)list[1] == TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES)
                    {
                        m_dict_ProfileNALG_IN = (Dictionary <string, HTepUsers.DictionaryProfileItem>)list[2];

                        foreach (Double id in (double[])list[0])
                        {
                            col_in.Add(listNAlg.Find(x => x.m_nAlg == id.ToString().Trim().Replace(',', '.')));
                            //listNAlg.Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]); }
                            //col_in.Add(tableInNAlg.Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]);
                        }
                    }
                    else
                    {
                    }

                    if ((TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE)list[1] == TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES)
                    {
                        m_dict_ProfileNALG_OUT = (Dictionary <string, HTepUsers.DictionaryProfileItem>)list[2];

                        foreach (Double id in (double[])list[0])
                        {
                            col_out.Add(listNAlg.Find(x => x.m_nAlg == id.ToString().Trim().Replace(',', '.')));
                            //Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]); }
                            //col_out.Add(tableOutNAlg.Select("N_ALG='" + id.ToString().Trim().Replace(',', '.') + "'")[0]);
                        }
                    }
                    else
                    {
                    }

                    string a = listNAlg[0].m_nAlg;
                    int    p = listPut[0].m_Id;
                }


                indx = 0;
                this.AddColumn("Компонент", true, "Comp");
                //foreach (DataRow c in colums_in)
                for (int ind = 0; ind < col_in.Count(); ind++)
                {
                    putPar          = new HandlerDbTaskCalculate.PUT_PARAMETER();;
                    putPar.m_Id     = m_put_params_in[indx];
                    putPar.m_idNAlg = (Int32)(col_in[ind].m_Id);
                    this.AddColumn(col_in[ind].m_nAlg.Trim(), true, col_in[ind].m_nAlg.Trim(), (col_in[ind].m_Id).ToString(), true, (Int32)(col_in[ind].m_Id), putPar);
                    //(c["NAME_SHR"].ToString().Trim(), true, c["NAME_SHR"].ToString().Trim(), (c["N_ALG"]).ToString(), true, (Int32)c[0], putPar);
                    indx++;
                }
                indx = 0;
                //foreach (DataRow c in colums_out)
                for (int ind = 0; ind < col_out.Count(); ind++)
                {
                    putPar          = new HandlerDbTaskCalculate.PUT_PARAMETER();
                    putPar.m_Id     = m_put_params_out[indx];
                    putPar.m_idNAlg = (Int32)(col_out[ind].m_Id);
                    this.AddColumn(col_out[ind].m_nAlg.Trim(), true, col_out[ind].m_nAlg.Trim(), (col_out[ind].m_Id).ToString(), true, (Int32)(col_out[ind].m_Id), putPar);
                    //this.AddColumn(c["NAME_SHR"].ToString().Trim(), true, c["NAME_SHR"].ToString().Trim(), (c["N_ALG"]).ToString(), false, (Int32)c[0], putPar);
                }

                // получить список putParametrs для текущего грида
                #region закомментированный участок

                //int rowInd = 0;
                ////foreach (DataRow r in rows)
                //for (int ind = 0; ind < listPut.Count(); ind++)
                //{
                //    this.Rows.Add(new object[this.ColumnCount]);
                //    this.Rows[Rows.Count - 1].Cells[0].Value = listPut[ind].NameShrComponent.ToString().Trim();//.["DESCRIPTION"].ToString().Trim();
                //    this.Rows[Rows.Count - 1].HeaderCell.Value = listPut[ind].m_Id;//r["ID"];

                //    for (int i = 0; i < r.ItemArray.Count(); i++) // ???
                //    {
                //        //if ()
                //        this.Rows[rowInd].Cells[ind].Tag = listPut[ind].m_Id;
                //    }

                //    rowInd++;
                //}

                //if (Rows.Count > 1)
                //{
                //    //Rows.RemoveAt(0);
                //    this.Rows.Add();
                //    this.Rows[Rows.Count - 1].Cells[0].Value = "Итого";
                //    this.Rows[Rows.Count - 1].HeaderCell.Value = listPut[0].m_Id;// rows[0]["ID"].ToString().Trim();
                //}
                //else
                //{ }

                #endregion

                try
                {
                    throw new Exception("Ошибка сборки");
                }
                catch (Exception e)
                {
                    Logging.Logg().Exception(e, @"Исключение произошло т.к. закомментированный код выше препятствует сборке", Logging.INDEX_MESSAGE.NOT_SET);
                }

                this.CellValueChanged += new DataGridViewCellEventHandler(cellEndEdit);
            }
コード例 #8
0
ファイル: DataGridView.cs プロジェクト: ChrisNovoselic/Tep32
            /// <summary>
            /// Заполнение датагрида
            /// </summary>
            /// <param name="inValues">Список входных значений</param>
            /// <param name="outValues">Список выходных значений</param>
            public void ShowValues(IEnumerable <HandlerDbTaskCalculate.VALUE> inValues
                                   , IEnumerable <HandlerDbTaskCalculate.VALUE> outValues)
            {
                int idAlg    = -1
                , idPut      = -1
                , idPutCell  = -1
                , iCol       = 0;
                float fltVal = -1F,
                      fltColumnAgregateValue = 0;
                AGREGATE_ACTION columnAction = AGREGATE_ACTION.UNKNOWN;

                HandlerDbTaskCalculate.IPUT_PARAMETERChange putPar       = new HandlerDbTaskCalculate.PUT_PARAMETER();
                IEnumerable <HandlerDbTaskCalculate.VALUE>  columnValues = null;
                IEnumerable <HandlerDbTaskCalculate.VALUE>  cellValues   = null;

                DataGridViewRow row;

                #region делегат для поиска значений во входных аргументах (для столбца; для ячейки)
                Func <HandlerDbTaskCalculate.VALUE, int, bool> get_values = (HandlerDbTaskCalculate.VALUE value, int id_put) => {
                    return((value.m_IdPut == id_put) &&
                           (((value.stamp_value - DateTime.MinValue).TotalDays > 0) ||
                            ((!((value.stamp_value - DateTime.MinValue).TotalDays > 0)))
                           ));
                };
                #endregion

                #region делегат для отображения значений с попутной установкой значений свойств ячейки, локальных переменных
                Action <DataGridViewCell, HandlerDbTaskCalculate.VALUE, AGREGATE_ACTION> show_value = (DataGridViewCell cell, HandlerDbTaskCalculate.VALUE value, AGREGATE_ACTION c_action) =>
                {
                    fltVal = value.value;

                    if ((c_action == AGREGATE_ACTION.UNKNOWN))
                    {
                        fltColumnAgregateValue += fltVal;
                    }
                    else
                    {
                        ;
                    }

                    //cell.Tag = new CELL_PROPERTY() { m_Value = fltVal, m_iQuality = value.m_iQuality };
                    cell.ReadOnly = Columns[iCol].ReadOnly ||
                                    double.IsNaN(fltVal);

                    // отобразить с количеством знаков в соответствии с настройками
                    cell.Value       = fltVal;
                    cell.ToolTipText = fltVal.ToString();
                };
                #endregion

                // Т.к. предполагается, что в наличии минимальный набор: "строка с данными" + "итоговая строка"
                if (RowCount > 1)
                {
                    // отменить обработку события - изменение значения в ячейке представления
                    //activateCellValue_onChanged(false);

                    // возможно, цикл по строкам?
                    foreach (DataGridViewColumn col in Columns)
                    {
                        iCol = col.Index;
                        fltColumnAgregateValue = 0F;
                        try
                        {
                            // получаем id колонки, по логике = id станции
                            putPar = (HandlerDbTaskCalculate.PUT_PARAMETER)((COLUMN_TAG)col.Tag).value;
                            idPut  = putPar.m_Id;

                            // все значения, относящиеся к выбранному id (общестанц.) ??? перенести
                            columnValues = inValues.Where(value => get_values(value, idPut));
                            columnValues = columnValues.Union(outValues.Where(value => get_values(value, idPut)));

                            idAlg = putPar.m_idNAlg;

                            // получить тип действия над переменной (суммирование/усреднение)
                            columnAction = ((COLUMN_TAG)col.Tag).ActionAgregateCancel == true ? AGREGATE_ACTION.UNKNOWN : getColumnAction(idAlg);

                            for (int ind = 0; ind < Rows.Count - 1; ind++) // исключая строку "Итого"
                            {
                                row = Rows[ind];

                                // id параметра для конкретной ТГ
                                idPutCell = (Int32)row.Cells[iCol].Tag;

                                // все значения, относящиеся к выбранному id (конкр. оборуд.)
                                cellValues = inValues.Where(value => get_values(value, idPutCell));
                                cellValues = columnValues.Union(outValues.Where(value => get_values(value, idPutCell)));

                                if (columnValues.Count() > 0)
                                {
                                    // есть значение хотя бы для одной строки
                                    foreach (HandlerDbTaskCalculate.VALUE value in cellValues)
                                    {
                                        show_value(row.Cells[iCol], value, columnAction);
                                    }
                                }
                                else
                                {
                                    // нет значений ни для одной строки
                                    Logging.Logg().Error(string.Format(@"DataGridViewValues::ShowValues () - нет строк для отображения..."), Logging.INDEX_MESSAGE.NOT_SET);
                                }
                            }

                            // вывод суммарных значений (строка "Итого") ??? необходим отдельный метод для усреднения, зачем???
                            if ((fltColumnAgregateValue > float.MinValue) &&
                                (!(columnAction == AGREGATE_ACTION.UNKNOWN)))
                            {
                                Rows[Rows.Count - 1].Cells[iCol].Value = columnAction == AGREGATE_ACTION.SUMMA
                                    ? fltColumnAgregateValue
                                        : fltColumnAgregateValue / (Rows.Count - 1);
                            }
                            else
                            {
                                ;
                            }
                        }
                        catch (Exception e)
                        {
                            Logging.Logg().Exception(e, @"DataGridViewValues::ShowValues () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                        }
                    }
                    // восстановить обработку события - изменение значение в ячейке
                    //activateCellValue_onChanged(true);
                }
                else
                {
                    Logging.Logg().Error(string.Format(@"DataGridViewValues::ShowValues () - нет строк для отображения..."), Logging.INDEX_MESSAGE.NOT_SET);
                }
            }