protected virtual int GetCurrentTimeResponse(DataTable table) { if (table.Rows.Count == 1) { serverTime = ((DateTime)table.Rows[0][0]).Add(m_tsOffsetToMoscow); } else { //DaylightTime daylight = TimeZone.CurrentTimeZone.GetDaylightChanges(DateTime.Now.Year); //int timezone_offset = allTECComponents[indxTECComponents].tec.m_timezone_offset_msc; //if (TimeZone.IsDaylightSavingTime(DateTime.Now, daylight) == true) // timezone_offset++; //else // ; ////serverTime = TimeZone.CurrentTimeZone.ToUniversalTime(DateTime.Now).AddHours(3); ////serverTime = TimeZone.CurrentTimeZone.ToUniversalTime(DateTime.Now).AddHours(timezone_offset); //serverTime = TimeZone.CurrentTimeZone.ToUniversalTime(DateTime.Now).AddHours(allTECComponents[indxTECComponents].tec.m_timezone_offset_msc); serverTime = HDateTime.ToMoscowTimeZone(); ErrorReport("Ошибка получения текущего времени сервера. Используется локальное время."); } return(0); }
private void btnImportCSV_AdminValuesDefault_Click(object sender, EventArgs e) { int days = (m_admin.m_curDate.Date - HDateTime.ToMoscowTimeZone(DateTime.Now).Date).Days; if (days < 0) { string strMsg = string.Format(@"Выбрана дата ретроспективных данных: {0}.", m_admin.m_curDate.Date.ToString(@"dd.MM.yyyy")); MessageBox.Show(this, strMsg, @"Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { OpenFileDialog files = new OpenFileDialog(); files.Multiselect = false; //files.InitialDirectory = Environment.GetFolderPath (Environment.SpecialFolder.Desktop); files.InitialDirectory = AdminTS_KomDisp.Folder_CSV; files.DefaultExt = @"csv"; files.Filter = @"Рекомендации-по-умолчанию (AdminValuesDefault)|AdminValuesDefault*.csv"; files.Title = "Выберите файл с рекомендациями по умолчанию..."; int iRes = -1; if (files.ShowDialog(FormMain.formParameters) == DialogResult.OK) { if (days > 0) { iRes = 0; } else { if (days == 0) { string strMsg = string.Format(@"Рекомендации по умолчанию будут загружены на текущие сутки: {0}.{1}Продолжить?", m_admin.m_curDate.Date.ToString(@"dd.MM.yyyy"), Environment.NewLine); if (MessageBox.Show(this, strMsg, @"Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { iRes = 0; } else { ; //По-прежнему ошибка... } } else { ; } } if (iRes == 0) { ((AdminTS_KomDisp)m_admin).ImpCSVValues(mcldrDate.SelectionStart, files.FileName); } else { ; } } else { } } }
protected int getPBRNumber(int hour = -1) { int iRes = -1 , iHour = hour; if (iHour < 0) { if (m_ignore_date == true) { iHour = HDateTime.ToMoscowTimeZone(DateTime.Now).Hour; } else { iHour = serverTime.Hour; } } else { ; } if ((iHour % 2) > 0) { iRes = iHour; } else { iRes = iHour + 1; } return(iRes); }
protected int getPBRNumber(int hour = -1) { int iRes = -1 , iHour = hour; if (iHour < 0) { if (m_ignore_date == true) { iHour = HDateTime.ToMoscowTimeZone().Hour; } else { iHour = serverTime.Hour; } } else { ; } //// для интервала обновления ПБР = 2 ч //if ((iHour % 2) > 0) // iRes = iHour; //else iRes = iHour + 1; return(iRes); }
/// <summary> /// /// </summary> /// <param name="tableOrigin"></param> /// <param name="tableRes"></param> /// <param name="err"></param> private void saveResult(DataTable tableOrigin, DataTable tableRes, out int err) { err = -1; DataTable tableEdit = new DataTable(); DataRow[] rowSel = null; tableEdit = tableOrigin.Clone(); foreach (DataRow r in tableOrigin.Rows) { rowSel = tableRes.Select(@"ID=" + r[@"ID_PUT"]); if (rowSel.Length == 1) { tableEdit.Rows.Add(new object[] { //r[@"ID"], r[@"ID_SESSION"] , r[@"ID_PUT"] , rowSel[0][@"QUALITY"] , rowSel[0][@"VALUE"] , HDateTime.ToMoscowTimeZone().ToString(CultureInfo.InvariantCulture) }); } else { ; //??? ошибка } } RecUpdateInsertDelete(s_NameDbTables[(int)INDEX_DBTABLE_NAME.OUTVALUES], @"ID_PUT", tableOrigin, tableEdit, out err); }
private bool fMaketEquipment(DataTable table, string[] listGuids, DateTime date) { bool bRes = false; Modes.BusinessLogic.IGenObject igo; IList <Modes.BusinessLogic.IMaketEquipment> listEquip; table.Columns.Add("ID", typeof(int)); table.Columns.Add("ID_INNER", typeof(int)); table.Columns.Add("WR_DATE_TIME", typeof(DateTime)); listEquip = _mcApi.GetMaket53500Equipment(Array.ConvertAll <string, Guid> (listGuids, Guid.Parse)); listEquip.ToList().ForEach(equip => { string mesDebug = string.Empty; mesDebug = $@"DbMCInterface::GetData () - equip=[{equip.Mrid}], children.Count={equip.GenTree.Count}"; equip.GenTree.ToList().ForEach(item => { mesDebug = $"{mesDebug}{Environment.NewLine}, item.IdIner ={item.IdInner}, item.GenObjType.Id={item.GenObjType.Id}, item.Name={item.Name}, item.children.Count={item.Children.Count}..."; item.Children.ToList().ForEach(child => { mesDebug = $"{mesDebug}{Environment.NewLine}, children.IdIner ={child.IdInner}, child.GenObjType.Id={child.GenObjType.Id}, child.Name={child.Name}, child.children.Count={child.Children.Count}..."; }); igo = null; //igo = findIGO (item.IdInner); //if (Equals (igo, null) == false) // if (item.GenObjType.Id == ID_GEN_OBJECT_TYPE.RGE) // m_listIGO.Add (item); // else // ; //else // ; if (Equals(igo, null) == false) { table.Rows.Add(new object [] { igo.Id, igo.IdInner, HDateTime.ToMoscowTimeZone() }); } else { ; } }); // equip.GenTree.ToList ().ForEach Logging.Logg().Debug(mesDebug, Logging.INDEX_MESSAGE.NOT_SET); }); //TODO: bRes = true; return(bRes); }
/// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> private void InitializeComponent() { components = new System.ComponentModel.Container(); this.m_dtprDate = new DateTimePicker(); this.m_dtprDate.Dock = DockStyle.Fill; //this.m_dtprDate.ValueChanged += new EventHandler(((PanelLastMinutes)Parent).OnDateTimeValueChanged); m_dtprDate.Value = HDateTime.ToMoscowTimeZone(DateTime.Now); this.m_dtprDate.ValueChanged += new EventHandler(OnDateTimeValueChanged); this.m_btnUpdate = new Button(); this.m_btnUpdate.Dock = DockStyle.Fill; this.m_btnUpdate.Text = @"Обнов."; this.m_btnUpdate.Click += new EventHandler(OnDateTimeValueChanged); }
private void addMessage(int id_msg, string msg, bool bSep, bool bDatetime, bool bLock) { if (m_listQueueMessage == null) { m_listQueueMessage = new List <MESSAGE> (); } else { ; } lock (m_objQueueMessage) { if (m_listQueueMessage.Count > MAXCOUNT_LISTQUEUEMESSAGE) { m_listQueueMessage.RemoveAt(0); } else { ; } m_listQueueMessage.Add(new MESSAGE((int)id_msg, HDateTime.ToMoscowTimeZone(DateTime.Now), msg, bSep, bDatetime, bLock)); } }
/// <summary> /// Выполнить операцию размещения значений в книге MS Excel /// , и в автоматическом режиме сохранить ее /// </summary> private void run(object obj) { List <FileInfo> listFileInfoDest; EventResultArgs arg; string pattern = string.Empty; int iTemplate = 0 // признак продолжения выполнения операции - наличие шаблона , err = 0; // по умолчанию ошибок нет try { #if HCLASSLIBRARY_MSEXCELIO if (IsReOpen == true) { ReCreate(); } else { ; } #else #endif // получить шаблон поиска документа pattern = string.Format("*{0}*.{1}", ConstantExportPBRValues.MaskDocument, ConstantExportPBRValues.MaskExtension); Logging.Logg().Action(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - поиск документа: каталог=<{0}>, шаблон=<{1}>...", Folder_CSV, pattern) , Logging.INDEX_MESSAGE.NOT_SET); listFileInfoDest = new List <FileInfo> (Directory.GetFiles(Folder_CSV, pattern, SearchOption.TopDirectoryOnly).ToList() .ConvertAll <FileInfo> (name => new FileInfo(string.Format(@"{0}", name)))); if (listFileInfoDest.Count > 1) { // выполнить сортировку, затем открыть "самый новый" файл listFileInfoDest.Sort((fileInfo1, fileInfo2) => { return((int)(fileInfo1.LastWriteTime - fileInfo2.LastWriteTime).TotalSeconds < 0 ? 1 : (int)(fileInfo1.LastWriteTime - fileInfo2.LastWriteTime).TotalSeconds > 0 ? -1 : 0); }); } else if (listFileInfoDest.Count > 0) { // файл единственный(вероятно, шаблон) - открыть iTemplate = 1; } else { // файл отсутствует - открыть шаблон iTemplate = -1; } if (!(iTemplate < 0)) { #if HCLASSLIBRARY_MSEXCELIO if (IsOpen(Path.GetFileName(listFileInfoDest [0].FullName), out err) == true) { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - книга с наименованием={0}\\{1} открыта..." , Folder_CSV, TemplateDocument) , Logging.INDEX_MESSAGE.NOT_SET); if (Mode == MODE_EXPORT_PBRVALUES.AUTO) { Visible = !CloseExcelDoc(Path.GetFileName(listFileInfoDest [0].FullName)); } else if (Mode == MODE_EXPORT_PBRVALUES.MANUAL) { Visible = true; } else { ; } #else #endif #if HCLASSLIBRARY_MSEXCELIO } else { if (Visible == true) { Visible = false; } else { ; } } if (Visible == false) #else #endif { if (openDocument(listFileInfoDest [0].FullName) == 0) { Logging.Logg().Debug(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - открыли документ {0}...", listFileInfoDest [0].FullName) , Logging.INDEX_MESSAGE.NOT_SET); #region Заполнить лист книги MS Excel значениями selectWorksheet(1); if (writeValue(ConstantExportPBRValues.NumberColumn_Date, ConstantExportPBRValues.NumberRow_Date, HDateTime.ToMoscowTimeZone().ToString(ConstantExportPBRValues.Format_Date)) == false) { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - не удалось сохранить дату/время обновления...") , Logging.INDEX_MESSAGE.NOT_SET); } else { Logging.Logg().Action(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - сохранили дату/время обновления [столб.={0}, стр.={1}, знач.={2}]..." , ConstantExportPBRValues.NumberColumn_Date, ConstantExportPBRValues.NumberRow_Date, HDateTime.ToMoscowTimeZone().ToString(ConstantExportPBRValues.Format_Date)) , Logging.INDEX_MESSAGE.NOT_SET); } foreach (KeyValuePair <int, IVALUES> pair in _dictValues) { for (int iHour = 0; iHour < pair.Value.m_data.Length; iHour++) { if (writeValue(pair.Value.m_indxColumn, ConstantExportPBRValues.NumberRow_0 + iHour, pair.Value.m_data [iHour].pbr) == false) { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - [компонент_ID={0}, час={1}] не удалось сохранить значение {2}" , pair.Key, iHour + 1, pair.Value.m_data [iHour].pbr) , Logging.INDEX_MESSAGE.NOT_SET); } else { ; } } } #endregion _previousNameDocument = NameDocument; save(_previousNameDocument); Logging.Logg().Action(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - сохранили документ {0} с наименованием {1}...", listFileInfoDest [0].FullName, _previousNameDocument) , Logging.INDEX_MESSAGE.NOT_SET); try { listFileInfoDest.ForEach(fi => { if ((_previousNameDocument.Equals(fi.FullName) == false) && (TemplateDocument.Equals(fi.FullName) == false)) { fi.Delete(); } else { ; } }); } catch (Exception e) { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - ошибка удаления '{0}', причина={1}..." , listFileInfoDest [0].FullName, e.Message) , Logging.INDEX_MESSAGE.NOT_SET); } if (Mode == MODE_EXPORT_PBRVALUES.AUTO) { #if HCLASSLIBRARY_MSEXCELIO CloseExcelDoc(); #else #endif arg = new EventResultArgs() { Result = RESULT.OK }; } else { arg = new EventResultArgs() { Result = RESULT.VISIBLE }; } } else { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - не удалось открыть книгу MS Excel с наименованием={0}..." , listFileInfoDest [0].FullName) , Logging.INDEX_MESSAGE.NOT_SET); arg = new EventResultArgs() { Result = RESULT.ERROR_OPEN }; } } #if HCLASSLIBRARY_MSEXCELIO else { // Видимость 'true' - ожидать действий пользователя arg = new EventResultArgs() { Result = RESULT.ERROR_RETRY } }; #else #endif } else { Logging.Logg().Error(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - отсутствует шаблон с наименованием={0}\\{1}..." , Folder_CSV, TemplateDocument) , Logging.INDEX_MESSAGE.NOT_SET); arg = new EventResultArgs() { Result = RESULT.ERROR_TEMPLATE }; } } catch (Exception e) { Logging.Logg().Exception(e, string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run () - ..."), Logging.INDEX_MESSAGE.NOT_SET); arg = new EventResultArgs() { Result = RESULT.ERROR_APP }; } // остановить таймер ожидания завершения длительной операции stop_TimerWait(); clearContext(); _mnlResetEventBusy.Reset(); // при внештатном завершении потока - продолжить логгирование и работу приложения в целом try { Logging.Logg().Debug(string.Format("AdminTS_KomDisp.MSExcelIOExportPBRValues::Run() - завершение потока..."), Logging.INDEX_MESSAGE.NOT_SET); } catch { } Result(this, _prevArg = arg); }
public override void Fill(TecView.valuesTEC[] values, params object [] pars) { double sumFact = 0, sumUDGe = 0, sumDiviation = 0; Hd2PercentControl d2PercentControl = new Hd2PercentControl(); int lastHour = (int)pars[0]; //m_tecView.lastHour; int receivedHour = (int)pars[1]; //m_tecView.lastReceivedHour; int itemscount = (int)pars[2]; //m_tecView.m_valuesHours.Length; int warn = -1, cntWarn = -1; string strWarn = string.Empty; bool bPmin = (int)pars[3] == 5 , bCurrHour = (bool)pars[4] //m_tecView.currHour , bIsTypeConnSettAISKUEHour = (bool)pars[5]; //m_tecView.m_arTypeSourceData[(int)HDateTime.INTERVAL.HOURS] == CONN_SETT_TYPE.DATA_AISKUE DateTime serverTime = (DateTime)pars[6]; //m_tecView.serverTime DataGridViewCellStyle curCellStyle; cntWarn = 0; for (int i = 0; i < itemscount; i++) { d2PercentControl.Calculate(values[i], bPmin, out warn); if ((!(warn == 0)) && (values[i + 0].valuesLastMinutesTM > 1)) { cntWarn++; } else { cntWarn = 0; } if (!(cntWarn == 0)) { if (cntWarn > 3) { curCellStyle = s_dgvCellStyleError; } else { curCellStyle = s_dgvCellStyleWarning; } } else { curCellStyle = s_dgvCellStyleCommon; } Rows[i + 0].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.LAST_MINUTES].Style = curCellStyle; if (values[i + 0].valuesLastMinutesTM > 1) { if (cntWarn > 0) { strWarn = cntWarn + @":"; } else { strWarn = string.Empty; } Rows[i + 0].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.LAST_MINUTES].Value = strWarn + values[i + 0].valuesLastMinutesTM.ToString("F2"); } else { Rows[i + 0].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.LAST_MINUTES].Value = 0.ToString("F2"); } bool bDevVal = false; if (bCurrHour == true) { if ((i < (receivedHour + 1)) && ((!(values[i].valuesUDGe == 0)) && (values[i].valuesFact > 0))) { if ((bIsTypeConnSettAISKUEHour == true) || (i < receivedHour)) { bDevVal = true; } else { ; } } else { } } else if (serverTime.Date.Equals(HDateTime.ToMoscowTimeZone(DateTime.Now.Date)) == true) { if ((i < (receivedHour + 1)) && (!(values[i].valuesUDGe == 0)) && (values[i].valuesFact > 0)) { bDevVal = true; } else { } } else if ((!(values[i].valuesUDGe == 0)) && (values[i].valuesFact > 0)) { bDevVal = true; } else { } Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.FACT].Value = values[i].valuesFact.ToString("F2"); if (bDevVal == true) { sumFact += values[i].valuesFact; } else { ; } Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.PBR].Value = values[i].valuesPBR.ToString("F2"); Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.PBRe].Value = values[i].valuesPBRe.ToString("F2"); Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.UDGe].Value = values[i].valuesUDGe.ToString("F2"); sumUDGe += values[i].valuesUDGe; if (bDevVal == true) { Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Value = ((double)(values[i].valuesFact - values[i].valuesUDGe)).ToString("F2"); if ((Math.Round(Math.Abs(values[i].valuesFact - values[i].valuesUDGe), 2) > Math.Round(values[i].valuesDiviation, 2)) && (!(values[i].valuesDiviation == 0))) { Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Style = s_dgvCellStyleError; } else { Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Style = s_dgvCellStyleCommon; } sumDiviation += Math.Abs(values[i].valuesFact - values[i].valuesUDGe); } else { Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Value = 0.ToString("F2"); Rows[i].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Style = s_dgvCellStyleCommon; } } Rows[itemscount].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.FACT].Value = sumFact.ToString("F2"); Rows[itemscount].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.UDGe].Value = sumUDGe.ToString("F2"); Rows[itemscount].Cells[(int)DataGridViewStandardHours.INDEX_COLUMNS.DEVIATION].Value = sumDiviation.ToString("F2"); setFirstDisplayedScrollingRowIndex(lastHour, !bIsTypeConnSettAISKUEHour); }
/// <summary> /// Создать новую сессию для расчета /// - вставить входные данные во временную таблицу /// </summary> /// <param name="cntBasePeriod">Количество базовых периодов расчета в интервале расчета</param> /// <param name="tablePars">Таблица характеристик входных параметров</param> /// <param name="tableSessionValues">Таблица значений входных параметров</param> /// <param name="tableDefValues">Таблица значений по умолчанию входных параметров</param> /// <param name="dtRange">Диапазон даты/времени для интервала расчета</param> /// <param name="err">Идентификатор ошибки при выполнеинии функции</param> /// <param name="strErr">Строка текста сообщения при наличии ошибки</param> public virtual void CreateSession( int cntBasePeriod , DataTable tablePars , ref DataTable[] arTableValues , DateTimeRange dtRange , out int err, out string strErr) { err = 0; strErr = string.Empty; int iAVG = -1; string strQuery = string.Empty; // строки для удаления из таблицы значений "по умолчанию" // при наличии дубликатов строк в таблице с загруженными из источников с данными DataRow[] rowsSel = null; // удалить строки из таблицы со значениями "по умолчанию" foreach (DataRow rValVar in arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION].Rows) { rowsSel = arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.DEFAULT].Select(@"ID_PUT=" + rValVar[@"ID_PUT"]); foreach (DataRow rToRemove in rowsSel) { arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.DEFAULT].Rows.Remove(rToRemove); } } // вставить строки из таблицы со значениями "по умолчанию" foreach (DataRow rValDef in arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.DEFAULT].Rows) { rowsSel = tablePars.Select(@"ID=" + rValDef[@"ID_PUT"]); if (rowsSel.Length == 1) { iAVG = (Int16)rowsSel[0][@"AVG"]; arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION].Rows.Add(new object[] { rValDef[@"ID_PUT"] //, HUsers.Id //ID_USER //, -1 //ID_SOURCE , _Session.m_Id //ID_SESSION , (int)HandlerDbTaskCalculate.ID_QUALITY_VALUE.DEFAULT //QUALITY , (iAVG == 0) ? cntBasePeriod * (double)rValDef[@"VALUE"] : (double)rValDef[@"VALUE"] //VALUE , HDateTime.ToMoscowTimeZone() //??? GETADTE() } ); } else { ; // по идентификатору найден не единственный параметр расчета } } if ((arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION].Columns.Count > 0) && (arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION].Rows.Count > 0)) { //Вставить строку с идентификатором новой сессии insertIdSession(cntBasePeriod, out err); //Вставить строки в таблицу БД со входными значениями для расчета insertInValues(arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION], out err); //Вставить строки в таблицу БД со выходными значениями для расчета insertOutValues(out err); // необходимость очистки/загрузки - приведение структуры таблицы к совместимому с [inval] arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION].Rows.Clear(); // получить входные для расчета значения для возможности редактирования strQuery = @"SELECT [ID_PUT], [ID_SESSION], [QUALITY], [VALUE], [WR_DATETIME]" // as [ID] + @" FROM [" + s_NameDbTables[(int)INDEX_DBTABLE_NAME.INVALUES] + @"]" + @" WHERE [ID_SESSION]=" + _Session.m_Id; arTableValues[(int)HandlerDbTaskCalculate.INDEX_TABLE_VALUES.SESSION] = Select(strQuery, out err); } else { Logging.Logg().Error(@"HandlerDbTaskCalculate::CreateSession () - отсутствуют строки для вставки ...", Logging.INDEX_MESSAGE.NOT_SET); } }
private string getInsertQuery(int id, string text) { //??? 3 крайних параметра не имеют смысла при журналировании в БД return(getInsertQuery(new MESSAGE((int)id, HDateTime.ToMoscowTimeZone(DateTime.Now), text, false, false, false))); }
/// <summary> /// Добавить значения для экспорта /// </summary> /// <param name="compValues">Значения (админ. + ПБР) для одного из компонентов ТЭЦ</param> /// <param name="date">Дата, за которую получены значения</param> /// <returns>Очередной индекс для запроса значений из БД</returns> public int AddValueToExportRDGValues(RDGStruct[] compValues, DateTime date) { int iRes = -1; DateTime datetimeExportPBR , datetimeMsc; if (_msExcelIOExportPBRValues.Mode == MODE_EXPORT_PBRVALUES.AUTO) { datetimeMsc = HDateTime.ToMoscowTimeZone(); datetimeExportPBR = datetimeMsc.Hour < 23 ? datetimeMsc.Date : datetimeMsc.Date.AddDays(1); } else { // оставить полученную в аргументе (указанную в календаре на вкладке) datetimeExportPBR = date.Date; } if ((datetimeExportPBR - DateTime.MinValue.Date).Days > 0) { if ((_lisTECComponentIndex.Count > 0) && (!(indxTECComponents < 0)) && (!(_lisTECComponentIndex[0] < 0))) { if (indxTECComponents - _lisTECComponentIndex[0] == 0) { Logging.Logg().Debug(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для [ID={0}, Index={1}, за дату={2}, кол-во={3}] компонента..." , allTECComponents[_lisTECComponentIndex[0]].m_id, _lisTECComponentIndex[0], _lisTECComponentIndex[0], datetimeExportPBR, compValues.Length) , Logging.INDEX_MESSAGE.NOT_SET); if ((_msExcelIOExportPBRValues.AddTECComponent(allTECComponents[indxTECComponents]) == 0) && (_msExcelIOExportPBRValues.SetDate(datetimeExportPBR) == true)) { _lisTECComponentIndex.Remove(indxTECComponents); // дубликатов быть не должно (см. добавление элементов) //Console.WriteLine(@"AdminTS_KomDisp::AddValueToExportRDGValues () - обработка элемента=[{0}], остатолось элементов={1}", indxTECComponents, _lisTECComponentIndex.Count); // добавить значения по составному ключу: [DateTime, Index] _msExcelIOExportPBRValues.AddPBRValues(allTECComponents[indxTECComponents].m_id, compValues); // проверить повторно после удаления элемента if (_lisTECComponentIndex.Count > 0) { // очередной индекс компонента для запрооса iRes = _lisTECComponentIndex[0]; } else { // все значения по всем компонентам получены/добавлены Logging.Logg().Debug(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены все значения для всех компонентов...") , Logging.INDEX_MESSAGE.NOT_SET); _msExcelIOExportPBRValues.Run(); } } else { Logging.Logg().Error(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - компонент с индексом [{0}] не может быть добавлен (пред. опреация экспрта не завершена)...") , Logging.INDEX_MESSAGE.NOT_SET); } } else { // текущий индекс и 0-ой элемент массива индексов жолжны совпадать ; } } else { //??? ошибка, т.к. выполнен запрос и получены значения, а индекс компонента не известен Logging.Logg().Error(string.Format("AdminTS_KomDisp::AddValueToExportRDGValues () - получены значения для неизвестного компонента...") , Logging.INDEX_MESSAGE.NOT_SET); } } else { // дата для полученных значений неизвестна ; } return(iRes); }
/// <summary> /// Установить значения таблиц для редактирования /// </summary> /// <param name="dbConn">Ссылка на объектт соединения с БД</param> /// <param name="err">Идентификатор ошибки при выполнеинии функции</param> /// <param name="strErr">Строка текста сообщения при галичии ошибки</param> protected override void setValues(ref DbConnection dbConn, out int err, out string strErr) { err = 0; strErr = string.Empty; int cnt = CountBasePeriod //(int)(m_panelManagement.m_dtRange.End - m_panelManagement.m_dtRange.Begin).TotalHours - 0 , iAVG = -1; string query = string.Empty; // строки для удаления из таблицы значений "по умолчанию" // при наличии дубликатов строк в таблице с загруженными из источников с данными DataRow[] rowsSel = null; //Запрос для получения автоматически собираемых данных query = getQueryValuesVar(); //Заполнить таблицу автоматически собираемыми данными m_arTableOrigin[(int)INDEX_TABLE_VALUES.VARIABLE] = DbTSQLInterface.Select(ref dbConn, query, null, null, out err); //Проверить признак выполнения запроса if (err == 0) { //Запрос для получения данных вводимых вручную query = getQueryValuesDef(); //Заполнить таблицу данными вводимых вручную (значения по умолчанию) m_arTableOrigin[(int)INDEX_TABLE_VALUES.DEFAULT] = DbTSQLInterface.Select(ref dbConn, query, null, null, out err); //Проверить признак выполнения запроса if (err == 0) { // удалить строки из таблицы со значениями "по умолчанию" foreach (DataRow rValVar in m_arTableOrigin[(int)INDEX_TABLE_VALUES.VARIABLE].Rows) { rowsSel = m_arTableOrigin[(int)INDEX_TABLE_VALUES.DEFAULT].Select(@"ID_INPUT=" + rValVar[@"ID"]); foreach (DataRow rToRemove in rowsSel) { m_arTableOrigin[(int)INDEX_TABLE_VALUES.DEFAULT].Rows.Remove(rToRemove); } } // вставить строки из таблицы со значениями "по умолчанию" foreach (DataRow rValDef in m_arTableOrigin[(int)INDEX_TABLE_VALUES.DEFAULT].Rows) { rowsSel = m_arTableDictPrjs[(int)INDEX_TABLE_DICTPRJ.PARAMETER].Select(@"ID=" + rValDef[@"ID_INPUT"]); if (rowsSel.Length == 1) { iAVG = (Int16)rowsSel[0][@"AVG"]; m_arTableOrigin[(int)INDEX_TABLE_VALUES.VARIABLE].Rows.Add(new object[] { rValDef[@"ID_INPUT"] , HUsers.Id //ID_USER , -1 //ID_SOURCE , _IdSession //ID_SESSION , (int)ID_QUALITY_VALUE.DEFAULT //QUALITY , (iAVG == 0) ? cnt * (double)rValDef[@"VALUE"] : (double)rValDef[@"VALUE"] //VALUE , HDateTime.ToMoscowTimeZone() //??? GETADTE() } ); } else { ; // по идентификатору найден не единственный парпметр расчета } } // создать копии для возможности сохранения изменений m_arTableEdit[(int)INDEX_TABLE_VALUES.VARIABLE] = m_arTableOrigin[(int)INDEX_TABLE_VALUES.VARIABLE].Copy(); m_arTableEdit[(int)INDEX_TABLE_VALUES.DEFAULT] = m_arTableOrigin[(int)INDEX_TABLE_VALUES.DEFAULT].Copy(); } else { strErr = @"ошибка получения данных по умолчанию с " + m_panelManagement.m_dtRange.Begin.ToString() + @" по " + m_panelManagement.m_dtRange.End.ToString(); } } else { strErr = @"ошибка получения автоматически собираемых данных с " + m_panelManagement.m_dtRange.Begin.ToString() + @" по " + m_panelManagement.m_dtRange.End.ToString(); } }