protected override void initialize(out int err, out string errMsg) { err = 0; errMsg = string.Empty; HTepUsers.ID_ROLES role = (HTepUsers.ID_ROLES)HTepUsers.Role; Control ctrl = null; string strItem = string.Empty; int i = -1; // ВАЖНО! Обязательно до инициализации таблиц проекта (сортировка призойдет при вызове этой функции). HandlerDb.ModeNAlgSorting = HandlerDbTaskCalculate.MODE_NALG_SORTING.Programmatic; //Заполнить таблицы со словарными, проектными величинами // PERIOD, TIMEZONE, COMP_LIST, PARAMETERS(Type), MODE_DEV, RATIO initialize(new ID_DBTABLE[] { ID_DBTABLE.TIME , ID_DBTABLE.TIMEZONE , ID_DBTABLE.COMP_LIST , IsInParameters == true ? ID_DBTABLE.IN_PARAMETER : ID_DBTABLE.UNKNOWN , IsOutParameters == true ? ID_DBTABLE.OUT_PARAMETER : ID_DBTABLE.UNKNOWN , ID_DBTABLE.MODE_DEV , ID_DBTABLE.MEASURE , ID_DBTABLE.RATIO } , out err, out errMsg ); HandlerDb.FilterDbTableTimezone = TepCommon.HandlerDbTaskCalculate.DbTableTimezone.Msk; HandlerDb.FilterDbTableTime = TepCommon.HandlerDbTaskCalculate.DbTableTime.Month | TepCommon.HandlerDbTaskCalculate.DbTableTime.Day | TepCommon.HandlerDbTaskCalculate.DbTableTime.Hour; HandlerDb.FilterDbTableCompList = TepCommon.HandlerDbTaskCalculate.DbTableCompList.Tec | TepCommon.HandlerDbTaskCalculate.DbTableCompList.Tg; if (err == 0) { try { //Заполнить элемент управления с периодами расчета PanelManagement.FillValuePeriod(m_dictTableDictPrj[ID_DBTABLE.TIME] , ID_PERIOD.DAY); //??? активный период требуется прочитать из [profile] //Заполнить элемент управления с часовыми поясами PanelManagement.FillValueTimezone(m_dictTableDictPrj[ID_DBTABLE.TIMEZONE] , ID_TIMEZONE.MSK); //??? активный пояс требуется прочитать из [profile] PanelManagement.AllowUserPeriodChanged = true; PanelManagement.AllowUserTimezoneChanged = true; } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTaskTepValues::initialize () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } else { Logging.Logg().Error(MethodBase.GetCurrentMethod(), errMsg, Logging.INDEX_MESSAGE.NOT_SET); } }
protected override void initialize(out int err, out string errMsg) { err = 0; errMsg = string.Empty; m_arListIds = new List <int> [(int)INDEX_ID.COUNT]; for (INDEX_ID id = INDEX_ID.PERIOD; id < INDEX_ID.COUNT; id++) { switch (id) { case INDEX_ID.PERIOD: m_arListIds[(int)id] = new List <int> { (int)ID_PERIOD.HOUR /*, (int)ID_PERIOD.SHIFTS*/, (int)ID_PERIOD.DAY, (int)ID_PERIOD.MONTH }; break; case INDEX_ID.TIMEZONE: m_arListIds[(int)id] = new List <int> { (int)ID_TIMEZONE.UTC, (int)ID_TIMEZONE.MSK, (int)ID_TIMEZONE.NSK }; break; default: //??? где получить запрещенные для расчета/отображения идентификаторы компонентов ТЭЦ\параметров алгоритма m_arListIds[(int)id] = new List <int>(); break; } } m_arTableDictPrjs = new DataTable[(int)INDEX_TABLE_DICTPRJ.COUNT]; HTepUsers.ID_ROLES role = (HTepUsers.ID_ROLES)HTepUsers.Role; Control ctrl = null; string strItem = string.Empty; int i = -1; //Заполнить таблицы со словарными, проектными величинами string[] arQueryDictPrj = getQueryDictPrj(); for (i = (int)INDEX_TABLE_DICTPRJ.PERIOD; i < (int)INDEX_TABLE_DICTPRJ.COUNT; i++) { m_arTableDictPrjs[i] = m_handlerDb.Select(arQueryDictPrj[i], out err); if (!(err == 0)) { break; } else { ; } } if (err == 0) { try { m_arListIds[(int)INDEX_ID.ALL_COMPONENT].Clear(); initialize(); //Заполнить элемент управления с часовыми поясами ctrl = Controls.Find(TepCommon.PanelTaskTepCalculate.PanelManagementTaskTepCalculate.INDEX_CONTROL_BASE.CBX_TIMEZONE.ToString(), true)[0]; foreach (DataRow r in m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.TIMEZONE].Rows) { (ctrl as ComboBox).Items.Add(r[@"NAME_SHR"]); } // порядок именно такой (установить 0, назначить обработчик) //, чтобы исключить повторное обновление отображения (ctrl as ComboBox).SelectedIndex = 2; //??? требуется прочитать из [profile] (ctrl as ComboBox).SelectedIndexChanged += new EventHandler(cbxTimezone_SelectedIndexChanged); setCurrentTimeZone(ctrl as ComboBox); //Заполнить элемент управления с периодами расчета ctrl = Controls.Find(PanelManagementTaskTepCalculate.INDEX_CONTROL_BASE.CBX_PERIOD.ToString(), true)[0]; foreach (DataRow r in m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PERIOD].Rows) { (ctrl as ComboBox).Items.Add(r[@"DESCRIPTION"]); } (ctrl as ComboBox).SelectedIndexChanged += new EventHandler(cbxPeriod_SelectedIndexChanged); (ctrl as ComboBox).SelectedIndex = 0; //??? требуется прочитать из [profile] //// отобразить значения //updateDataValues(); } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTaskTepValues::initialize () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } else { switch ((INDEX_TABLE_DICTPRJ)i) { case INDEX_TABLE_DICTPRJ.PERIOD: errMsg = @"Получение интервалов времени для периода расчета"; break; case INDEX_TABLE_DICTPRJ.TIMEZONE: errMsg = @"Получение списка часовых поясов"; break; case INDEX_TABLE_DICTPRJ.COMPONENT: errMsg = @"Получение списка компонентов станции"; break; case INDEX_TABLE_DICTPRJ.PARAMETER: errMsg = @"Получение строковых идентификаторов параметров в алгоритме расчета"; break; case INDEX_TABLE_DICTPRJ.MODE_DEV: errMsg = @"Получение идентификаторов режимов работы оборудования"; break; //case INDEX_TABLE_DICTPRJ.MEASURE: // errMsg = @"Получение информации по единицам измерения"; // break; default: errMsg = @"Неизвестная ошибка"; break; } } }