Вопрос

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

Для того, чтобы сделать реестр детали редактируемым, в соответствующей схеме необходимо:
- Добавить зависимости от модулей 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 не помогает

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

 

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

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