Динамическое добавление виртуальных полей в модальном окне

Всем доброго времени суток!

Есть задача: по нажатию кнопки в модальном окне открывается окно с выбором

полей текущего раздела. Выбирается любое поле и добавляется в модальное окно. И так далее. То есть получается добавленные поля существуют только пока  открыто модальное окно. Это нужно для создания отчета Excel, где указанные значения в полях будут фильтрами.

В разделе полей много. Плюс в будущем поля могут добавляться. Поэтому забивать их жестко в diff смысла не вижу.

Вопрос: есть ли возможность как-то динамически наполнять массив diff полями? 

Нравится

2 комментария

А если создать фиксированное количество виртуальных полей и программно их скрывать, показывать, а также менять заголовки?

 

Либо в этом окне использовать редактируемый реестр с двумя колонками: название и значение. Примерно такой обсуждали в этой теме, но там предлагали решение при помощи view, что может в Вашем случае не подойти.

 

Наконец, если формируете фильтр по значениям полей, можно воспользоваться готовым механизмом динамических групп, где такой тоже настраивается. То есть стандартными средствами создать группу, а затем выбрать её в окне настроек отчёта, а затем программно разбирать её фильтр.

 

А вообще, описанное Вами очень похоже на автогенерируемую страницу в БП. Может, с её помощью получится?

Зверев Александр,

Спасибо за ответ. Фиксированное количество виртуальных полей не вариант, так как в будущем клиент самостоятельно может добавлять поля, которые тоже должны выбираться. Мне подсказали создать на странице модального окна ContainerList. Вот такой элемент diff:

{
    "operation": "insert",
    "name": "CommunicationsContainer",
    "parentName": "ContainerListContainer",
    "propertyName": "items",
    "values": {
        "generator": "ConfigurationItemGenerator.generateContainerList",
        "idProperty": "Id",
        "collection": "CaseFieldCollection",
        "observableRowNumber": 10,
        "onGetItemConfig": "getCaseItemConfig"
    }
}

"collection" - коллекция всех полей, которые могут быть отображены в модальном окне.

"onGetItemConfig" - метод, где формируется структура каждого поля.

Только вот до конца не ясно как с этим всем работать.

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