Вопрос

Создание детали с редактируемым (конфигурационным) реестром

Для того, чтобы сделать реестр детали редактируемым, в соответствующей схеме необходимо:

- Добавить зависимости от модулей ConfigurationGrid (Конфигурационный реестр), ConfigurationGridGenerator, ConfigurationGridUtilities;

- Подключить "миксин" ConfigurationGridUtilites;

- Установить атрибут IsEditable в значение true;

- Базовому реестру указать свойства:

className: "Terrasoft.ConfigurationGrid",

generator: "ConfigurationGridGenerator.generatePartial",

generateControlsConfig: {bindTo: "generateActiveRowControlsConfig"},

changeRow: {bindTo: "changeRow"},

unSelectRow: {bindTo: "unSelectRow"},

onGridClick: {bindTo: "onGridClick"},

initActiveRowKeyMap: {bindTo: "initActiveRowKeyMap"},

для добавления действий активной записи добавить:

activeRowActions: [...],

activeRowAction: {bindTo: "onActiveRowAction"}

Зависимости нужно указать не только параметром requirejs но и в настройках схемы, в конфигураторе.

Итоговый код простейшей редактируемой детали будет выглядеть следующим образом:

 

define("UsrSchema1Detail", ["ConfigurationGrid", "ConfigurationGridGenerator",
   "ConfigurationGridUtilities"], function() {
   return {
      entitySchemaName: "Contact",
      attributes: {
         "IsEditable": {
            dataValueType: Terrasoft.DataValueType.BOOLEAN,
            type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
            value: true
         }
      },
      details: {},
      diff: [
         {
            "operation": "merge",
            "name": "DataGrid",
            "values": {
               "className": "Terrasoft.ConfigurationGrid",
               "generator": "ConfigurationGridGenerator.generatePartial",
               "generateControlsConfig": {"bindTo": "generatActiveRowControlsConfig"},
               "changeRow": {"bindTo": "changeRow"},
               "unSelectRow": {"bindTo": "unSelectRow"},
               "onGridClick": {"bindTo": "onGridClick"},
               "activeRowActions": [
                  {
                     "className": "Terrasoft.Button",
                     "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                     "tag": "save",
                     "markerValue": "save",
                     "imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
                  },
                  {
                     "className": "Terrasoft.Button",
                     "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                     "tag": "cancel",
                     "markerValue": "cancel",
                     "imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
                  },
                  {
                     "className": "Terrasoft.Button",
                     "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                     "tag": "remove",
                     "markerValue": "remove",
                     "imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
                  }
               ],
               "initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
               "activeRowAction": {"bindTo": "onActiveRowAction"},
               "multiSelect": false
            }
         }
      ],
      mixins: {
         ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities"
      },
      methods: {}
   };
});

 

Нравится

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

Если схема с таким кодом уже есть, и она заблокирована. Изменять её нельзя. Как отключить редактируемый реестр?

Если схема с таким кодом заблокирована. Как её переопределить, чтобы отключить редактируемый реестр? 

Атрибут со значением false не помогает

Безуглый Кирилл Александрович,

 

Попробовал: никак этого сделать нельзя. Нужно создавать новую деталь без редактируемого реестра на основании этого же объекта и добавлять ее на страницу.

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