/// <summary>
            /// Получение суммы по столбцу
            /// </summary>
            /// <param name="indxCol">индекс столбца</param>
            /// <returns>сумма по столбцу</returns>
            private double summaColumnValues(int indxCol, out int counter)
            {
                counter = 0;
                double dblRes = 0F;

                try {
                    foreach (DataGridViewRow row in Rows)
                    {
                        if (row.Index < Rows.Count - 1)
                        {
                            // все кроме крайней строки
                            if ((!(row.Cells[indxCol].Value == null)) &&
                                (string.IsNullOrEmpty(row.Cells[indxCol].Value.ToString()) == false))
                            {
                                // только, если есть значение для разбора
                                dblRes += HMath.doubleParse(row.Cells[indxCol].Value.ToString());

                                counter++;
                            }
                            else
                            {
                                ;
                            }
                        }
                        else
                        {
                            ;
                        }
                    }
                } catch (Exception e) {
                    Logging.Logg().Exception(e, string.Format(@"PanelTaskVedomostBl::summaColumnValues () - суммирования столбца №{0}...", indxCol), Logging.INDEX_MESSAGE.NOT_SET);
                }

                return(dblRes);
            }
示例#2
0
            /// <summary>
            /// Заполнение массива данными
            /// </summary>
            /// <param name="dgvActive">активное отображение данных</param>
            private void fillToArray(DataGridView dgvActive)
            {
                arrayData = new object[dgvActive.RowCount, dgvActive.ColumnCount - 1];
                int indexArray = -1;

                for (int i = 0; i < dgvActive.Rows.Count; i++)
                {
                    indexArray = 0;

                    arrayData[i, indexArray++] = dgvActive.Rows[i].Tag.ToString();

                    for (int j = 0; j < dgvActive.Columns.Count; j++)
                    {
                        //if (j >= ((int)DataGridViewVedomostBl.INDEX_SERVICE_COLUMN.COUNT - 1)) {
                        //if (j > ((int)DataGridViewVedomostBl.INDEX_SERVICE_COLUMN.COUNT - 1))
                        arrayData[i, indexArray] =
                            //s_VedCalculate.AsParseToF
                            HMath.doubleParse
                                (dgvActive.Rows[i].Cells[j].Value.ToString());
                    }
                    //else
                    //??? получить дату
                    //    arrayData[i, indexArray] = dgvActive.Rows[i].Cells[j].Value.ToString();

                    indexArray++;
                    //} else
                    //    ;
                }
            }
            /// <summary>
            /// Проверка на изменение значений в двух таблицах
            /// </summary>
            /// <param name="origin">оригинальная таблица</param>
            /// <param name="editValue">значение</param>
            /// <param name="i">номер строки</param>
            /// <param name="idAlg">номер алгоритма</param>
            /// <param name="typeValues">тип данных</param>
            /// <returns>показатель изменения</returns>
            private int diffRowsInTables(DataTable origin, double editValue, int i, string formatRound, HandlerDbTaskCalculate.ID_VIEW_VALUES typeValues)
            {
                int    quality = 1;
                double originValues;

                //??? зачем сортировка
                origin = sortDataTable(origin, "ID_PUT, WR_DATETIME");

                if (origin.Rows.Count - 1 < i)
                {
                    originValues = 0;
                }
                else
                {
                    originValues =
                        //HPanelTepCommon.AsParseToF(
                        HMath.doubleParse(
                            origin.Rows[i]["VALUE"].ToString()
                            );
                }

                switch (typeValues)
                {
                case HandlerDbTaskCalculate.ID_VIEW_VALUES.ARCHIVE:
                    //??? почему сравниваются строки
                    if (originValues.ToString(formatRound, CultureInfo.InvariantCulture).Equals(editValue.ToString().Trim()) == false)
                    {
                        quality = 2;
                    }
                    break;

                case HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD:
                    quality = 1;
                    break;

                case HandlerDbTaskCalculate.ID_VIEW_VALUES.DEFAULT:
                    break;

                default:
                    break;
                }

                return(quality);
            }
