Здравствуйте!
Есть вот такое мультилукапное поле
"BsoDeliveryAddress": {
"caption": "Адрес доставки",
"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
"multiLookupColumns": ["BsoDeliveryAddressContact", "BsoDeliveryAddressAccount"]
},В зависимости от разных условий состав multiLookupColumns должен меняться.
Подскажите как это можно сделать при инициализации и непосредственно в коде в каком нибудь методе?
Нравится
Добрый день,
На схему страницы редактирования, где было добавлено мультилукап, нужно добавить метод getMultiLookupPageConfig и переопределить его:
getMultiLookupPageConfig: function(args, columnName) {
var multiLookupColumns = ["PrimaryContact", "Country"];
var multiLookupConfig = multiLookupColumns.map(function(column) {
var config = this.getLookupPageConfig(args, column);
Ext.apply(config, {
columnName: columnName,
columnValue: this.get(columnName),
multiLookupColumnName: column
});
var lookupDefValues = this.getLookupValuePairs(column);
if (lookupDefValues) {
var valuePairs = config.valuePairs || [];
config.valuePairs = this.Ext.Array.merge(valuePairs, lookupDefValues);
}
return config;
}, this);
return {
lookupPageName: "MultiLookupModule",
multiLookupConfig: multiLookupConfig
};
}В примере выше независимо от того, что будет указано в multiLookupColumns, открываться будет мультилукап по колонкам ["PrimaryContact", "Country"]. Сюда нужно еще будет добавить проверку на columnName, потому что на странице может быть несколько мультилукапных полей, и условия присвоения значения параметру multiLookupColumns внутри метода (мы остаемся в контексте страницы, где лукап выведен, поэтому можно делать проверку по значениям на странице). Метод вызывается каждый раз, когда открывается модальное окно для выбора значения в справочнике.
Добрый день,
На схему страницы редактирования, где было добавлено мультилукап, нужно добавить метод getMultiLookupPageConfig и переопределить его:
getMultiLookupPageConfig: function(args, columnName) {
var multiLookupColumns = ["PrimaryContact", "Country"];
var multiLookupConfig = multiLookupColumns.map(function(column) {
var config = this.getLookupPageConfig(args, column);
Ext.apply(config, {
columnName: columnName,
columnValue: this.get(columnName),
multiLookupColumnName: column
});
var lookupDefValues = this.getLookupValuePairs(column);
if (lookupDefValues) {
var valuePairs = config.valuePairs || [];
config.valuePairs = this.Ext.Array.merge(valuePairs, lookupDefValues);
}
return config;
}, this);
return {
lookupPageName: "MultiLookupModule",
multiLookupConfig: multiLookupConfig
};
}В примере выше независимо от того, что будет указано в multiLookupColumns, открываться будет мультилукап по колонкам ["PrimaryContact", "Country"]. Сюда нужно еще будет добавить проверку на columnName, потому что на странице может быть несколько мультилукапных полей, и условия присвоения значения параметру multiLookupColumns внутри метода (мы остаемся в контексте страницы, где лукап выведен, поэтому можно делать проверку по значениям на странице). Метод вызывается каждый раз, когда открывается модальное окно для выбора значения в справочнике.