Добрый день!
Необходима помощь знающих людей в следующем вопросе:
на карточке редактирования есть два поля. Первое поле типа справочник. При выборе значения в первом поле необходимо заполнить выпадающий список для второго поля, что бы пользователь смог выбрать только определенные значения. Значения для списка второго поля вычисляются в коде. Они не постоянны, поскольку один из элементов вычисления имеет переменное значение.
Идеальным вариантом был бы мемори датасет, но не получилось привязать его к контролу EnumDataControl.
Так же есть идея заполнять сервис Enum динамически в коде, возможно ли это?
Или есть другой вариант решения задачи?
Заранее благодарю!!!
Нравится
http://terrasoft.com.ua/sdk/
IEnumExample.js - пример динамического заполнения перечисления.
Подскажите, пожалуйста, а можно добавлять/удалять элементы у сервиса Enum через код перед его открытием (ShowSelectEnumItemWindow(EnumUSI))? Мне это сделать не удалось. Наверно, что-то не так делаю.
Конечно можно, IEnum в SDK посмотрите.
Что именно не удалось ?
1) Создала сервис Enum без значений.
2) далее заполняю и вызываю его следующим образом в коде:
var enm_ShowsForDay = Services.GetNewItemByUSI('enm_ShowsForDay'); for (var i = 1; i <= 13; i++) { var EnumItem = enm_ShowsForDay.CreateItem(); EnumItem.ID = EnumItem.Code = 'TranslationsPerBlock_' + i; EnumItem.Caption = i; enm_ShowsForDay.Add(EnumItem); } try{ var TrsPerBlock = parseInt((ShowSelectEnumItemWindow('enm_ShowsForDay')).ResultValue.Caption); } catch (e){ return false; }
но список оказывается пустым при открытии перечисления.
Разобралась сама.
В функции ShowSelectEnumItemWindow просто заново объект создавался.
var Enum = Services.GetNewItemByUSI('EnumUSI');
создала рядом копию функции,но без вышеуказанной строки.
Кстати перечисления кажется по GetSingleItemByUSI получать надо.
"Underscore a.k.a. _" написал:Кстати перечисления кажется по GetSingleItemByUSI получать надо.
Почему?
GetSingleItemByCode ()
Services.GetNewItemByUSI()
"Раловец Ольга" написал:Почему?
GetSingleItemByCode ()
Services.GetNewItemByUSI()
Прошу прощения, я Вас не совсем понял :)
Я хотел сказать что перечисления как и таблицы получаем с помощью метода GetSingleItemByUSI объекта Services.
Я всегда считала, что правильно Services.GetNewItemByUSI(), но похоже и Services.GetSingleItemByUSI() тоже работает.
http://terrasoft.com.ua/sdk/IServices__GetSingleItemByUSI@[in]_BSTR@[out,_retval]_IService__.html
http://terrasoft.com.ua/sdk/IServices__GetNewItemByUSI@[in]_BSTR@[out,_retval]_IService__.html
Я понимаю, что мануал читают только ламеры, но все же...
Но я надеюсь Вы осознаете и исправитесь :) На самом деле немного стыдно, два раза подряд Вас так ткунуть. Но это было сильнее меня :)
"Underscore a.k.a. _" написал:На самом деле немного стыдно, два раза подряд Вас так ткунуть
Что Вы, напротив, я ценю конструктивную критику.