示例#4
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[] curRDGValues = new RDGStruct[m_curRDGValues.Length];
            int         hour         = -1;
            double      val          = -1F;
            string      name_future  = string.Empty;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }

            if ((typeValues == CONN_SETT_TYPE.PBR) ||
                (typeValues == CONN_SETT_TYPE.ADMIN))
            {
                List <DataRow> rowsTECComponent = null;
                //Получить значения для сохранения
                name_future      = allTECComponents[indx].name_future;
                rowsTECComponent = new List <DataRow>(m_tableValuesResponse.Select(@"GTP_ID='" + name_future + @"'"));
                //Вариант №2 - тестовый
                //foreach (DataRow r in m_tableValuesResponse.Rows)
                //    if (name_future.Equals(r["GTP_ID"]) == true)
                //        rowsTECComponent.Add(r);
                //    else
                //        ;
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Count > 0)
                {
                    // добавление недостающих строк путем копирования крайней
                    if (rowsTECComponent.Count < 24)
                    {
                        // фрагмент кода выполняется при загрузке
                        //while (rowsTECComponent.Count < 24) {
                        //    rowsTECComponent.Add(rowsTECComponent[rowsTECComponent.Count - 1]);

                        //    if (m_tableValuesResponse.Columns.Contains(@"SESSION_INTERVAL") == true)
                        //        rowsTECComponent[rowsTECComponent.Count - 1][@"SESSION_INTERVAL"] = rowsTECComponent.Count - 1;
                        //    else
                        //        ;
                        //}
                    }
                    else
                    {
                        Logging.Logg().Error(string.Format(@"AdminTS_KomDisp::saveCSVValues () - для ГТП(ИД={0}) количество записей={1} ..."
                                                           , name_future, rowsTECComponent.Count)
                                             , Logging.INDEX_MESSAGE.NOT_SET);
                    }

                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")"
                                                     , Logging.INDEX_MESSAGE.NOT_SET);

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }
        private static DataTable importInValues(long idSession
                                                , Int16 quality
                                                , DataTable tablePrjPars
                                                , DataTable tableDictPrjRatio
                                                , out int err)
        {
            err = 0;

            List <LINK_ID_to_NUMCOLUMN> listLinkIdToNumColumn = new List <LINK_ID_to_NUMCOLUMN>
            {
                new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1029, iNumColumn = 4
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1030, iNumColumn = 5
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1031, iNumColumn = 6
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1032, iNumColumn = 7
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1033, iNumColumn = 8
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 1034, iNumColumn = 9
                }
                , new LINK_ID_to_NUMCOLUMN()
                {
                    id = 5, iNumColumn = 10
                }
            };

            OleDbCommand    cmd;
            OleDbDataReader reader;
            DataTable       tableRes = null;
            string          nAlg     = string.Empty
            , mera = string.Empty;
            int idComp = -1, numColumnComp = -1
            , iNumColumnRatio = -1, ratioValue = -1, dbRatioValue = -1
            , cntRowValues = -1;

            object[] vals = null;
            double   val  = -1F;

            DataRow[] arSelPrjPars = null // массив строк при поиске проектных данных по номеру алгоритма
            , arSelDictPrjRatio = null;

            try {
                iNumColumnRatio = 3;

                tableRes = new DataTable();
                tableRes.Columns.AddRange(new DataColumn[] {
                    new DataColumn("ID_PUT", typeof(Int32))
                    , new DataColumn("ID_SESSION", typeof(long))
                    , new DataColumn("QUALITY", typeof(Int16))
                    , new DataColumn("VALUE", typeof(double))
                    //, new DataColumn ("AVG", typeof(Int16))
                    , new DataColumn("WR_DATETIME", typeof(DateTime))
                    , new DataColumn("EXTENDED_DEFINITION", typeof(Int32))
                });

                using (OpenFileDialog openFileDialog = new OpenFileDialog()) {
                    openFileDialog.CheckPathExists                  =
                        openFileDialog.CheckFileExists              =
                            openFileDialog.ShowReadOnly             =
                                openFileDialog.ShowHelp             =
                                    openFileDialog.RestoreDirectory =
                                        true;
                    openFileDialog.Multiselect = false;

                    openFileDialog.Title            = "Выберите файл для импорта значений";
                    openFileDialog.InitialDirectory = @"D:\TEPW";
                    openFileDialog.DefaultExt       = "xls";
                    openFileDialog.Filter           = "dBase(Расчет ТЭП)-файлы (*.dbf)|*.dbf" + @"|"
                                                      + "MS Excel(2003)-файлы (*.xls)|*.xls";
                    openFileDialog.FilterIndex = 0;

                    if (openFileDialog.ShowDialog(Control.FromHandle(Process.GetCurrentProcess().MainWindowHandle)) == DialogResult.OK)
                    {
                        using (OleDbConnection conn = new OleDbConnection(
                                   //ConnectionSettings.GetConnectionStringDBF(Path.GetDirectoryName(openFileDialog.FileName))
                                   string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=dBASE III;", Path.GetDirectoryName(openFileDialog.FileName))
                                   ))
                        {
                            conn.Open();

                            cmd            = new OleDbCommand("SELECT * FROM inblok");
                            cmd.Connection = conn;
                            reader         = cmd.ExecuteReader();

                            vals = new object[reader.FieldCount];
                            while (reader.Read() == true)
                            {
                                try
                                {
                                    cntRowValues = reader.GetValues(vals);

                                    nAlg         = ((string)vals[0]).Trim();
                                    arSelPrjPars = tablePrjPars.Select(string.Format(@"N_ALG='{0}'", nAlg)); //0 - индекс поля 'ORDER' ('N_ALG')

                                    ratioValue        = 0;
                                    mera              = vals[iNumColumnRatio] is DBNull == false ? ((string)vals[iNumColumnRatio]).Trim().ToLower() : string.Empty;
                                    arSelDictPrjRatio = new DataRow[] { tableDictPrjRatio.AsEnumerable().ToList().Find(r => {
                                            // только если наименование не пустое И индекс 1-го найденного символа = 0
                                            return(((string.IsNullOrEmpty(((string)r[@"NAME_RU"]).Trim()) == false) &&
                                                    (string.IsNullOrEmpty(mera) == false)) ? mera.IndexOf(((string)r[@"NAME_RU"]).Trim()) == 0 : false);
                                        }) };
                                    if (!(arSelDictPrjRatio[0] == null))
                                    {
                                        ratioValue = (int)arSelDictPrjRatio[0]["VALUE"];
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    foreach (DataRow r in arSelPrjPars)
                                    {
                                        idComp        = Int32.Parse(r[@"ID_COMP"].ToString().Trim());
                                        numColumnComp = listLinkIdToNumColumn.Find(item => { return(item.id == idComp); }).iNumColumn;

                                        val = HMath.doubleParse((string)vals[numColumnComp]);

                                        dbRatioValue      = 0;
                                        arSelDictPrjRatio = tableDictPrjRatio.Select(string.Format(@"ID ={0}", (int)r[@"ID_RATIO"]));
                                        if (arSelDictPrjRatio.Length > 0)
                                        {
                                            if (arSelDictPrjRatio.Length == 1)
                                            {
                                                dbRatioValue = (int)arSelDictPrjRatio[0]["VALUE"];
                                            }
                                            else
                                            {
                                                ;
                                            }
                                        }
                                        else
                                        {
                                            ;
                                        }

                                        // проверить требуется ли преобразование
                                        if (!(ratioValue == dbRatioValue))
                                        {
                                            // домножить значение на коэффициент
                                            val *= Math.Pow(10F, ratioValue - dbRatioValue);
                                        }
                                        else
                                        {
                                            ;
                                        }

                                        //if (Double.TryParse(((string)vals[numColumnComp]).Trim(), out val) == true)
                                        if (double.IsNaN(val) == false)
                                        {
                                            tableRes.Rows.Add(new object[] {
                                                r[@"ID"]            //ID_PUT
                                                , idSession         //ID_SESSION - значение будет изменено при обработке таблицы
                                                , quality           //QUALITY
                                                , val               //VALUE
                                                //, r[@"AVG"] //AVG
                                                , DateTime.MinValue //WR_DATETIME - значение будет изменено при обработке таблицы
                                                , -1                //EXTENDED_DEFINITION
                                            });
                                        }
                                        else
                                        {
                                            ;
                                        }
                                    }
                                } catch (Exception e) {
                                    Logging.Logg().Exception(e
                                                             , string.Format(@"ImpExpPrevVersionValues::importInValues () - обработка значения для nAlg=", nAlg)
                                                             , Logging.INDEX_MESSAGE.NOT_SET);
                                }
                            }

                            conn.Close();
                        }
                    }
                    else
                    {
                        // отказ пользователя от загрузки значений (файл не был выбран)
                        err = 1;
                    }
                }
            } catch (Exception e) {
                err = -1; // неизвестная(общая) ошибка - смотреть лог-файл

                Logging.Logg().Exception(e, @"ImpExpPrevVersionValues::importInValues () - ...", Logging.INDEX_MESSAGE.NOT_SET);
            }

            return(tableRes == null ? new DataTable() : tableRes);
        }
示例#6
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[] curRDGValues = new RDGStruct[m_curRDGValues.Length];
            int         hour         = -1;
            double      val          = -1F;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }

            if ((typeValues == CONN_SETT_TYPE.PBR) ||
                (typeValues == CONN_SETT_TYPE.ADMIN))
            {
                //Получить значения для сохранения
                DataRow [] rowsTECComponent = m_tableValuesResponse.Select(@"GTP_ID='" + allTECComponents[indx].name_future + @"'");
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Length > 0)
                {
                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try
                        {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e, Logging.INDEX_MESSAGE.NOT_SET
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")");

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }
示例#7
0
        private Errors saveCSVValues(int indx, object pbr_number)
        {
            Errors errRes = Errors.NoSet;

            RDGStruct[]    curRDGValues     = new RDGStruct[m_curRDGValues.Length];
            int            hour             = -1;
            double         val              = -1F;
            string         name_future      = string.Empty;
            List <DataRow> rowsTECComponent = null;

            CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE;

            if (pbr_number is string)
            {
                typeValues = CONN_SETT_TYPE.PBR;
            }
            else
            if (pbr_number is CONN_SETT_TYPE)
            {
                typeValues = (CONN_SETT_TYPE)pbr_number;     //ADMIN
            }
            else
            {
                ;
            }
            // проверить был ли определен тип сохраняемых значений
            //  и имеет ли таблица соответствующую типу значений структуру (присутствуют ли в таблице необходимые поля)
            if (((typeValues == CONN_SETT_TYPE.PBR) ||
                 (typeValues == CONN_SETT_TYPE.ADMIN)) &&
                (CheckNameFieldsOfTable(m_tableValuesResponse
                                        , typeValues == CONN_SETT_TYPE.PBR ? new string [] { @"GTP_ID", @"SESSION_INTERVAL", @"REC", @"IS_PER", @"DIVIAT", @"FC" }
                        : typeValues == CONN_SETT_TYPE.ADMIN ? new string [] { @"GTP_ID", @"SESSION_INTERVAL", @"REC", @"IS_PER", @"DIVIAT", @"FC" }
                            : new string [] { @"GTP_ID", @"SESSION_INTERVAL" }) == true))
            {
                //Получить значения для сохранени
                name_future      = allTECComponents[indx].name_future;
                rowsTECComponent = new List <DataRow>(m_tableValuesResponse.Select(@"GTP_ID='" + name_future + @"'"));
                //Вариант №2 - тестовый
                //foreach (DataRow r in m_tableValuesResponse.Rows)
                //    if (name_future.Equals(r["GTP_ID"]) == true)
                //        rowsTECComponent.Add(r);
                //    else
                //        ;
                //Проверить наличие записей для ГТП
                if (rowsTECComponent.Count > 0)
                {
                    //!!! должно быть 24 записи (обеспечивается дополнением при загрузке)
                    if (rowsTECComponent.Count < 24)
                    {
                        Logging.Logg().Error(string.Format(@"AdminTS_KomDisp::saveCSVValues () - для ГТП(ИД={0}) количество записей={1} ..."
                                                           , name_future, rowsTECComponent.Count)
                                             , Logging.INDEX_MESSAGE.NOT_SET);
                    }
                    else
                    {
                        ;
                    }

                    foreach (DataRow r in rowsTECComponent)
                    {
                        hour = int.Parse(r[@"SESSION_INTERVAL"].ToString());

                        try {
                            switch (typeValues)
                            {
                            case CONN_SETT_TYPE.PBR:
                                HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr);
                                HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin);
                                HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax);

                                curRDGValues[hour].pbr_number = pbr_number as string;

                                ////Отладка
                                //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number);
                                break;

                            case CONN_SETT_TYPE.ADMIN:
                                HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation);
                                curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1;
                                HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation);
                                curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1;
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e
                                                     , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")"
                                                     , Logging.INDEX_MESSAGE.NOT_SET);

                            errRes = Errors.ParseError;
                        }

                        if (errRes == Errors.ParseError)
                        {
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }

                    if (errRes == Errors.NoSet)
                    {
                        //Очистить тек./массив с данными
                        ClearValues();

                        //Копировать полученные значения в "текущий массив"
                        curRDGValues.CopyTo(m_curRDGValues, 0);

                        indxTECComponents = indx;

                        errRes =
                            SaveChanges()
                            //Errors.NoSet
                            //Errors.NoError
                        ;
                    }
                    else
                    {
                        ; //errRes = Errors.ParseError;
                    }
                }
                else
                {
                    errRes = Errors.ParseError;
                }

                if (errRes == Errors.ParseError)
                {
                    //Пропустить запись ГТП, разрешить переход к следующей
                    //Псевдо-закончена обработка всех событий
                    completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS);
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            return(errRes);
        }