Публикация
Функция "Показать на карте" в пользовательском разделе
12 сентября 2018 04:13
Вопрос
Отображать на карте не стандартный раздел "Щиты". Версия 7.5.0.966
Ответ
Реализовывается данный вопрос по аналогии с его реализацией в разделе «Контрагенты».
Пример реализации:
/** * Действие "Показать на карте" */ openShowOnMap: function() { var items = this.getSelectedItems(); var select = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Account" }); select.addColumn("Id"); select.addColumn("Name"); select.addColumn("Address"); select.addColumn("City"); select.addColumn("Region"); select.addColumn("Country"); select.addColumn("GPSN"); select.addColumn("GPSE"); select.filters.add("AcountIdFilter", this.Terrasoft.createColumnInFilterWithParameters("Id", items)); select.getEntityCollection(function(result) { if (result.success) { var mapsConfig = { mapsData: [] }; result.collection.each(function(item) { var address = []; if (item.get("Country") && item.get("Country").displayValue) { address.push(item.get("Country").displayValue); } if (item.get("Region") && item.get("Region").displayValue) { address.push(item.get("Region").displayValue); } if (item.get("City") && item.get("City").displayValue) { address.push(item.get("City").displayValue); } address.push(item.get("Address")); var dataItem = { caption: item.get("Name"), content: "<h2>" + item.get("Name") + "</h2><div>" + address.join(", ") + "</div>", address: item.get("Address") ? address.join(", ") : null, gpsN: item.get("GPSN"), gpsE: item.get("GPSE"), updateCoordinatesConfig: { schemaName: "Account", id: item.get("Id") } }; mapsConfig.mapsData.push(dataItem); }); var mapsModuleSandboxId = this.sandbox.id + "_MapsModule" + this.Terrasoft.generateGUID(); this.sandbox.subscribe("GetMapsConfig", function() { return mapsConfig; [mapsModuleSandboxId]); this.sandbox.loadModule("MapsModule", { id: mapsModuleSandboxId, keepAlive: true }); } }, this); },
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать