Вопрос

Условное заполнение виртуальных полей в преднастроенной странице

Добрый день.
Прошу помочь в решении следующей задачи.
Есть преднастроенная страница, в которой необходимо реализовать заполнение виртуального поля по условию.
При выполнении скрипта, указанного в dependencies, атрибут "OwnersString" заполняется , но в поле карточки значение не отображается.

Предоставляю упрощённый пример моего кода:

define("SxAssignmentPreconfiguredPageV2", ["CustomProcessPageV2Utilities"],
    function() {
        return {
            messages: {},
            mixins: {
                BaseProcessViewModel: "Terrasoft.CustomProcessPageV2Utilities"
            },
            attributes: {
                "IsAssignment": {
                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                    dataValueType: Terrasoft.DataValueType.BOOLEAN,
                    caption: { bindTo: "Resources.Strings.IsAssignmentCaption" }
                },
               "OwnersString": {
                   type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                   dataValueType: Terrasoft.DataValueType.String,
                   dependencies: [{
                       columns: ["IsAssignment"],
                       methodName: "onIsAssignmentChanged"
                   }]
               }

            },
            methods: {
                onIsAssignmentChanged: function(){
                    debugger;
                  if(this.get("IsAssignment"))
                      this.set("OwnersString", "Поле заполнено");
                },
                                        /**
                                 * @overridden
                                 * @returns {string}
                                 */
                                getHeader: function() {
                                        return "PreconfiguredPageV2";
                                },
                                /**
                                 * @overridden
                                 */
                                onEntityInitialized: function() {
                                        this.callParent();
                                },
                                /**
                                 * @overridden
                                 */
                                initHeaderCaption: Ext.emptyFn,
                                /**
                                 * @protected
                                 * @overridden
                                 */
                                initPrintButtonMenu: Ext.emptyFn,
                                /**
                                 * @overridden
                                 * @param {Object} args Параметры
                                 * @param {Object} tag Тег
                                 */
                                loadVocabulary: function(args, tag) {
                                        args.schemaName = this.model.attributes[tag].referenceSchemaName;
                                        this.callParent(arguments);
                                },
                                /**
                                 * @overridden
                                 */
                                onCloseCardButtonClick: function() {
                                        this.sandbox.publish("BackHistoryState");
                                },
                                /**
                                 * @protected
                                 */
                                onNextButtonClick: function() {
                                        this.acceptProcessElement("NextButton");
                                }
            },
            diff:[
                {
                    "operation": "remove",
                    "name": "CloseButton"
                },
                {
                    "operation": "remove",
                    "name": "actions"
                },
                {
                    "operation": "remove",
                    "name": "SaveButton"
                },
                {
                    "operation": "remove",
                    "name": "DelayExecutionButton"
                },
                {
                    "operation": "remove",
                    "name": "ViewOptionsButton"
                },
                {
                    "operation": "insert",
                    "parentName": "Header",
                    "propertyName": "items",
                    "name": "HeaderLabel",
                    "values": {
                        layout: {column: 0, row: 0, colSpan: 12},
                        "itemType": Terrasoft.ViewItemType.LABEL,
                        "caption": { "bindTo": "Resources.Strings.HeaderLabelCaption" },
                        "labelClass": ["new-record-header-caption-label"]

                        /*"classes": {
                            "labelClass": [
                                "t-label "
                            ],
                            "wrapClass": [
                                "label-wrap"
                            ]
                        }*/

                    }
                },
                {
                    // Метаданные для добавления кнопки [Следующий]
                    "operation": "insert",
                    "parentName": "LeftContainer",
                    "propertyName": "items",
                    "name": "NextButton",
                    "values": {
                        caption: {bindTo: "Resources.Strings.NextButtonCaption"},
                        itemType: Terrasoft.ViewItemType.BUTTON,
                        classes: {textClass: "actions-button-margin-right"},
                        style: Terrasoft.controls.ButtonEnums.style.GREEN,
                        click: {bindTo: "onNextButtonClick"}
                    }
                },
                {
                    "operation": "insert",
                    "name": "IsAssignment",
                    "parentName": "Header",
                    "propertyName": "items",
                    "values":{
                        bindTo: "IsAssignment",
                        caption : {bindTo: "Resources.Strings.IsAssignmentCaption"},
                        layout: {column: 0, row: 1, colSpan: 6}
                    },
                    "index": 0
                },
                {
                    "operation": "insert",
                    "name": "OwnersString",
                    "parentName": "Header",
                    "propertyName": "items",
                    "values":{
                        bindTo: "OwnersString",
                        caption :  {
                            "bindTo": "Resources.Strings.OwnersStringCaption"
                        },
                        layout: {column: 0, row: 2, colSpan: 6},
                        "contentType": 0,
                        "controlConfig": {
                            "className": "Terrasoft.TextEdit"
                        }
                    }
                }


            ]
        };
    });

Заранее спасибо.

У меня такой же вопрос

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

Ошибка в типе атрибута, у системного перечисления DataValueType нет значения "String", но есть значение TEXT.

Спасибо, помогло.

Войдите или зарегистрируйтесь, чтобы комментировать