Нужно в редактируванном реестре заблокировать некоторые колонки для редактирования, нигде не нашел ничего подобно, такое вообще возможно?
Нравится
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);
}
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать