Отобразить деталь в представлении раздела.

Создал представление раздела, с гридой и группой полей.

            {
                "operation": "insert",
                "name": "BDDSGridDataView",
                "parentName": "DataViewsContainer",
                "propertyName": "items",
                "values": {
                    "itemType": Terrasoft.ViewItemType.SECTION_VIEW,
                    "items": []
                }
            },
            {
                "operation": "insert",
                "name": "BDDSGridSectionContainer",
                "parentName": "BDDSGridDataView",
                "propertyName": "items",
                "values": {
                    "id": "BDDSGridSectionContainer",
                    "itemType": Terrasoft.ViewItemType.CONTAINER,
                    "items": []
                },
                index:1
            },
            {
                "operation": "insert",
                "parentName": "BDDSGridDataView",
                "propertyName": "items",
                "name": "BDDSInfoBlock",
                "values": {
                    "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
                    "items": []
                },
                index:0
            },

необходимо в это представление добавить деталь. Стандартными средствами не удается сделать. Видимо Section не знает, что такое детали. Подскажите как справиться с задачей.

Нравится

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

Здравствуйте!

Какая версия продукта?
В продуктах версии 7.5.0 и выше есть мастер деталей. Вы можете создать деталь, используя нужный объект. После сохранения созданной детали, у Вас в системе появится зарегистрированная деталь и страница редактирования детали.
Далее, через мастер раздела, Вы можете добавить зарегистрированную деталь.

Здравствуйте!

Какая версия продукта?
В продуктах версии 7.5.0 и выше есть мастер деталей. Вы можете создать деталь, используя нужный объект. После сохранения созданной детали, у Вас в системе появится зарегистрированная деталь и страница редактирования детали.
Далее, через мастер раздела, Вы можете добавить зарегистрированную деталь.

версия продукта 7.6. Дело в том, что так как это представление раздела - мне необходимо прикрепить деталь непосредственно в Section моего раздела в контейнер моего представления, а не на страницу редактирования объекта раздела. По факту я работаю с наследником BaseSection, а не BasePage. А в BaseSection видимо не описана логика присоединения детали.

Эммм... У раздела есть две схемы [Name]Page и [Name]Section. [Name]Section - это и есть страница редактирования раздела. Вы можете открыть созданный Вами раздел через мастер раздела?

Да, открыл

Вы, видимо, не поняли суть проблемы. Я создал представление раздела на основе PivotGrid из раздела планировая (Forecast). Сформировал сводную таблицу(на основании вьюхи в базе данных). И накидал виртуальных полей в контейнер на <имя раздела>Section. Теперь мне необходима деталь, которая бы завязывалась на виртуальное поле данного представления. Предоставляю код SECTION:

 {
                "operation": "insert",
                "name": "BDDSGridDataView",
                "parentName": "DataViewsContainer",
                "propertyName": "items",
                "values": {
                    "itemType": Terrasoft.ViewItemType.SECTION_VIEW,
                    "items": []
                }
            },
            {
                "operation": "insert",
                "name": "BDDSGridSectionContainer",
                "parentName": "BDDSGridDataView",
                "propertyName": "items",
                "values": {
                    "id": "BDDSGridSectionContainer",
                    "itemType": Terrasoft.ViewItemType.CONTAINER,
                    "items": []
                },
                index:1
            },
            {
                "operation": "insert",
                "parentName": "BDDSGridDataView",
                "propertyName": "items",
                "name": "BDDSInfoBlock",
                "values": {
                    "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
                    "items": []
                },
                index:0
            },
 
            ///// BDDS GRID LAYOUT FIELDS
 
            {
                "operation": "insert",
                "parentName": "BDDSInfoBlock",
                "propertyName": "items",
                "name": "DateFrom",
                "values": {
                    "caption":"Период с",
                    "layout": {
                        "column": 0,
                        "row": 0,
                        "colSpan": 8
                    }
                }
            },
            {
                "operation": "insert",
                "parentName": "BDDSInfoBlock",
                "propertyName": "items",
                "name": "DateTo",
                "values": {
                    "caption":"по ",
                    "layout": {
                        "column": 8,
                        "row": 0,
                        "colSpan": 8
                    }
                }
            },
 
            {
                "operation": "insert",
                "name": "PreviousWeek",
                "parentName": "BDDSInfoBlock",
                "propertyName": "items",
                "index": 0,
                "values": {
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "caption": "Previous",
                    "click": {"bindTo": "getPrevWeek"},
                    "enabled": true,
                    "layout": {
                        "column": 17,
                        "row": 0,
                        "colSpan": 2
                    }
                }
            },
            {
                "operation": "insert",
                "name": "CurrentWeek",
                "parentName": "BDDSInfoBlock",
                "propertyName": "items",
                "index": 0,
                "values": {
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "caption": "Current",
                    "click": {"bindTo": "getThisWeek"},
                    "enabled": true,
                    "layout": {
                        "column": 19,
                        "row": 0,
                        "colSpan": 2
                    }
                }
            },
            {
                "operation": "insert",
                "name": "NextWeek",
                "parentName": "BDDSInfoBlock",
                "propertyName": "items",
                "index": 0,
                "values": {
                    //"imageConfig": {"bindTo": "Resources.Images.ThisWeek"},
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "caption": "Next",
                    "click": {"bindTo": "getNextWeek"},
                    "enabled": true,
                    "layout": {
                        "column": 21,
                        "row": 0,
                        "colSpan": 2
                    }
                }
            },

Далее в этот же VIEW CONTAINER хотелось бы прикрепить деталь. Напоминаю, это не страница редактирования раздела.

На вкладках Вы можете добавить либо группу полей, либо деталь. Деталь должна быть предварительно зарегистрированной. Деталь Вы можете зарегистрировать через мастер деталей.

Прошу прощения - мой вариант не подходит..

Попытался на Section грубо создать деталь

entitySchemaName: 'SxBDDS'

        details: /**SCHEMA_DETAILS*/{
            "SxDemand": {
                schemaName: "SxDemandDetail",
                entitySchemaName: "SxDemand",
                filter: {
                    masterColumn: "Id",
                    detailColumn: "SxBDDS"
                }
            }
        }/**SCHEMA_DETAILS*/,

Далее в дифах

            {
                "operation": "insert",
                "parentName": "BDDSGridDataView",
                "propertyName": "items",
                "name": "SxDemand",
                "values": {
                    "itemType": Terrasoft.ViewItemType.DETAIL
                }
            },

В результате получаю ошибку : cannot use method apply of undefined.
Метод аpply при поимке исключения применяется к методу модели. Метод в данном случае undefined. Вероятно это связано с тем что логика деталей у BaseSection не описана. Было бы здорово если бы был миксин с свойствами и методами(и месседжами) BasePage которые касаются деталей. Либо мне необходимо вручную добавить на <мой>Section эти методы. Хочу узнать возможно ли это вообще, либо стоит искать другое решение.

Добрый день, Дмитрий.

В текущей реализации платформы лучшим вариантом будет поместить страницу редактирования в раздел, а уже на страницу - деталь.

Дело в том, что деталь очень сильно зависит от карточки, напрямую с разделом деталь работать не будет.

Добрый день, Андрей.

Спасибо за совет. Попробую.

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