///<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;
     }
 }
Beispiel #3
0
 ///<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;
     }
 }
Beispiel #5
0
 ///<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;
     }
 }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        ///<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();
            }
        }
Beispiel #8
0
 ///<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;
     }
 }
Beispiel #9
0
 ///<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();
     }
 }
Beispiel #10
0
        ///<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;
            }
        }
Beispiel #11
0
        ///<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;
        }
Beispiel #13
0
        /// <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
            }
        }
Beispiel #14
0
        /// <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);
        }
Beispiel #15
0
        ///<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);
        }