Никак не получается задать значение по умолчанию. Заполняю список из справочника. private bool ImplementService(Context context,EleWise.ELMA.Model.Views.FormViewBuilder<Context> form) { try{ //Получаем данные из локального справочника Услуги. ICollection<Uslugi> servise = PublicAPI.Objects.UserObjects.UserUslugi.Find(string.Empty); //Получаем настройки выпадающего списка для контекстной переменной var _servise = context.GetSettingsFor(c => c.VyberiteUslugu).As<DropDownListSettings>();; _servise.Items.Clear(); foreach (var uslugi in servise) { _servise.Items.Add(new DropDownItem() { Value = uslugi.Name, Key = uslugi.Identifikator.Naimenovanie, }); } _servise.DefaultValue = new DropDownItem { Value = _servise.Items[0].Value, Key= _servise.Items[0].Key }; _servise.SelectOnly = true; _servise.Save(); return true; } catch(Exception e) { throw new Exception("Ошибка инициализации списка Тип услуги" + e.Message,e.InnerException); } return false; }
Если я правильно понял вашу задачу, то вам нужно, чтобы на форме был предзаполнена переменная выпадающего списка. Для этого в этом скрипте, ей нужно просто присвоить нужное значение. Код: context.VyberiteUslugu = _servise.Items[0]; PS: А еще подскажите зачем вы справочник копируете в выпадающий список, вместо выбора напрямую из справочника?
я это делаю для того, что когда делаю справочник на форме, то пользователи могут в него данные добавлять. и на форме отображаются значки, добавить и поиск. Чтобы пользователь не мог этого сделать, я выбрал такое решение. Так как справочники может редактировать только одно роль. и делать это он должен только на вкладке справочники.
Если у пользователя будут права только на просмотр элементов справочника, то и дополнительные значки (значок плюса) на форме отображаться не будут.
Проверял это в режиме отладки и значки были все время. Сейчас проверил в опубликованном процессе и да все верно. Спасибо
даже если и есть доступ можно нажать во вкладке дополнительно - кастомная форма и из формы по умолчанию вставить - а потом просто заблочить кнопки создания (передать параметром показывать ли кнопку false) так будет нормальный справочник и поиск работать будет, а костылять не надо - потом другие разработчики глаза себе ломают
До кастомных форм еще не дошел, пока изучаю, что и как можно делать с помощью сценариев. Потом дойду до кастомизации интерфейсов
Эта настройка свойства в конструкторе форм есть сейчас эта настройка (начиная с версии 3.10.5) Так что кастомную форму можно не делать.
Переделал выпадающие списки на справочники. но теперь не получается отфильтровать их. Если коротко, то есть 3 справочника. Идентификатор заявки (Содержит наименование) Услуги (содержит наименование и идентифиактор заявки как объект) И тип заявки (содержит наименование и идентифиактор заявки как объект). Тип заявки зависит от Выбранной услуги. Делаю следующие: var settings = (EntitySettings)context.GetSettingsFor(c=>c.YkazhiteTipZayavki); settings.FilterQuery = context.VyberiteYslugu != null ? "Identifikator = " + context.VyberiteYslugu.Identifikator.Naimenovanie : "Id > 0"; settings.Save();
Проверьте корректность EQL запросов какие-то они у вас странные. В администрировании есть раздел для составления и проверки EQL по любым объектам. Ну и ошибка похожа не на системную. Она похожа на то что вы что-то не то ищите.
Ничего странного тут не вижу. Проблему решил. Ошибка в том, что я фильтровал по свойству наименования, а надо было по Id settings.FilterQuery = context.VyberiteYslugu != null ? "Identifikator = " + context.VyberiteYslugu.Identifikator.Id : "Id > 0";
Подскажите пожалуйста, как присвоить полю RazrabotchikDog (тип выпадающий список) значение из этого списка try { if (context.TipDogovora.Value == "Типовой") { form.For(c => c.RazrabotchikDog).ReadOnly(true).Visible(true); var vid = context.RazrabotchikDog = "ОдиОЮР" // ошибка, нельзя преобразовать string в DropDownItem } else if (context.TipDogovora.Value == "Нетиповой") { form.For(c => c.RazrabotchikDog).Required(false).Visible(true); }
[QUOTE = "romvbem, post: 1852, участник: 140"] var vid = context.RazrabotchikDog = new DropDownItem (" ОдиОЮР ") [/ QUOTE] Большое спасибо!