コード例 #1
0
        /// <summary>МЕТОД Заполняем Поля</summary>
        protected override void MET_LoadPole()
        {
            // Наименование документа
            VirtualPole _Pole = MET_CreateUserPole(8);

            _Pole.PROP_FormShablon = this;
            _Pole.PROP_VarId       = 1;
            // Ответ
            if (PROP_StadNodes == eStadNodes.Old)
            {
                _Pole.PROP_Text = MyMet.MET_GetPole(_Pole.PROP_VarId, PRO_StrProtokol);
            }
            _Pole.Name = "elePoleShabl_" + _Pole.PROP_VarId; // имя поля
            PUB_HashPole.Add(_Pole.Name, _Pole);             // записываем элемент в очередь

            // Имя файла
            _Pole = MET_CreateUserPole(8);
            _Pole.PROP_FormShablon = this;
            _Pole.PROP_VarId       = 2;
            // Ответ
            if (PROP_StadNodes == eStadNodes.Old)
            {
                _Pole.PROP_Text = MyMet.MET_GetPole(_Pole.PROP_VarId, PRO_StrProtokol);
            }
            _Pole.Name = "elePoleShabl_" + _Pole.PROP_VarId; // имя поля
            PUB_HashPole.Add(_Pole.Name, _Pole);             // записываем элемент в очередь
        }
コード例 #2
0
        /// <summary>МЕТОД Заполняем Поля</summary>
        protected override void MET_LoadPole()
        {
            // Пробегаемся по вопросам шаблона
            foreach (UserShablon _Shablon in PROP_Docum.PROP_Shablon)
            {
                try
                {
                    MyFormat _Format = new MyFormat(_Shablon.PROP_xFormat); // формат
                    // Если поле нужно проппустить, то следующее поле
                    if (_Format.MET_If("hide") || _Format.MET_If("old"))
                    {
                        continue;
                    }
                    VirtualPole _Pole = MET_CreateUserPole(_Shablon.PROP_Type);                                             // создаем поле, соответствующего типа
                    _Pole.PROP_FormShablon = this;                                                                          // ссылка на форму
                    _Pole.PROP_Shablon     = _Shablon.PROP_ID;                                                              // номер шаблона, как минимум нужен для Картинок
                    _Pole.PROP_Description = _Shablon.PROP_Name;                                                            // вопрос
                    _Pole.PROP_VarId       = _Shablon.PROP_VarId;                                                           // номер индификатора VarId
                    _Pole.PROP_Format      = _Format;                                                                       // формат поля
                    _Pole.PROP_Necessarily = _Format.MET_If("nec");                                                         // обязательное поле
                    _Pole.IsEnabled        = !_Format.MET_If("disab");                                                      // запрет на редактирование
                    _Pole.PROP_DefaultText = MET_ReplaceProp(_Shablon.PROP_ValueStart, PRO_NomerShablon, _Pole.PROP_VarId); // Значение ответа по умолчанию
                    // Ответ
                    if (PROP_StadNodes == eStadNodes.New ||
                        (PROP_StadNodes == eStadNodes.NewPerw && _Format.MET_If("nprev")))
                    {
                        // Значения по умолчанию
                        _Pole.PROP_Text = _Pole.PROP_DefaultText;
                    }
                    else
                    {
                        // Значения из протокола (либо eStadNodes.Old, либо eStadNodes.NewPerw)
                        _Pole.PROP_Text = MyMet.MET_GetPole(_Pole.PROP_VarId, PRO_StrProtokol);
                    }
                    // Если новый протокол, то текст серый (значение по умолчанию)
                    if (PROP_NewProtokol)
                    {
                        _Pole.PROP_ForegroundText = Brushes.Gray;
                    }
                    _Pole.Name = "elePoleShabl_" + _Pole.PROP_VarId; // имя поля

                    // Lua
                    if (!string.IsNullOrEmpty(_Shablon.PROP_xLua))
                    {
                        _Pole.PROP_Lua = new UserLua_Standart(_Pole)
                        {
                            PROP_ChankText = _Shablon.PROP_xLua
                        };
                        _Pole.PROP_Lua.MET_StartLua();
                    }
                    PUB_HashPole.Add(_Pole.Name, _Pole); // записываем элемент в очередь
                    // Указатель на принадлежность к разделу

                    string _Maska = _Shablon.PROP_Maska;
                    // Добавляем элемент в ...
                    if (_Maska == "")
                    {
                        PRI_StackPanel.Children.Add(_Pole); // добавляем элемент на форму
                    }
                    else
                    {
                        ((VirtualPole)PUB_HashPole["elePoleShabl_" + _Maska]).MET_AddElement(_Pole);
                    }
                    // добавляем элемент в родительское поле

                    _Pole.MET_Inicial(); // инициализация поля (если есть)
                }
                catch
                {
                    // ignored
                }
            }
            Children.Add(PRI_StackPanel);

            // Ещё раз пробегаем по полям и запускаем Lua код
            foreach (DictionaryEntry _DiEnt in PUB_HashPole)
            {
                var _PoleLua = (VirtualPole)_DiEnt.Value;
                _PoleLua?.PROP_Lua?.MET_OnCreat();
            }
        }