OneToMany
Назначение
Компонент OneToMany предназначен для выбора значений из справочника.
Незаполненный компонент выглядит следующим образом:

При нажатии на кнопку “…” открывается диалоговое окно:

Пример заполнения данными компонента:

Свойства
| Наименование | Назначение | Значение по умолчанию |
|---|---|---|
| visible | задаёт видимость компоненты | true |
| disabled | задаёт редактируемость компоненты | false |
| tooltip | задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент | |
| cssClasses | список CSS классов (см. раздел Дизайн) | |
| style | список основных свойств:
|
Пример заполнения:
Необходимо добавить компонент OneToMany на страницу.
Для того чтобы данные, отобранные с помощью этого компонента, сохранялись в базу данных, его необходимо вложить в компонент Form.

OneToMany – это составной компонент, состоящий из след. элементов:

Здесь:

Настроим каждый элемент отдельно.
1. Настройка OneToManyField:
Настроить аналогично Autocomplete.
2. Настройка кнопки диалогового окна “…”:
Настроить SelectButton.
3. Настройка диалогового окна:
3.1 Настроить Grid.
3.2 Настройка FilterPanel:
Заполнить FilterFieldSet:
В FilterFieldSet вкладываются компоненты из раздела Компоненты > Фильтры, в зависимости от того по полям какого типа собираетесь фильтровать: по дате - FilterDateTimePicker, по тексту - FilterTextField, по списку значений - FilterComboBox, и т. д.
Заполнить ButtonsContainer:
Контейнер ButtonsContainer содержит в себе кнопки диалогового окна. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.
3.3 Заполнить ButtonsContainer:
Контейнер ButtonsContainer содержит в себе кнопки диалогового окна. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.
Пример минимальной настройки компонента OneToMany…
Задача: Необходимо организовать выбор организации из списка организаций.
Добавляем OneToMany (если предполагается сохранение в БД – то в компонент Form)
1. Настройка OneToManyField:
| Наименование | Действие |
|---|---|
| graph | задайте граф сущностей: в примере используются 2 таблицы: organization – организация и organization_version – версия организации (хранит нужную нам информацию по организации) |
| Column For Save | колонка в БД для загрузки и сохранения значения (в списке – таблицы из структуры сущностей Form, в который вложен настраиваемый компонент) – здесь задаем таблицу:колонку куда будем класть выбранную организацию. |
2. Настройка диалогового окна:
Настраиваем Grid:
| Наименование | Назначение | Результат |
|---|---|---|
| graph | Граф сущностей аналогичен графу OneToManyField (см. п.1.): |
|
| columns[size] | Отображаемые колонки в Grid. Для примера настроены две колонки: |
В результате настроенная таблица в диалоге выбора SelectDialog: |
Настройка FilterPanel:
Необходимо настроить фильтрацию в настроенном Grid. Для примера настроим фильтрацию по колонке Full name.
В Full name хранится текст, следовательно необходимо в FilterFieldSet добавить фильтр FilterTextField.
FilterTextField настраивается аналогично TextField (имеет те же общие свойства), а также свойство, характерное свойство для фильтров – FilterControl:

Здесь мы выбрали операцию фильтрации CONTAINS – будут отобраны значения содержание введенные пользователем символы и Column For Filter – таблица:колонка, по которой происходит сортировка – в нашей задаче это поле full_name таблицы organization_version.
Скрипты
component/grid/renderers/Base64ImageCellRenderer.ts - скрипт для отображения изображения. Необходимо выбрать его в свойстве renderer необходимой колонки.