Нужно в редактируванном реестре заблокировать некоторые колонки для редактирования, нигде не нашел ничего подобно, такое вообще возможно?
Нравится
3 комментария
7 декабря 2017 07:45
1) с помощью бизнес правил. прописать их в странице редактирования карточки этой детали
2) там есть кусок, в котором формируется контрол. можно для определённых полей прописать enabled: false (прям в коде детали)
getDefaultCellControlsConfig: function(columnName, params) { var config = { itemType: Terrasoft.ViewItemType.MODEL_ITEM, name: columnName, labelConfig: {visible: false} }; if (columnName === "TmName") { config.enabled = false; } }
+можно попробовать в объекте сделать режим использования нужной колонки - никогда (в этом способе я не уверен)
7 декабря 2017 12:53
Добрый день! Попробуйте в модуле детали (который от BaseDetailV2 наследуется) определить isEditableColumn(columnName). Чтобы он заработал, в методе на детали generateActiveRowControlsConfig, в конфиге поля задать свойству enabled соответствие методу isEditableColumn
generateActiveRowControlsConfig: function(id, columnsConfig, rowConfig) { this.columnsConfig = columnsConfig; var gridLayoutItems = []; var currentColumnIndex = 0; this.Terrasoft.each(columnsConfig, function(columnConfig) { var columnName = columnConfig.key[0].name.bindTo; var column = this.getColumnByColumnName(columnName); var cellConfig = column ? this.getCellControlsConfig(column) : this.getNotFoundCellControlsConfig(columnName); cellConfig = this.Ext.apply({ layout: { colSpan: columnConfig.cols, column: currentColumnIndex, row: 0, rowSpan: 1 } }, cellConfig); cellConfig.enabled = this.isEditableColumn(columnName); if (!cellConfig.hasOwnProperty("isNotFound")) { gridLayoutItems.push(cellConfig); } currentColumnIndex += columnConfig.cols; }, this); var gridData = this.getGridData(); var activeRow = gridData.get(id); var rowClass = {prototype: activeRow}; BusinessRulesApplier.applyRules(rowClass, gridLayoutItems); var viewGenerator = this.Ext.create("Terrasoft.ViewGenerator"); viewGenerator.viewModelClass = this; var gridLayoutConfig = viewGenerator.generateGridLayout({ name: this.name, items: gridLayoutItems }); rowConfig.push(gridLayoutConfig); }
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать