Exemplo n.º 1
0
        /// <summary>
        /// Метод добавления колонок в DataGridView + заполнение значениями ячеек
        /// </summary>
        /// <param name="date">Дата отображаемых значений</param>
        /// <param name="bNewValues">Признак наличия новых значений (false - обновление оформления представления при изменении цветовой схемы)</param>
        /// <param name="bSyncReq">Признак необходимости синхронизации по окончании выполнения метода</param>        
        private void addTextBoxColumn(DateTime date, bool bNewValues, bool bSyncReq)
        {
            int indx = ((AdminTS_LK)m_admin).indxTECComponents;
            //((AdminTS_LK)m_admin).set_CurComponent(0, m_admin.m_curDate);
            //indx = ((AdminTS_LK)m_admin).m_listTECComponentIndexDetail[this.dgwAdminTable.Columns.Count - ((int)DataGridViewAdminLK.DESC_INDEX.COUNT_COLUMN)];
            Color dgwBackColor;

            dgwBackColor = this.dgwAdminTable.BackColor;

            if (m_admin.GetIdTECComponent(indx) > (int)TECComponent.ID.TG) {
            // новый столбец
                ((DataGridViewAdminLK)this.dgwAdminTable).AddTextBoxColumn(m_admin.GetNameTECComponent(indx),
                                                                    m_admin.GetIdTECComponent(indx),
                                                                    m_admin.GetIdGTPOwnerTECComponent(indx),
                                                                    date);

                for (int i = 0; i < 24; i++)
                {
                    //Дата/время
                    if (this.dgwAdminTable.Columns.Count == ((int)DataGridViewAdminLK.DESC_INDEX.COUNT_COLUMN + 1)) //Только при добавлении 1-го столбца
                        this.dgwAdminTable.Rows[i].Cells[0].Value = date.AddHours(i + 1).ToString(@"dd-MM-yyyy HH:mm", CultureInfo.InvariantCulture);
                    else
                        ;
                    // цвет 0-го столбца изменяем всегда, на случай изменения цветовой гаммы приложения
                    this.dgwAdminTable.Rows [i].Cells [0].Style.BackColor = dgwBackColor;

                    try
                    {
                        this.dgwAdminTable.Rows[i].Cells[this.dgwAdminTable.Columns.Count - 4].Value = ((AdminTS_LK)m_admin).m_listCurRDGValues[indx][i].pbr.ToString("F2");
                        this.dgwAdminTable.Rows [i].Cells [this.dgwAdminTable.Columns.Count - 4].Style.BackColor = dgwBackColor;
                    }
                    catch (Exception e)
                    {
                        Logging.Logg().Warning(string.Format("PanelAdminLK : addTextBoxColumn () - нет листа с суточными значениями(снова потерян индекс): {0}", e.Message)
                            , Logging.INDEX_MESSAGE.NOT_SET);
                    }

                    ((DataGridViewAdminLK)this.dgwAdminTable).DataGridViewAdminLK_CellValueChanged(null
                        , new DataGridViewCellEventArgs(this.dgwAdminTable.Columns.Count - 4, i));
                }
                
                visibleControlRDGExcel(((AdminTS_LK)m_admin).GetIdTECOwnerTECComponent(indx));
            } else
                ;

            if ((m_admin.GetIdTECComponent(indx) > (int)TECComponent.ID.GTP)
                && (m_admin.GetIdTECComponent(indx) < (int)TECComponent.ID.PC))
            {                
                for (int i = 0; i < 24; i++)
                {
                    //Дата/время
                    if (this.dgwAdminTable.Columns.Count == ((int)DataGridViewAdminLK.DESC_INDEX.COUNT_COLUMN + 1)) { //Только при добавлении 1-го столбца
                        this.dgwAdminTable.Rows [i].Cells [0].Value = date.AddHours (i + 1).ToString (@"dd-MM-yyyy HH:mm", CultureInfo.InvariantCulture);                        
                    } else
                        ;
                    // цвет 0-го столбца изменяем на случай изменения цветовой гаммы приложения
                    this.dgwAdminTable.Rows [i].Cells [0].Style.BackColor = dgwBackColor;

                    try
                    {
                        this.dgwAdminTable.Rows[i].Cells[(int)DataGridViewAdminLK.DESC_INDEX.PLAN_POWER].Value = ((AdminTS_LK)m_admin).m_listCurRDGValues[indx][i].pbr.ToString("F2");
                        this.dgwAdminTable.Rows [i].Cells [(int)DataGridViewAdminLK.DESC_INDEX.PLAN_POWER].Style.BackColor = dgwBackColor;
                        this.dgwAdminTable.Rows[i].Cells[(int)DataGridViewAdminLK.DESC_INDEX.PLAN_TEMPERATURE].Value = ((AdminTS_LK)m_admin).m_listCurRDGValues[indx][i].pmin.ToString("F2");
                        this.dgwAdminTable.Rows [i].Cells [(int)DataGridViewAdminLK.DESC_INDEX.PLAN_TEMPERATURE].Style.BackColor = dgwBackColor;
                        this.dgwAdminTable.Rows[i].Cells[dgwAdminTable.Columns.Count - 3].Value = (bool)(((AdminTS_LK)m_admin).m_listCurRDGValues[indx][i].deviationPercent);
                        this.dgwAdminTable.Rows [i].Cells [dgwAdminTable.Columns.Count - 3].Style.BackColor = dgwBackColor;
                        this.dgwAdminTable.Rows[i].Cells[dgwAdminTable.Columns.Count - 2].Value = ((AdminTS_LK)m_admin).m_listCurRDGValues[indx][i].deviation.ToString("F2");
                        this.dgwAdminTable.Rows [i].Cells [dgwAdminTable.Columns.Count - 2].Style.BackColor = dgwBackColor;
                    }
                    catch (Exception e)
                    {
                        Logging.Logg().Warning(string.Format("PanelAdminLK : addTextBoxColumn - нет листа с суточными значениями(снова потерян индекс): {0}", e.Message)
                            , Logging.INDEX_MESSAGE.NOT_SET);
                    }

                    ((DataGridViewAdminLK)this.dgwAdminTable).DataGridViewAdminLK_CellValueChanged(null
                        , new DataGridViewCellEventArgs (this.dgwAdminTable.Columns.Count - 4, i));
                }                
            }

            if (bNewValues == true) {
                m_admin.CopyCurToPrevRDGValues ();
                ((AdminTS_LK)m_admin).m_listPrevRDGValues.Add (m_admin.m_prevRDGValues);
            } else
                ;

            if (bSyncReq == true)
                ((AdminTS_LK)m_admin).m_semaIndxTECComponents.Release ();
            else
                ;
        }