/// <summary>СОБЫТИЕ Выбор контекстного меню Редактировать</summary> private void PART_MenuItem_Edit_Click(object sender, RoutedEventArgs e) { MyTipProtokol _MyTipProtokol; decimal _IND; if (PROP_Nodes != null) // протоколы основной карточки { _MyTipProtokol = PROP_Nodes.PROP_shaTipProtokol; _IND = PROP_Nodes.PROP_shaIND; if (_IND == 0) { return; } } else // из истории болезни { _MyTipProtokol = new MyTipProtokol(PROP_Type); _IND = PROP_CodApstac; } // Если документы Kdl, то выходим if (_MyTipProtokol.PROP_TipDocum == eTipDocum.Kdl) { MessageBox.Show("И что вы хотите?", "Опомнитесь!"); return; } // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, _IND, MyGlo.KL); }
/// <summary>СОБЫТИЕ Открытие контекстного меню Редактировать</summary> private void PART_MenuItem_Edit_Click(object sender, RoutedEventArgs e) { MyTipProtokol _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac); // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, PROP_CodApstac, PROP_KL); }
///<summary>МЕТОД Фабрика объекта ListShablon</summary> /// <param name="pTip">Тип протокола</param> /// <param name="pCodShablon">Код шаблона</param> public static UserListShablon MET_FactoryListShablon(eTipDocum pTip, int pCodShablon) { // Коллекция ListShablons List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons; // Ищем в коллекции ListShablon по типу и номеру шаблона UserListShablon _Value = _ListShablons.FirstOrDefault(p => p.PROP_Cod == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip); // Если не нашли, то пытаемся ListShablon создать if (_Value == null) { _Value = new UserListShablon(); // Загружаем данные из SQL try { var _TipProtokol = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_3(pCodShablon, _TipProtokol.PROP_Prefix)); _SqlDataReader.Read(); _Value.MET_LoadDataReader(_SqlDataReader); _Value.PROP_TipProtokol = _TipProtokol; _SqlDataReader.Close(); _ListShablons.Add(_Value); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных ListShablon из SQL"); MyGlo.Event_Error(ex); _Value = null; } } return(_Value); }
/// <summary>МЕТОД Фабрика Массовая загрузка всех объектов Protokol одного посещения/стационара</summary> /// <param name="pTip">Тип протокола</param> /// <param name="pCodApstacKL">Код посещения/пациента</param> /// <param name="pTipFind">Ищем по CodApstac или по KL</param> public static bool MET_FactoryProtokolArray(eTipDocum pTip, decimal pCodApstacKL, string pTipFind = "CodApstac") { // Коллекция Protokol List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol; try { var _TipProtokol = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_12(pCodApstacKL, _TipProtokol.PROP_Prefix, pTipFind)); // Перебираем весь поток и дабавляем все Protokolы while (_SqlDataReader.Read()) { UserProtokol _Value = new UserProtokol(); _Value.MET_LoadDataReader(_SqlDataReader); _Value.PROP_TipProtokol = _TipProtokol; _Protokol.Add(_Value); } _SqlDataReader.Close(); // Загружаем все заголовки шаблонов ListShablon по загруженным протоколам UserListShablon.MET_FactoryListShablonArray(pTip); // Загружаем все заголовки шаблонов Shablon по загруженным протоколам UserShablon.MET_FactoryShablonArray(pTip); return(true); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных Protokol из SQL"); MyGlo.Event_Error(ex); return(false); } }
//[DllImport("User32.dll")] //private static extern IntPtr SetForegroundWindow(IntPtr hWnd); // Активирует окно процесса //[DllImport("User32.dll")] //private static extern bool ShowWindow(IntPtr handle, int cmdShow); // Отображает данное окно впереди, даже если было свернуто //[DllImport("user32.dll", SetLastError = true)] //static extern IntPtr FindWindow(string lpClassName, string lpWindowName); /// <summary>КОНСТРУКТОР</summary> public UserWindow_EditProtokol(MyTipProtokol pTipSha, int pNumSha, string pNameSha, string pImageSha, DateTime pDN, DateTime pDK, string pUserCod) { // Имя таблицы PRO_TableName = "EditProtokol"; // Заголовок Title = $"Протоколы: {pNumSha} - {pNameSha}"; // Иконка Icon = (BitmapImage)Application.Current.FindResource(pImageSha); // Тип шаблонов PRI_Tip = pTipSha; // Номер шаблона PRI_NumSha = pNumSha; // Начальная и конечная дата протоколов PRI_DN = pDN; PRI_DK = pDK; // Код пользователя (если есть) PRI_UserCod = pUserCod; // Размеры окна Width = 800; MinWidth = Width; Height = 700; // Сортируем по ФИО PRO_PoleSort = 3; // Разрешаем выбирать записи PROP_FlagButtonSelect = true; // Создаем фильтр // MET_CreateFiltr(); // Открываем таблицу MET_OpenForm(); // Ставим фокус на сторку поиска PART_TextBox.Focus(); }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Тип протоколов PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Kdl); // Заполняем свойства базового класса base.MET_Inizial(); }
/// <summary>МЕТОД Фабрика Массовая загрузка всех объектов ListShablon для загруженной коллекции Protokol</summary> /// <param name="pTip">Тип протокола</param> /// <remarks>Делается как правило разово из MET_FactoryProtokolArray</remarks> public static bool MET_FactoryListShablonArray(eTipDocum pTip) { // Коллекция ListShablons List <UserListShablon> _ListShablons = ((VirtualModul)MyGlo.Modul).PUB_ListShablons; // Находим список кодов шаблонов (пример: 101, 110, 120, 0), в конце добавляем ноль, что бы перекрыть последнюю запятую или в пустом списке был просто ноль string _NomShablons = ((VirtualModul)MyGlo.Modul).PUB_Protokol.Select(i => i.PROP_NumShablon).Distinct().Aggregate("", (s, i) => s + i + ", ") + "0"; try { var _TipProtokol = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_ListShablon_Select_4(_TipProtokol.PROP_Prefix, _NomShablons)); // Перебираем весь поток и дабавляем все строки ListShablon while (_SqlDataReader.Read()) { UserListShablon _Value = new UserListShablon(); _Value.MET_LoadDataReader(_SqlDataReader); _Value.PROP_TipProtokol = _TipProtokol; _ListShablons.Add(_Value); } _SqlDataReader.Close(); return(true); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Массовой Загрузки данных ListShablon из SQL"); MyGlo.Event_Error(ex); return(false); } }
/// <summary>МЕТОД Фабрика объекта Protokol</summary> /// <param name="pTip">Тип протокола</param> /// <param name="pCod">Код протокола</param> public static UserProtokol MET_FactoryProtokol(eTipDocum pTip, int pCod) { // Коллекция Protokol List <UserProtokol> _Protokol = ((VirtualModul)MyGlo.Modul).PUB_Protokol; // Ищем в коллекции Protokol по типу и коду протокола UserProtokol _Value = _Protokol.FirstOrDefault(p => p.PROP_TipProtokol.PROP_TipDocum == pTip && p.PROP_Cod == pCod); // Если не нашли, то пытаемся Protokol создать if (_Value == null) { _Value = new UserProtokol(); // Загружаем данные из SQL try { var _TipProtokol = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Protokol_Select_9(pCod, _TipProtokol.PROP_Prefix)); _SqlDataReader.Read(); _Value.MET_LoadDataReader(_SqlDataReader); _Value.PROP_TipProtokol = _TipProtokol; _SqlDataReader.Close(); _Protokol.Add(_Value); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Protokol из SQL"); MyGlo.Event_Error(ex); _Value = null; } } return(_Value); }
/// <summary>МЕТОД Инициализация Шаблона</summary> /// <param name="pNodes">Ветка</param> /// <param name="pNewProtokol">ture - Новый протокол, false - Старый протокол</param> /// <param name="pShablon">Номер шаблона, по умолчанию 0</param> /// <param name="pText">Наименование шаблона (по умолчанию pMyNodes.svoText)</param> public override VirtualFormShablon MET_Inizial(VirtualNodes pNodes, bool pNewProtokol, int pShablon = 0, string pText = "") { pNodes.PROP_shaButtonClearSha = Visibility.Collapsed; pNodes.PROP_shaButtonPrintSha = Visibility.Collapsed; base.MET_Inizial(pNodes, pNewProtokol, pShablon, pText); PROP_TipProtokol = new MyTipProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum); MET_CreateForm(); return(this); }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Тип протоколов PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Kdl); // Заполняем свойства базового класса base.MET_Inizial(); // Редактор и админ может создавать протоколы PROP_shaButtonNew = MyPdf.PROP_AccessPdf == eAccessPdf.Edit || MyPdf.PROP_AccessPdf == eAccessPdf.Admin; }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Тип протоколов PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Pol); // Заполняем свойства базового класса base.MET_Inizial(); // Запрещаем содаздание документов PROP_shaButtonNew = false; }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Тип протоколов PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Pol); // Заполняем свойства базового класса base.MET_Inizial(); // Нижний текст вкладок (дата посещения протокола и ФИО врача) PROP_TextDown = Convert.ToString(MyGlo.HashAPAC["DP"]).Substring(0, 10) + " " + MySql.MET_NameSpr(Convert.ToInt16(MyGlo.HashAPAC["KV"]), "s_VrachPol"); }
/// <summary>МЕТОД Инициализация Шаблона</summary> /// <param name="pNodes">Ветка</param> /// <param name="pNewProtokol">ture - Новый протокол, false - Старый протокол</param> /// <param name="pShablon">Номер шаблона, по умолчанию 0</param> /// <param name="pText">Наименование шаблона (по умолчанию pMyNodes.svoText)</param> public override VirtualFormShablon MET_Inizial(VirtualNodes pNodes, bool pNewProtokol, int pShablon = 0, string pText = "") { base.MET_Inizial(pNodes, pNewProtokol, pShablon, pText); PROP_TipProtokol = new MyTipProtokol(PUB_VirtualNodes.PROP_shaTipProtokol.PROP_TipDocum); MET_CreateForm(); // Если шаблон содержит тег Voice, то начинаем работу со звуком if (PROP_Docum.PROP_ListShablon.PROP_MyFormat.MET_If("Voice")) { PRI_VoiceShablon = new UseFormShablon_Voice(PROP_Docum); } return(this); }
///<summary>МЕТОД Инициализация ветки</summary> public override void MET_Inizial() { // Заполняем свойства базового класса base.MET_Inizial(); // Тип протоколов PROP_shaTipProtokol = new MyTipProtokol(eTipDocum.Stac); // Если есть протокол в наличии if (PROP_shaPresenceProtokol) { // Находим протокол PROP_Docum.PROP_Protokol = UserProtokol.MET_FactoryProtokol(PROP_shaTipProtokol.PROP_TipDocum, MyGlo.IND, PROP_shaNomerShablon, PROP_shaIndex); PROP_Data = PROP_Docum.PROP_Protokol.PROP_pDate; PROP_TextDown = PROP_Data.ToString().Substring(0, 10); } }
/// <summary>МЕТОД Выбор данных - Находим пациента и открываем окно с ним</summary> protected override void MET_Select() { if (!PROP_FlagButtonSelect) { return; } try { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; if (_DataRowView == null) { return; } decimal _KL = Convert.ToDecimal(_DataRowView.Row["KL"]); decimal _IND = Convert.ToDecimal(_DataRowView.Row["IND"]); MyTipProtokol _MyTipProtokol; switch (PRI_Tip) { case "1": _MyTipProtokol = new MyTipProtokol(eTipDocum.Pol); // модуль поликлиники break; case "2": _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac); // модуль стационара break; case "3": _MyTipProtokol = new MyTipProtokol(eTipDocum.Paracl); // модуль параклиники break; default: _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); // модуль истории болезни break; } // У не админов доступ только в историю болезни if (!MyGlo.PROP_Admin) { _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); } // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, _IND, _KL); PROP_Return = true; } catch { } Close(); }
///<summary>МЕТОД Замена шаблона в SQL (при импорте из Excel)</summary> public static void MET_SaveExcelToSQL(eTipDocum pTip, int pCodShablon) { // Коллекция Shablon List <UserShablon> _Shablon = ((VirtualModul)MyGlo.Modul).PUB_Shablon; // Ищем в коллекции <Shablon> по типу и номеру шаблона все вопросы данного шаблона List <UserShablon> _Value = _Shablon.Where(p => p.PROP_ID == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip).ToList(); // Удаляем шаблон из SQL MyTipProtokol _Tip = new MyTipProtokol(pTip); MySql.MET_QueryNo(MyQuery.MET_Shablon_Delete_1(pCodShablon, _Tip.PROP_Prefix)); // Добавляем элементы шаблона в SQL foreach (var _i in _Value) { MySql.MET_QueryNo(MyQuery.MET_Shablon_Insert_1(_i.PROP_TipProtokol.PROP_Shablon, _i.PROP_Cod, _i.PROP_ID, _i.PROP_Nomer, _i.PRI_VarId, _i.PROP_Maska, _i.PROP_Type, _i.PROP_Razdel, _i.PROP_Name, _i.PROP_ValueStart, _i.PROP_OutText, _i.PROP_InText, _i.PROP_xFormat, _i.PROP_xLua, _i.PROP_xInfo)); // Сбрасываем флаг редактирования _i.PROP_FlagEdit = false; } }
/// <summary>СОБЫТИЕ Нажали на кнопку "Загрузки шаблона в SQL филиала"</summary> protected virtual void PRI_ButtonFromToFilialSQL_1_Click(object sender, RoutedEventArgs e) { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; int _CodShablon = Convert.ToInt16(_DataRowView.Row["Cod"]); string _TipDoc = PRI_ComboBox_1.SelectedValue.ToString(); eTipDocum _eTip = eTipDocum.Null; switch (_TipDoc) { case "apaN": _eTip = eTipDocum.Pol; break; case "ast": _eTip = eTipDocum.Stac; break; case "par": _eTip = eTipDocum.Paracl; break; case "kdl": _eTip = eTipDocum.Kdl; break; } var _TipProtokol = new MyTipProtokol(_eTip); // Вопрос на загрузку if (MessageBox.Show($"Вы точно хотите загрузить {_CodShablon} шаблон на филиал?", "Вот это вопрос", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (MySql.MET_QueryNo(MyQuery.MET_Shablon_InsertToFilial_1(_CodShablon, _TipProtokol.PROP_Prefix))) { MessageBox.Show($"Успех!", "Загружено в SQL", MessageBoxButton.OK, MessageBoxImage.Asterisk); } else { MessageBox.Show($"Что то пошло не так!", "Загружено в SQL", MessageBoxButton.OK, MessageBoxImage.Error); } } }
///<summary>МЕТОД Фабрика объектов Shablon</summary> /// <param name="pTip">Тип протокола</param> /// <param name="pCodShablon">Код шаблона</param> public static List <UserShablon> MET_FactoryListShablon(eTipDocum pTip, int pCodShablon) { // Коллекция Shablon List <UserShablon> _Shablons = ((VirtualModul)MyGlo.Modul).PUB_Shablon; // Ищем в коллекции <Shablon> по типу и номеру шаблона List <UserShablon> _Value = _Shablons.Where(p => p.PROP_ID == pCodShablon && p.PROP_TipProtokol.PROP_TipDocum == pTip).ToList(); // Если не нашли, то пытаемся <Shablon> загрузить из SQL if (!_Value.Any()) { try { MyTipProtokol _Tip = new MyTipProtokol(pTip); SqlDataReader _SqlDataReader = MySql.MET_QuerySqlDataReader(MyQuery.MET_Shablon_Select_3(pCodShablon, _Tip.PROP_Prefix)); while (_SqlDataReader.Read()) { UserShablon _Shablon = new UserShablon(); _Shablon.MET_LoadDataReader(_SqlDataReader); _Shablon.PROP_TipProtokol = _Tip; // После загрузки, сбрасываем флаг редактирования _Shablon.PROP_FlagEdit = false; _Value.Add(_Shablon); } _SqlDataReader.Close(); } catch (Exception ex) { MyGlo.PUB_Logger.Fatal(ex, "Ошибка Загрузки данных Shablon из SQL"); MyGlo.Event_Error(ex); _Value = null; } // Добавляем наши вопросы в библиотеку if (_Value != null) { _Shablons?.AddRange(_Value); } } return(_Value); }
/// <summary>МЕТОД Выбор данных</summary> protected override void MET_Select() { if (!PROP_FlagButtonSelect || PART_DataGrid.SelectedItem == null) { return; } DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; int _CodShablon = Convert.ToInt16(_DataRowView.Row["Cod"]); string _NameSha = Convert.ToString(_DataRowView.Row["Name"]); string _ImageSha = Convert.ToString(_DataRowView.Row["Icon"]); string _TipDoc = PRI_ComboBox_1.SelectedValue.ToString(); eTipDocum _eTip = eTipDocum.Null; switch (_TipDoc) { case "apaN": _eTip = eTipDocum.Pol; break; case "ast": _eTip = eTipDocum.Stac; break; case "par": _eTip = eTipDocum.Paracl; break; case "kdl": _eTip = eTipDocum.Kdl; break; } var _TipProtokol = new MyTipProtokol(_eTip); UserWindow_EditProtokol _WinSpr = new UserWindow_EditProtokol(_TipProtokol, _CodShablon, _NameSha, _ImageSha, PRI_DatePicker_1.DisplayDate, PRI_DatePicker_2.DisplayDate, PRI_UserCod.PROP_Text); _WinSpr.Show(); }
/// <summary>СОБЫТИЕ После загрузки окна</summary> private void Window_Loaded(object sender, RoutedEventArgs e) { PROP_FIOkbol = MyGlo.FIO; UserProtokol _Protokol = null; if (PROP_PoleHistory.PROP_Nodes != null) // протоколы основной карточки { _Protokol = PROP_PoleHistory.PROP_DocumHistory?.PROP_Protokol; } else // из истории болезни { PROP_MyTipProtokol = new MyTipProtokol(PROP_PoleHistory.PROP_Type); if (PROP_PoleHistory.PROP_IsTexted) // ... если протокол { PROP_CodProtokol = (int)PROP_PoleHistory.PROP_Cod; // Протокол _Protokol = UserProtokol.MET_FactoryProtokol(PROP_MyTipProtokol.PROP_TipDocum, PROP_CodProtokol); } else // ... если карточка { PROP_KLkbol = MyGlo.KL; PROP_Date = DateTime.Parse(PROP_PoleHistory.PROP_Dp); PROP_IND = PROP_PoleHistory.PROP_Cod; PROP_Tip = "карта"; } } // Только протоколы if (_Protokol != null) { // Запись протокола PROP_CodProtokol = _Protokol.PROP_Cod; PROP_KLkbol = _Protokol.PROP_KL; // Для kdl, IND будет равен коду протокола PROP_IND = _Protokol.PROP_TipProtokol.PROP_TipDocum == eTipDocum.Kdl ? PROP_CodProtokol : _Protokol.PROP_CodApstac; PROP_Index = _Protokol.PROP_pIndex; PROP_NumShablon = _Protokol.PROP_NumShablon; PROP_Date = _Protokol.PROP_pDate; PROP_DateUp = _Protokol.PROP_xDateUp; PROP_UserUp = _Protokol.PROP_xUserUp; PROP_UserUpName = _Protokol.PROP_UserName; PROP_MyTipProtokol = _Protokol.PROP_TipProtokol; PROP_xDelete = _Protokol.PROP_xDelete; PROP_Tip = "протокол"; } PRI_KbolInfo = UserKbolInfo.MET_FactoryKbolInfo(PROP_MyTipProtokol.PROP_KbolInfo, PROP_IND, MyGlo.KL); if (!PRI_KbolInfo.PROP_FlagNew && PRI_KbolInfo.PROP_jTag != null) { // Берем сразу отформатированные теги PROP_jTag = PRI_KbolInfo.PROP_Json.ToString(); PROP_Oms = PRI_KbolInfo.PROP_Oms == 1; PART_CheckBoxOms.IsEnabled = PROP_MyTipProtokol.PROP_TipDocum == eTipDocum.Kdl; PART_ButtonKbolInfo.IsEnabled = false; } else { PART_StacPanelKbolInfo.IsEnabled = false; PROP_jTag = "Нет записи kbolInfo"; } // Запрет на проверку правописания PART_jTag.PART_TextBox.SpellCheck.IsEnabled = false; }
/// <summary>СОБЫТИЕ Нажали на кнопку "Загрузка шаблона из Excel"</summary> protected virtual void PRI_ButtonFromExcel_1_Click(object sender, RoutedEventArgs e) { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; int _CodShablon = Convert.ToInt16(_DataRowView.Row["Cod"]); string _TipDoc = PRI_ComboBox_1.SelectedValue.ToString(); eTipDocum _eTip = eTipDocum.Null; switch (_TipDoc) { case "apaN": _eTip = eTipDocum.Pol; break; case "ast": _eTip = eTipDocum.Stac; break; case "par": _eTip = eTipDocum.Paracl; break; case "kdl": _eTip = eTipDocum.Kdl; break; } var _TipProtokol = new MyTipProtokol(_eTip); string _NameFile = $"{_TipDoc}_{_CodShablon}"; string _PathFile = $@"C:\Shablons\{_NameFile}.xlsx"; Excel.Workbook _WorkBook; Excel.Application _ExcelApp; _ExcelApp = new Excel.Application(); FileInfo _FileInfo = new FileInfo(_PathFile); // Если нашли файл с текущим шаблоном if (!_FileInfo.Exists) { MessageBox.Show($"Не найден файл: {_PathFile}", "Алё, чо грузить то?!"); return; } _WorkBook = _ExcelApp.Workbooks.Open(_PathFile); Excel.Worksheet _Sheet = (Excel.Worksheet)_WorkBook.Worksheets.Item[1]; // Заполняем данные List <UserShablon> _ListShablons = new List <UserShablon>(); int _y = 2; int _x = 1; try { while (_Sheet.Cells[_y, 1].Value2 is double) { _x = 1; UserShablon _Shablon = new UserShablon(); _Shablon.PROP_Cod = (int)_Sheet.Cells[_y, _x++].Value2; _Shablon.PROP_ID = (int)_Sheet.Cells[_y, _x++].Value2; _Shablon.PROP_Nomer = (byte)_Sheet.Cells[_y, _x++].Value2; _Shablon.PROP_VarId = (int)_Sheet.Cells[_y, _x++].Value2; _Shablon.PROP_Maska = _Sheet.Cells[_y, _x++].Text ?? ""; _Shablon.PROP_Type = (byte)_Sheet.Cells[_y, _x++].Value2; _Shablon.PROP_Razdel = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_Name = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_ValueStart = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_OutText = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_InText = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_xFormat = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_xLua = _Sheet.Cells[_y, _x++].Value2 ?? ""; _Shablon.PROP_xInfo = _Sheet.Cells[_y, _x].Value2 ?? ""; _Shablon.PROP_TipProtokol = _TipProtokol; _Shablon.PROP_FlagEdit = false; _y++; _ListShablons.Add(_Shablon); } } catch (Exception) { _WorkBook.Close(); _ExcelApp.Quit(); MessageBox.Show($"Ошибка загрузки в строке: {_y}, в столбце: {--_x}", "Ошибка"); return; } UserShablon.MET_FactoryListShablon(_eTip, _CodShablon); int _Remov = ((VirtualModul)MyGlo.Modul).PUB_Shablon.RemoveAll(p => p.PROP_ID == _CodShablon); ((VirtualModul)MyGlo.Modul).PUB_Shablon.AddRange(_ListShablons); _WorkBook.Close(); _ExcelApp.Quit(); // Если загружаем в SQL if (PRI_CheckBox_1.IsChecked == true) { UserShablon.MET_SaveExcelToSQL(_eTip, _CodShablon); MessageBox.Show($"Удалено: {_Remov} строк. Загружено {_ListShablons.Count} строк!", "Загружено в SQL"); } else { MessageBox.Show($"Удалено: {_Remov} строк. Загружено {_ListShablons.Count} строк!", "Загружено в Память"); } }
/// <summary>МЕТОД Создание фильтров</summary> private void MET_CreateFiltr() { PART_Grid.RowDefinitions[0].Height = new GridLength(80, GridUnitType.Auto); PART_Expander.Visibility = Visibility.Visible; Border _Border = new Border(); _Border.Style = (Style)FindResource("Border_2"); PART_Expander.Content = _Border; PART_Expander.IsExpanded = true; StackPanel _SPanel = new StackPanel(); _Border.Child = _SPanel; // ---- Настраиваем фильтр StackPanel _SPanel_1 = new StackPanel(); _SPanel_1.Orientation = Orientation.Horizontal; _SPanel_1.Margin = new Thickness(0, 2, 0, 2); _SPanel.Children.Add(_SPanel_1); // Server PRI_Server = new UserPole_ComboBox(); PRI_Server.PART_ComboBox.ItemsSource = new[] { "Pol", "Fil" }; PRI_Server.PART_ComboBox.SelectedValue = "Pol"; PRI_Server.PROP_WidthText = 60; PRI_Server.PROP_Description = "Server"; _SPanel_1.Children.Add(PRI_Server); // UserCod PRI_FiltrUserCod = new UserPole_Text(); PRI_FiltrUserCod.PROP_MinWidthDescription = 90; PRI_FiltrUserCod.PROP_WidthText = 100; PRI_FiltrUserCod.PROP_Description = "UserCod"; _SPanel_1.Children.Add(PRI_FiltrUserCod); // UserName PRI_FiltrUserName = new UserPole_Text(); PRI_FiltrUserName.PROP_MinWidthDescription = 90; PRI_FiltrUserName.PROP_WidthText = 100; PRI_FiltrUserName.PROP_Description = "UserName"; _SPanel_1.Children.Add(PRI_FiltrUserName); // CompName PRI_FiltrCompName = new UserPole_Text(); PRI_FiltrCompName.PROP_WidthText = 100; PRI_FiltrCompName.PROP_Description = "CompName"; _SPanel_1.Children.Add(PRI_FiltrCompName); // Process PRI_FiltrProcess = new UserPole_Text(); PRI_FiltrProcess.PROP_WidthText = 100; PRI_FiltrProcess.PROP_Description = "Process"; _SPanel_1.Children.Add(PRI_FiltrProcess); // DateN PRI_FiltrDateN = new UserPole_Data(); PRI_FiltrDateN.PROP_WidthText = 100; PRI_FiltrDateN.PROP_Date = DateTime.Today; PRI_FiltrDateN.PROP_Description = "DateN"; _SPanel_1.Children.Add(PRI_FiltrDateN); // DateK PRI_FiltrDateK = new UserPole_Data(); PRI_FiltrDateK.PROP_WidthText = 100; PRI_FiltrDateK.PROP_Date = DateTime.Today; PRI_FiltrDateK.PROP_Description = "DateK"; _SPanel_1.Children.Add(PRI_FiltrDateK); // Level PRI_FiltrLevel = new UserPole_ComboBox(); PRI_FiltrLevel.PART_ComboBox.ItemsSource = new[] { "All", "Error+Fatal", "Trace", "Debug", "Info", "Warn", "Error", "Fatal" }; PRI_FiltrLevel.PART_ComboBox.SelectedValue = "Error+Fatal"; PRI_FiltrLevel.PROP_WidthText = 100; PRI_FiltrLevel.PROP_Description = "Level"; _SPanel_1.Children.Add(PRI_FiltrLevel); // ---- Кнопка обновления фильтров PRI_ButtonReplace = new Button(); PRI_ButtonReplace.Content = "Обновить"; PRI_ButtonReplace.Margin = new Thickness(20, 0, 0, 0); PRI_ButtonReplace.Click += delegate { MET_SqlFilter(); }; _SPanel_1.Children.Add(PRI_ButtonReplace); // ---- Кнопка удаления отфильтрованных записей PRI_ButtonDelete = new Button(); PRI_ButtonDelete.Content = "Удалить"; PRI_ButtonDelete.Margin = new Thickness(20, 0, 0, 0); PRI_ButtonDelete.Click += delegate { // Спросим на всякий случай if (MessageBox.Show("Вы точно хотите Удалить все эти записи?", "Внимание!", MessageBoxButton.YesNo) == MessageBoxResult.No) { return; } // Удаляем MySql.MET_QueryNo(MyQuery.log_wpfBazis_Delete_1(PRO_SqlWhere, PRI_Server.PART_ComboBox.SelectedValue.ToString())); MET_SqlFilter(); }; _SPanel_1.Children.Add(PRI_ButtonDelete); // ---- Кнопка перехода в историю с ошибкой PRI_GotoHistory = new Button(); PRI_GotoHistory.Content = "Переход"; PRI_GotoHistory.Margin = new Thickness(20, 0, 0, 0); PRI_GotoHistory.Click += delegate { try { DataRowView _DataRowView = (DataRowView)PART_DataGrid.SelectedItem; if (_DataRowView == null) { return; } decimal _KL = Convert.ToDecimal(_DataRowView.Row["KL"]); decimal _IND = Convert.ToDecimal(_DataRowView.Row["CodApstac"]); MySql.MET_DsAdapterFill(MyQuery.log_wpfBazis_Select_2(_KL, _IND), "TableRezult"); DataTable _Table = MyGlo.DataSet.Tables["TableRezult"]; if (_Table.Rows.Count == 0) { MessageBox.Show("Данной записи на текущем сервере нет, возможно эта запись сегодня создана на другом сервере", "Внимание!"); return; } DataRow _Row = _Table.Rows[0]; string _Tip = (string)_Row["Tip"]; MyTipProtokol _MyTipProtokol; switch (_Tip) { case "стац": _MyTipProtokol = new MyTipProtokol(eTipDocum.Stac); // модуль стационара break; case "пол": _MyTipProtokol = new MyTipProtokol(eTipDocum.Pol); // модуль поликлиники break; case "пар": _MyTipProtokol = new MyTipProtokol(eTipDocum.Paracl); // модуль параклиники break; default: _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); // модуль истории болезни break; } // У не админов доступ только в историю болезни if (!MyGlo.PROP_Admin) { _MyTipProtokol = new MyTipProtokol(eTipDocum.Null); } // Пытаемся открыть новую копию программы, для редактирования протоколов MyMet.MET_EditWindows(_MyTipProtokol.PROP_TipDocum, _IND, _KL); PROP_Return = true; } catch { } }; _SPanel_1.Children.Add(PRI_GotoHistory); }