Вопрос
Отображать на карте не стандартный раздел "Щиты". Версия 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: "" + item.get("Name") + "
" + address.join(", ") + "",
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);
},
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать