Вопрос
Условное заполнение виртуальных полей в преднастроенной странице
1 декабря 2015 10:28
Добрый день.
Прошу помочь в решении следующей задачи.
Есть преднастроенная страница, в которой необходимо реализовать заполнение виртуального поля по условию.
При выполнении скрипта, указанного в 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"
}
}
}
]
};
});
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 комментария
2 декабря 2015 13:54
Ошибка в типе атрибута, у системного перечисления DataValueType нет значения "String", но есть значение TEXT.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать