///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { // Располагаем текст this.HorizontalAlignment = HorizontalAlignment.Left; if (PROP_Format.MET_If("ac")) { this.HorizontalAlignment = HorizontalAlignment.Center; } if (PROP_Format.MET_If("ar")) { this.HorizontalAlignment = HorizontalAlignment.Right; } // Если указанно в формате, что показываем 1, а не 2 месяца if (PROP_Format.MET_If("m1")) { PART_Calendar.Columns = 1; PART_Calendar.Width = 250; } // Помечаем в календаре указанные даты foreach (var _Dat in PROP_Text.Split(';')) { if (DateTime.TryParse(_Dat, out DateTime _DateTime)) { PART_Calendar.SelectedDates.Add(_DateTime); } } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { MET_LoadText(); // Если признак - не показывать на печать данные (что странно для этого поля) if (PROP_Format.MET_If("novis")) { PROP_Hide = true; } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { MET_Otvet(); MET_LoadText(); // Если поля нету, или признак - не показывать на печать данные то не печатаем его if (PROP_Otvet == "" || PROP_Format.MET_If("novis")) { PROP_Hide = true; } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { MET_Otvet(); MET_LoadText(); // Если поля нету или нету вопроса, или признак - не показывать на печать данные то не печатаем его if (PROP_Otvet != "Открыт" || PROP_OutText.Length == 0 || PROP_Format.MET_If("novis")) { PROP_Hide = true; PROP_HideChild = true; } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { // Располагаем текст this.HorizontalAlignment = HorizontalAlignment.Left; if (PROP_Format.MET_If("ac")) { this.HorizontalAlignment = HorizontalAlignment.Center; } if (PROP_Format.MET_If("ar")) { this.HorizontalAlignment = HorizontalAlignment.Right; } }
/// <summary>МЕТОД Выводим в отчет</summary> public override TextElement MET_Print() { // Рзамеры рисунков int _Zoom = PROP_Format.MET_If("x2") ? 2 : 1; Paragraph _Paragraph = new Paragraph(); _Paragraph.Inlines.Add(new LineBreak()); _Paragraph.LineHeight = 5; UserPole_Image _Image = new UserPole_Image(PROP_Otvet, PROP_VarID, PROP_Shablon.PROP_ID, _Zoom, PROP_Format); _Paragraph.Inlines.Add(_Image); return(_Paragraph); }
///<summary>МЕТОД Формируем выходной текст</summary> protected void MET_LoadText() { UserVariable_Standart _Var = new UserVariable_Standart { PROP_Protokol = this.PROP_Protokol }; PROP_OutText = _Var.MET_ReplacePole(PROP_Shablon.PROP_OutText, PROP_Shablon.PROP_ID, PROP_Prefix); PROP_InText = _Var.MET_ReplacePole(PROP_Shablon.PROP_InText, PROP_Shablon.PROP_ID, PROP_Prefix); if (PROP_Format.MET_If("hide") || PROP_Type == eVopros.Label) { MET_LoadTextValueStart(); } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { MET_Otvet(); MET_LoadText(); // Если поля нету, то не печатаем его (если только принудительно не заставляем печатать вопрос) if (PROP_Otvet == "" & !PROP_Format.MET_If("disp")) { PROP_Hide = true; } // Если признак - не показывать на печать данные if (PROP_Format.MET_If("novis")) { PROP_Hide = true; } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { // Может ли содержать внутри другие объекты или эта таблица нужна только для группировки формы PROP_Nested = PROP_Format.MET_If("gsr"); // Если поля нету, или признак - не показывать на печать данные то не печатаем его if (!PROP_Nested || PROP_Format.MET_If("novis")) { PROP_Hide = true; } else { // Находим текст шапочки MET_LoadText(); MET_LoadTextValueStart(); } }
///<summary>МЕТОД Форматируем данные Вопроса (OutText)</summary> /// <param name="pInline">Элемент, который форматируем</param> protected void MET_FormatVopros(Inline pInline) { // Форматирование Персонально для вопроса bool _FontWeightBold = PROP_Format.MET_If("vsb"); bool _FontStyleItalic = PROP_Format.MET_If("vsi"); bool _FontStyleNormal = !_FontStyleItalic; bool _Underline = PROP_Format.MET_If("vsu"); // Размер шрифта (15 - это 11 размер) int _FontSize = 15; if (PROP_Format.MET_If("vfx")) { try { _FontSize = Convert.ToInt16(PROP_Format.PROP_Value["vfx"]) + 4; } catch { } } // Общее форматирование _FontWeightBold = PROP_Format.MET_If("sb") | _FontWeightBold; _FontStyleItalic = PROP_Format.MET_If("si") | _FontStyleItalic; _FontStyleNormal = PROP_Format.MET_If("sn") | _FontStyleNormal; _Underline = PROP_Format.MET_If("su") | _Underline; // Размер шрифта if (PROP_Format.MET_If("fx")) { try { _FontSize = Convert.ToInt16(PROP_Format.PROP_Value["fx"]) + 4; } catch { } } // Применяем форматирование pInline.FontSize = _FontSize; if (_FontWeightBold) { pInline.FontWeight = FontWeights.Bold; } if (_FontStyleItalic) { pInline.FontStyle = FontStyles.Italic; } if (_FontStyleNormal) { pInline.FontStyle = FontStyles.Normal; } if (_Underline) { pInline.TextDecorations = TextDecorations.Underline; } }
///<summary>МЕТОД Форматируем данные Ответа (Ответ+InText)</summary> /// <param name="pInline">Элемент, который форматируем</param> protected void MET_FormatOtvet(Inline pInline) { // Форматирование Персонально для ответа bool _FontWeightBold = PROP_Format.MET_If("osb"); bool _FontStyleNormal = PROP_Format.MET_If("osn"); bool _FontStyleItalic = _FontStyleNormal; //!_FontStyleNormal; bool _Underline = PROP_Format.MET_If("osu"); // Размер шрифта (16 - это 12 размер) int _FontSize = 16; if (PROP_Format.PROP_Value.ContainsKey("ofx")) { try { _FontSize = Convert.ToInt16(PROP_Format.PROP_Value["ofx"]) + 4; } catch { } } // Общее форматирование _FontWeightBold = PROP_Format.MET_If("sb") | _FontWeightBold; _FontStyleItalic = PROP_Format.MET_If("si") | _FontStyleItalic; _FontStyleNormal = PROP_Format.MET_If("sn") | _FontStyleNormal; _Underline = PROP_Format.MET_If("su") | _Underline; // Размер шрифта if (PROP_Format.MET_If("fx")) { try { _FontSize = Convert.ToInt16(PROP_Format.PROP_Value["fx"]) + 4; } catch { } } // Применяем форматирование pInline.FontSize = _FontSize; if (_FontWeightBold) { pInline.FontWeight = FontWeights.Bold; } if (_FontStyleItalic) { pInline.FontStyle = FontStyles.Italic; } if (_FontStyleNormal) { pInline.FontStyle = FontStyles.Normal; } if (_Underline) { pInline.TextDecorations = TextDecorations.Underline; } }
///<summary>МЕТОД Инициализация поля</summary> public override void MET_Inicial() { // Располагаем текст PROP_TextAlignment = TextAlignment.Left; if (PROP_Format.MET_If("fac")) { PROP_TextAlignment = TextAlignment.Center; } if (PROP_Format.MET_If("far")) { PROP_TextAlignment = TextAlignment.Right; } // Сортировка нисподающего списка (по умолчанию по алфавиту, иначе по порядку List) PROP_SortList = PROP_Format.MET_If("sortlist"); // Загружаем варианты ответов string _List = PROP_FormShablon.PROP_TipProtokol.PROP_List; MySql.MET_DsAdapterFill(MyQuery.MET_List_Select_4(_List, PROP_Shablon, PROP_VarId, PROP_SortList), Name); List <string> _ValueList = (from DataRow _Row in MyGlo.DataSet.Tables[Name].Rows select _Row["Value"].ToString()).ToList(); PROP_ComboBox.ItemsSource = _ValueList; // Начальное значение PROP_ComboBox.SelectedValue = PROP_Text; }
/// <summary>МЕТОД Формируем Форму Шаблона</summary> public override void MET_CreateForm() { PRI_StackPanel.Orientation = Orientation.Vertical; if (PROP_Docum.PROP_ListShablon == null) { PROP_Docum.PROP_ListShablon = UserListShablon.MET_FactoryListShablon(PROP_TipProtokol.PROP_TipDocum, PRO_NomerShablon); } // Исключение при выполнении запроса к базе try { PUB_HashPole = new SortedList(); // список полей Background = Brushes.GhostWhite; // Если открываем заполненый протокол if (!PROP_NewProtokol) { PRO_StrProtokol = PROP_Docum.PROP_Protokol.PROP_Protokol; PROP_Cod = PROP_Docum.PROP_Protokol.PROP_Cod; // Старый шаблон PROP_StadNodes = eStadNodes.Old; } else // Пытаемся найти последний протокол по KL и коду шаблона { if (MySql.MET_DsAdapterFill(MyQuery.MET_Protokol_Select_8(MyGlo.KL, PRO_NomerShablon, PROP_TipProtokol.PROP_Prefix), PROP_TipProtokol.PROP_Protokol) > 0) { // Новый шаблон, с предыдушими данными PROP_StadNodes = eStadNodes.NewPerw; PRO_StrProtokol = MyGlo.DataSet.Tables[PROP_TipProtokol.PROP_Protokol].Rows[0]["Protokol"].ToString(); } else { // Новый шаблон PROP_StadNodes = eStadNodes.New; } } // ---- Дата осмотра PROP_Format = PROP_Docum.PROP_ListShablon.PROP_MyFormat; VirtualPole _Date = MET_CreateUserPole(3); _Date.PROP_Necessarily = true; _Date.PROP_Description = PROP_Format.MET_If("pDateT") ? PROP_Format.PROP_Value["pDateT"].ToString() : "Дата"; // Если старый протокол if (!PROP_NewProtokol) { _Date.PROP_Text = PROP_Docum.PROP_Protokol.PROP_pDate.ToString(); } else { // Если новый шаблон if (PROP_Format.MET_If("pDateD")) { switch (PROP_Format.PROP_Value["pDateD"].ToString()) { case "pol": // если посещение поликлиники _Date.PROP_Text = MyMet.MET_ParseDat(MyGlo.HashAPAC["DP"]).ToString(); break; default: _Date.PROP_Text = DateTime.Today.ToString(); // текущий день break; } } else { _Date.PROP_Text = DateTime.Today.ToString(); // текущий день } } _Date.PROP_DefaultText = DateTime.Today.ToString(); // начальное значение _Date.PROP_ValueMin = Convert.ToDateTime("01/01/2011"); // минимальное число - 2011 год _Date.Name = "DateOsmotr"; // имя поля _Date.PROP_FormShablon = this; // ссылка на форму PUB_HashPole.Add(_Date.Name, _Date); // записываем элемент в очередь PRI_StackPanel.Children.Add(_Date); // добавляем элемент на форму // Перебераем все вопросы MET_LoadPole(); // Деактивируем кнопку "Сохранить" PROP_EditShablon = false; // Всё шаблон создан! PROP_Created = true; } catch { // ignored } }
/// <summary>МЕТОД Добавляем к полю дочерние элементы, если есть</summary> public override TextElement MET_Print() { // Выходная секция (заголовок + таблица) Section _Section = new Section(); // Формируем таблицу int _Row; int _Column; // Строк try { _Row = Convert.ToInt16(PROP_Format.PROP_Value["gR"]); } catch { _Row = 1; } // Колонок try { _Column = Convert.ToInt16(PROP_Format.PROP_Value["gC"]); } catch { _Column = 1; } // Нужно ли скрывать отображение сетки PRI_HideThick = PROP_Format.MET_If("hdt"); // Формируем таблицу PRI_Table = new Table { CellSpacing = 0, Margin = new Thickness(0) }; PRI_Table.RowGroups.Add(new TableRowGroup()); // Колонки for (int x = 0; x < _Column; x++) { TableColumn _TableColumn = new TableColumn { Width = new GridLength(1, GridUnitType.Star) }; PRI_Table.Columns.Add(_TableColumn); } // Строки for (int i = 0; i < _Row; i++) { PRI_Table.RowGroups[0].Rows.Add(new TableRow()); } // Формируем верхнюю подпись таблци if (PROP_OutText.Length > 0 | PROP_Otvet.Length > 0 | PROP_InText.Length > 0) { // Вопрос Run _OutText = new Run(); if (PROP_OutText.Length > 0) { _OutText = (PROP_Otvet + PROP_InText).Length > 0 ? new Run(PROP_OutText + " ") : new Run(PROP_OutText); } MET_FormatVopros(_OutText); // Ответ Run _InText = new Run(PROP_Otvet + PROP_InText); MET_FormatOtvet(_InText); // Вопрос + Ответ Span _Span = new Span(); _Span.Inlines.Add(_OutText); _Span.Inlines.Add(_InText); TextElement _TextElement = MET_FormatVoprosOtvet(_Span); // Создаем параграф и вставляем текст Paragraph _Paragraph = new Paragraph(); if (_TextElement is Paragraph) { _Paragraph = (Paragraph)_TextElement; } else { _Paragraph.Inlines.Add((Inline)_TextElement); } _Section.Blocks.Add(_Paragraph); } // Добавляем в секцию таблицу _Section.Blocks.Add(PRI_Table); return(_Section); }
///<summary>МЕТОД Форматируем данные</summary> /// <param name="pInline">Элемент, который форматируем</param> protected TextElement MET_FormatVoprosOtvet(Inline pInline) { TextElement _TextElement = pInline; // Табуляция if (PROP_Format.MET_If("t")) { try { int x = MyMet.MET_ParseInt(PROP_Format.PROP_Value["t"]); do { (pInline as Span).Inlines.InsertBefore((pInline as Span).Inlines.FirstInline, new Run("\t")); x--; } while (x > 0); } catch { (pInline as Span).Inlines.InsertBefore((pInline as Span).Inlines.FirstInline, new Run("\t")); } } // Пробел if (PROP_Format.MET_If("s")) { try { int x = MyMet.MET_ParseInt(PROP_Format.PROP_Value["s"]); do { (pInline as Span).Inlines.InsertBefore((pInline as Span).Inlines.FirstInline, new Run(" ")); x--; } while (x > 0); } catch { (pInline as Span).Inlines.InsertBefore((pInline as Span).Inlines.FirstInline, new Run(" ")); } } bool _NewPage = PROP_Format.MET_If("f"); bool _NewParagraf = PROP_Format.MET_If("p"); bool _NewLine = PROP_Format.MET_If("n"); if (_NewPage || _NewParagraf || _NewLine) { Paragraph _Paragraph = new Paragraph(pInline) { LineHeight = 1 }; // Новая страница if (_NewPage) { _Paragraph.BreakPageBefore = true; } // Новый параграф if (_NewParagraf) { Thickness _Thickness = new Thickness { Top = 5 }; if ((string)PROP_Format.PROP_Value["p"] != "") { try { int x = Convert.ToInt16(PROP_Format.PROP_Value["p"]); _Thickness.Top += x < 2 ? 0 : (x - 1) * 15; } catch { } } _Paragraph.Margin = _Thickness; } // Новая строка if (_NewLine) { if ((string)PROP_Format.PROP_Value["n"] != "") { try { Thickness _Thickness = new Thickness(); int x = Convert.ToInt16(PROP_Format.PROP_Value["n"]); _Thickness.Top = x < 2 ? 0 : (x - 1) * 12; _Paragraph.Margin = _Thickness; } catch { } } } if (PROP_Format.MET_If("ac")) { _Paragraph.TextAlignment = TextAlignment.Center; } if (PROP_Format.MET_If("ar")) { _Paragraph.TextAlignment = TextAlignment.Right; } _TextElement = _Paragraph; } return(_TextElement); }