/// <summary> /// Обработчик события - нажатие на кнопку "Загрузить" (кнопка - аналог "Обновить") /// </summary> /// <param name="obj">Объект, инициировавший событие (??? кнопка или п. меню)</param> /// <param name="ev">Аргумент события</param> protected override void panelTepCommon_btnUpdate_onClick(object obj, EventArgs ev) { Session.m_ViewValues = HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD; // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD); }
/// <summary> /// Инициировать подготовку к расчету /// , выполнить расчет /// , актуализировать таблицы с временными значениями /// </summary> /// <param name="type">Тип требуемого расчета</param> private void btnRun_onClick(TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE type) { int err = -1; try { // обновить входные значения для расчета HandlerDb.UpdateSession(INDEX_DBTABLE_NAME.INVALUES , m_TableOrigin , m_TableEdit , out err); // выполнить расчет HandlerDb.Calculate(type); } catch (Exception e) { //deleteSession (); Logging.Logg().Exception(e, @"PanelTaskTepInval::btnRun_onClick (type=" + type.ToString() + @") - ...", Logging.INDEX_MESSAGE.NOT_SET); } finally { //??? сообщение пользователю } }
/// <summary> /// Обработчик события - нажатие кнопки "Сохранить" - сохранение значений в БД /// </summary> /// <param name="obj">Объект, инициировавший событие(кнопка)</param> /// <param name="ev">Аргумент события(пустой)</param> protected override void panelTepCommon_btnSave_onClick(object obj, EventArgs ev) { int err = -1; string errMsg = string.Empty; DataRow[] dr_saveValue; DateTimeRange[] dtrPer = HandlerDb.GetDateTimeRangeToSave(); for (int i = 0; i < m_dgvValues.Rows.Count; i++) { m_arTableOrigin[(int)HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD] = getStructurInval(dtrPer[i], out err); dr_saveValue = valuesFence.Select(string.Format(m_TableEdit.Locale, "WR_DATETIME = '{0:o}'", m_dgvValues.Rows[i].Cells["DATE"].Value)); if (dr_saveValue.Count() > 0) { m_arTableEdit[(int)HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD] = HandlerDb.SavePlanValue(m_TableOrigin, dr_saveValue, (int)Session.CurrentIdTimezone, out err); //s_dtDefaultAU = dtrPer[i].Begin.AddMonths(1); base.panelTepCommon_btnSave_onClick(obj, ev); } else { ; } } }
/// <summary> /// Инициировать подготовку к расчету /// , выполнить расчет /// , актуализировать таблицы с временными значениями /// </summary> /// <param name="type">Тип требуемого расчета</param> private void btnRun_onClick(TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE type) { int err = -1; try { if ((!(m_TableOrigin == null)) && (!(m_TableEdit == null))) { // обновить входные значения для расчета HandlerDb.UpdateSession(ID_DBTABLE.INVALUES , m_TableOrigin , m_TableEdit , out err); // выполнить расчет HandlerDb.Calculate(type); } else { ASUTP.Logging.Logg().Warning(@"PanelTaskTepInval::btnRun_onClick (type=" + type.ToString() + @") - попытка расчета без загрузки входных данных..." , ASUTP.Logging.INDEX_MESSAGE.NOT_SET); } } catch (Exception e) { //deleteSession (); ASUTP.Logging.Logg().Exception(e, @"PanelTaskTepInval::btnRun_onClick (type=" + type.ToString() + @") - ...", ASUTP.Logging.INDEX_MESSAGE.NOT_SET); } finally { //??? сообщение пользователю } }
/// <summary> /// Обработчик события - нажатие кнопки загрузить(арх.) /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события, описывающий состояние элемента</param> private void HPanelTepCommon_btnHistory_Click(object obj, EventArgs ev) { ////??? //clear(); // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.ARCHIVE); }
///// <summary> ///// Инициировать подготовку к расчету ///// , выполнить расчет ///// , актуализировать таблицы с временными значениями ///// </summary> ///// <param name="type">Тип требуемого расчета</param> //protected override void btnRun_onClick(HandlerDbTaskCalculate.TaskCalculate.TYPE type) //{ // throw new NotImplementedException(); //} /// <summary> /// Удалить сессию (+ очистить реквизиты сессии) /// </summary> protected override void deleteSession() { base.deleteSession(); int err = -1; HandlerDb.InitSession(out err); }
/// <summary> /// обработчик кнопки-архивные значения /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> private void btnHistory_OnClick(object obj, EventArgs ev) { try { // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.ARCHIVE); } catch (Exception e) { Logging.Logg().Exception(e, string.Format(@"PanelTaskAutobookMonthValues::btnHistory_OnClick () - ..."), Logging.INDEX_MESSAGE.NOT_SET); } }
/// <summary> /// получает структуру таблицы /// INVAL_XXXXXX??? /// </summary> /// <param name="arQueryRanges">временной промежуток</param> /// <param name="err">Индентификатор ошибки</param> /// <returns>таблица</returns> private DataTable getStructurInval(DateTimeRange arQueryRanges, out int err) { string strRes = string.Empty; strRes += "SELECT * FROM " + GetNameTableIn(arQueryRanges.End) + " WHERE ID_TIME = " + (int)Session.ActualIdPeriod; return(HandlerDb.Select(strRes, out err)); }
/// <summary> /// Обработчик события - нажатие на кнопку "Загрузить" (кнопка - аналог "Обновить") /// </summary> /// <param name="obj">Объект, инициировавший событие (??? кнопка или п. меню)</param> /// <param name="ev">Аргумент события</param> protected override void panelTepCommon_btnUpdate_onClick(object obj, EventArgs ev) { try { // m_dgvValues.ClearValues(); clear(false); //!!! нельзя вызывать, т.к. будет выполнен базовый метод // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD); } catch (Exception e) { Logging.Logg().Exception(e, string.Format(@"PanelTaskAutobookMonthValues::panelTepCommon_btnUpdate_onClick () - ..."), Logging.INDEX_MESSAGE.NOT_SET); } }
///// <summary> ///// Заполнение значениями элементов управления ///// </summary> //protected override void initialize() //{ //} /// <summary> /// Обработчик события - нажатие кнопки "Результирующее действие - Расчет" /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> protected override void btnRunRes_onClick(object obj, EventArgs ev) { int err = -1; string strErr = string.Empty; // удалить устаревшую сессию HandlerDb.Clear(); //??? создать новую сессию // установить/отобразить значения HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_LOAD); // произвести расчет HandlerDb.Calculate(TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_TEP_REALTIME); }
/// <summary> /// Установить значения таблиц для редактирования /// </summary> /// <param name="err">Идентификатор ошибки при выполнеинии функции</param> /// <param name="strErr">Строка текста сообщения при наличии ошибки</param> protected override void setValues(DateTimeRange[] arQueryRanges, out int err, out string strErr) { err = 0; strErr = string.Empty; Session.New(); //Запрос для получения архивных данных m_arTableOrigin[(int)TepCommon.HandlerDbTaskCalculate.INDEX_TABLE_VALUES.ARCHIVE] = new DataTable(); //Запрос для получения автоматически собираемых данных m_arTableOrigin[(int)TepCommon.HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] = Session.m_LoadValues == TepCommon.HandlerDbTaskCalculate.SESSION.INDEX_LOAD_VALUES.SOURCE ? HandlerDb.GetValuesVar(Type, ActualIdPeriod, CountBasePeriod, arQueryRanges, out err) : Session.m_LoadValues == TepCommon.HandlerDbTaskCalculate.SESSION.INDEX_LOAD_VALUES.SOURCE_IMPORT ? ImpExpPrevVersionValues.Import(Type , Session.m_Id , (int)TepCommon.HandlerDbTaskCalculate.ID_QUALITY_VALUE.USER, m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PARAMETER] , m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.RATIO] , out err) : new DataTable(); //Проверить признак выполнения запроса if (err == 0) { //Заполнить таблицу данными вводимых вручную (значения по умолчанию) m_arTableOrigin[(int)TepCommon.HandlerDbTaskCalculate.INDEX_TABLE_VALUES.DEFAULT] = HandlerDb.GetValuesDef(ActualIdPeriod, out err); //Проверить признак выполнения запроса if (err == 0) { //Начать новую сессию расчета // , получить входные для расчета значения для возможности редактирования HandlerDb.CreateSession(m_id_panel , CountBasePeriod , m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PARAMETER] , ref m_arTableOrigin , new DateTimeRange(arQueryRanges[0].Begin, arQueryRanges[arQueryRanges.Length - 1].End) , out err, out strErr); } else { strErr = @"ошибка получения данных по умолчанию с " + Session.m_rangeDatetime.Begin.ToString() + @" по " + Session.m_rangeDatetime.End.ToString(); } } else { strErr = @"ошибка получения автоматически собираемых данных с " + Session.m_rangeDatetime.Begin.ToString() + @" по " + Session.m_rangeDatetime.End.ToString(); } }
/// <summary> /// Обработчик события - нажатие кнопки "Результирующее действие - Расчет" /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> protected override void btnRunRes_onClick(object obj, EventArgs ev) { int err = -1; string strErr = string.Empty; DateTimeRange[] arQueryRanges = null; // удалить устаревшую сессию deleteSession(); // создать новую сессию arQueryRanges = HandlerDb.GetDateTimeRangeValuesVar(); // загрузить значения для новой сесии // произвести расчет HandlerDb.Calculate(TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_TEP_REALTIME); // установить/отобразить значения setValues(arQueryRanges, out err, out strErr); }
//protected override void initialize() //{ // base.initialize(); // //eventAddPutParameter += new Action<PUT_PARAMETER> ((PanelManagement as PanelManagementTaskTepValues).AddParameter); //} public override bool Activate(bool activate) { bool bRes = base.Activate(activate); int err = 0; if (bRes == true) { if (activate == true) { if (IsFirstActivated == false) { // подтвердить наличие сессии расчета HandlerDb.InitSession(out err); if (err < 0) { clear(); } else { ; } } else { ; } } else { ; } } else { ; } return(bRes); }
/// <summary> /// Оброботчик события клика кнопки отправить /// </summary> /// <param name="sender">Объект, инициировавший событие</param> /// <param name="e">данные события</param> private void btnSend_onClick(object sender, EventArgs e) { ReportEMailNSS rep = new ReportEMailNSS(); TepCommon.HandlerDbTaskCalculate.KEY_VALUES key; DateTime dtValues = DateTime.MinValue; IEnumerable <HandlerDbTaskCalculate.PUT_PARAMETER> putParameters; string e_mail = string.Empty; key = new TepCommon.HandlerDbTaskCalculate.KEY_VALUES() { TypeCalculate = TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES , TypeState = HandlerDbValues.STATE_VALUE.EDIT }; dtValues = (Controls.Find(PanelManagementAutobookMonthValues.INDEX_CONTROL.CALENDAR_EMAIL.ToString(), true)[0] as DateTimePicker).Value.Date; putParameters = HandlerDb.GetPutParameters("191"); e_mail = (Controls.Find(PanelManagementAutobookMonthValues.INDEX_CONTROL.TXTBX_EMAIL.ToString(), true)[0] as TextBox).Text; if (HandlerDb.Values.ContainsKey(key) == true) { rep.SendMailToNSS(putParameters , (from value in HandlerDb.Values[key] where (value.stamp_value == ((HandlerDb.ModeDataDatetime == HandlerDbTaskCalculate.MODE_DATA_DATETIME.Begined) ? dtValues.AddDays(1).Add(-Session.m_curOffsetUTC) // в случае, если данные сохраняются с меткой "начало интервала" : ((HandlerDb.ModeDataDatetime == HandlerDbTaskCalculate.MODE_DATA_DATETIME.Ended) ? dtValues.Add(-Session.m_curOffsetUTC) // в случае, если данные сохраняются с меткой "окончание интервала" : DateTime.MinValue))) && (putParameters.Select(putPar => putPar.m_Id).Contains(value.m_IdPut)) select value) , HandlerDb.GetValueAsRatio , dtValues , e_mail); } else { Logging.Logg().Error(string.Format(@"PanelTaskAutobookMonthValues::btnSend_onClick () - нет данных для отправления по e-mail..."), Logging.INDEX_MESSAGE.NOT_SET); } }
private void btnRun_onClick(HandlerDbTaskCalculate.TaskCalculate.TYPE type) { int err = -1; try { HandlerDb.UpdateSession(INDEX_DBTABLE_NAME.INVALUES , m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] , m_arTableEdit[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] , out err); HandlerDb.Calculate(type); } catch (Exception e) { //deleteSession (); Logging.Logg().Exception(e, @"PanelTaskTepInval::btnRun_onClick (type=" + type.ToString() + @") - ...", Logging.INDEX_MESSAGE.NOT_SET); } finally { //??? сообщение пользователю } }
protected override void handlerDbTaskCalculate_onEventCompleted(HandlerDbTaskCalculate.EVENT evt, TepCommon.HandlerDbTaskCalculate.RESULT res) { int err = -1; string mesToStatusStrip = string.Empty; switch (evt) { case HandlerDbTaskCalculate.EVENT.SET_VALUES: // вычисление значений, сохранение во временной таблице mesToStatusStrip = string.Format(@"Получение значений из БД"); break; case HandlerDbTaskCalculate.EVENT.CALCULATE: break; case HandlerDbTaskCalculate.EVENT.EDIT_VALUE: // отобразить значения mesToStatusStrip = string.Format(@"Редактирование значения на форме"); break; case HandlerDbTaskCalculate.EVENT.SAVE_CHANGES: mesToStatusStrip = string.Format(@"Сохранение значений в БД"); break; default: break; } dataAskedHostMessageToStatusStrip(res, mesToStatusStrip); if ((res == TepCommon.HandlerDbTaskCalculate.RESULT.Ok) || (res == TepCommon.HandlerDbTaskCalculate.RESULT.Warning)) { switch (evt) { case HandlerDbTaskCalculate.EVENT.SET_VALUES: // вычисление значений, сохранение во временной таблице HandlerDb.Calculate(TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES); break; case HandlerDbTaskCalculate.EVENT.CALCULATE: // отобразить значения m_dgvValues.ShowValues(HandlerDb.Values[new TepCommon.HandlerDbTaskCalculate.KEY_VALUES() { TypeCalculate = TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES , TypeState = HandlerDbValues.STATE_VALUE.EDIT }] , HandlerDb.Values[new TepCommon.HandlerDbTaskCalculate.KEY_VALUES() { TypeCalculate = TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES , TypeState = HandlerDbValues.STATE_VALUE.EDIT }] , out err); break; case HandlerDbTaskCalculate.EVENT.EDIT_VALUE: // отобразить значения + разблокировать кнопку "Сохранить" m_dgvValues.ShowValues(HandlerDb.Values[new TepCommon.HandlerDbTaskCalculate.KEY_VALUES() { TypeCalculate = TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.IN_VALUES , TypeState = HandlerDbValues.STATE_VALUE.EDIT }] , HandlerDb.Values[new TepCommon.HandlerDbTaskCalculate.KEY_VALUES() { TypeCalculate = TepCommon.HandlerDbTaskCalculate.TaskCalculate.TYPE.OUT_VALUES , TypeState = HandlerDbValues.STATE_VALUE.EDIT }] , out err); PanelManagement.ButtonSaveEnabled = true; break; case HandlerDbTaskCalculate.EVENT.SAVE_CHANGES: break; default: break; } } else { ; } }
/// <summary> /// Освободить (при закрытии), связанные с функционалом ресурсы /// </summary> public override void Stop() { HandlerDb.Stop(); base.Stop(); }
protected override void setValues(DateTimeRange[] arQueryRanges, out int err, out string strErr) { err = 0; strErr = string.Empty; //Запрос для получения ранее учтенных (сохраненных) данных m_arTableOrigin[(int)TepCommon.HandlerDbTaskCalculate.INDEX_TABLE_VALUES.ARCHIVE] = //HandlerDb.GetValuesVar(Type // , Session.m_currIdPeriod // , CountBasePeriod // , getDateTimeRangeValuesVar () // , out err) new DataTable() ; //Запрос для получения автоматически собираемых данных m_arTableOrigin[(int)TepCommon.HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] = Session.m_LoadValues == TepCommon.HandlerDbTaskCalculate.SESSION.INDEX_LOAD_VALUES.SOURCE ? HandlerDb.GetValuesVar(Type, out err) : Session.m_LoadValues == TepCommon.HandlerDbTaskCalculate.SESSION.INDEX_LOAD_VALUES.SOURCE_IMPORT ? ImpExpPrevVersionValues.Import(Type , Session.m_Id , (int)TepCommon.HandlerDbTaskCalculate.ID_QUALITY_VALUE.USER, m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PARAMETER] , m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.RATIO] , out err) : new DataTable(); switch (err) { case 0: default: break; } }
/// <summary> /// Обработчик события - нажатие на кнопку "Загрузить" (кнопка - аналог "Загрузить ранее сохраненные значения") /// </summary> /// <param name="obj">Объект, инициировавший событие (??? кнопка или п. меню)</param> /// <param name="ev">Аргумент события</param> private void panelManagement_btnHistory_onClick(object obj, EventArgs ev) { // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.ARCHIVE); }
private void panelManagement_btnImport_onClick(object sender, EventArgs e) { // ... - загрузить/отобразить значения из БД HandlerDb.UpdateDataValues(m_Id, TaskCalculateType, TepCommon.HandlerDbTaskCalculate.ID_VIEW_VALUES.SOURCE_IMPORT); }
/// <summary> /// Установить значения таблиц для редактирования /// </summary> /// <param name="err">Идентификатор ошибки при выполнеинии функции</param> /// <param name="strErr">Строка текста сообщения при наличии ошибки</param> protected override void setValues(out int err, out string strErr) { err = 0; strErr = string.Empty; int iRegDbConn = -1; DateTimeRange[] arQueryRanges = getDateTimeRangeValuesVar(); m_handlerDb.RegisterDbConnection(out iRegDbConn); if (!(iRegDbConn < 0)) { //Запрос для получения архивных данных m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.ARCHIVE] = new DataTable(); //Запрос для получения автоматически собираемых данных m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] = HandlerDb.GetValuesVar(Type , _IdSession , ActualIdPeriod , CountBasePeriod , arQueryRanges , out err); //Проверить признак выполнения запроса if (err == 0) { //Заполнить таблицу данными вводимых вручную (значения по умолчанию) m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.DEFAULT] = HandlerDb.GetValuesDef(ActualIdPeriod, out err); //Проверить признак выполнения запроса if (err == 0) { //Начать новую сессию расчета // , получить входные для расчета значения для возможности редактирования HandlerDb.CreateSession(_IdSession , _currIdPeriod , CountBasePeriod , _currIdTimezone , m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PARAMETER] , ref m_arTableOrigin , new DateTimeRange(arQueryRanges[0].Begin, arQueryRanges[arQueryRanges.Length - 1].End) , out err, out strErr); // создать копии для возможности сохранения изменений for (HandlerDbTaskCalculate.INDEX_TABLE_VALUES indx = (HandlerDbTaskCalculate.INDEX_TABLE_VALUES.UNKNOWN + 1); indx < HandlerDbTaskCalculate.INDEX_TABLE_VALUES.COUNT; indx++) { m_arTableEdit[(int)indx] = m_arTableOrigin[(int)indx].Copy(); } } else { strErr = @"ошибка получения данных по умолчанию с " + PanelManagement.m_dtRange.Begin.ToString() + @" по " + PanelManagement.m_dtRange.End.ToString(); } } else { strErr = @"ошибка получения автоматически собираемых данных с " + PanelManagement.m_dtRange.Begin.ToString() + @" по " + PanelManagement.m_dtRange.End.ToString(); } } else { ; } if (!(iRegDbConn > 0)) { m_handlerDb.UnRegisterDbConnection(); } else { ; } }
protected override void setValues(DateTimeRange[] arQueryRanges, out int err, out string strErr) { err = 0; strErr = string.Empty; //Запрос для получения ранее учтенных (сохраненных) данных m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.ARCHIVE] = //HandlerDb.GetValuesVar(Type // , Session.m_currIdPeriod // , CountBasePeriod // , getDateTimeRangeValuesVar () // , out err) new DataTable() ; //Запрос для получения автоматически собираемых данных m_arTableOrigin[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] = HandlerDb.GetValuesVar(Type, out err); switch (err) { case 0: default: break; } }