/// <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); // записываем элемент в очередь }
/// <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(); } }