enum
выпадающий
перечисление
список
Скрипты
Разработка

Выпадающий список с динамическими данными

Добрый день!

Необходима помощь знающих людей в следующем вопросе:

на карточке редактирования есть два поля. Первое поле типа справочник. При выборе значения в первом поле необходимо заполнить выпадающий список для второго поля, что бы пользователь смог выбрать только определенные значения. Значения для списка второго поля вычисляются в коде. Они не постоянны, поскольку один из элементов вычисления имеет переменное значение.
Идеальным вариантом был бы мемори датасет, но не получилось привязать его к контролу EnumDataControl.
Так же есть идея заполнять сервис Enum динамически в коде, возможно ли это?
Или есть другой вариант решения задачи?

Заранее благодарю!!!

Нравится

14 комментариев

http://terrasoft.com.ua/sdk/
IEnumExample.js - пример динамического заполнения перечисления.

спасибо!

Подскажите, пожалуйста, а можно добавлять/удалять элементы у сервиса Enum через код перед его открытием (ShowSelectEnumItemWindow(EnumUSI))? Мне это сделать не удалось. Наверно, что-то не так делаю.

www.informicus.ru

Конечно можно, IEnum в SDK посмотрите.
Что именно не удалось ?

1) Создала сервис Enum без значений.
2) далее заполняю и вызываю его следующим образом в коде:
[javascript]
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;
}
[/javascript]
но список оказывается пустым при открытии перечисления.

www.informicus.ru

Разобралась сама.
В функции ShowSelectEnumItemWindow просто заново объект создавался.
[javascript]
var Enum = Services.GetNewItemByUSI('EnumUSI');
[/javascript]
создала рядом копию функции,но без вышеуказанной строки.

www.informicus.ru

Кстати перечисления кажется по GetSingleItemByUSI получать надо.

"Underscore a.k.a. _" написал:Кстати перечисления кажется по GetSingleItemByUSI получать надо.

Почему?
GetSingleItemByCode ()
Services.GetNewItemByUSI()

"Раловец Ольга" написал:Почему?
GetSingleItemByCode ()
Services.GetNewItemByUSI()

Прошу прощения, я Вас не совсем понял :)
Я хотел сказать что перечисления как и таблицы получаем с помощью метода GetSingleItemByUSI объекта Services.

Я всегда считала, что правильно Services.GetNewItemByUSI(), но похоже и Services.GetSingleItemByUSI() тоже работает.

:redface:

Но я надеюсь Вы осознаете и исправитесь :) На самом деле немного стыдно, два раза подряд Вас так ткунуть. Но это было сильнее меня :)

"Underscore a.k.a. _" написал:На самом деле немного стыдно, два раза подряд Вас так ткунуть

Что Вы, напротив, я ценю конструктивную критику.

Показать все комментарии