tswiki
SDK
Support
Q&A

Функция "Показать на карте" в пользовательском разделе

Вопрос

Отображать на карте не стандартный раздел "Щиты". Версия 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); },

 

Нравится

Поделиться

0 комментариев
Показать все комментарии