Здравствуйте!
Есть вот такое мультилукапное поле
"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 внутри метода (мы остаемся в контексте страницы, где лукап выведен, поэтому можно делать проверку по значениям на странице). Метод вызывается каждый раз, когда открывается модальное окно для выбора значения в справочнике.