Построение отчёта для печати > Построение отчёта > С использованием табличного листа > Визуализация данных на листе отчёта > Визуализация данных в виде карт > Возможности карты в регламентном отчете > Настройка обработчика событий
Для настройки обработчика событий для карты используйте вкладку «Параметры» в диалоге «Свойства карты».
В поле «Обработчик события» укажите наименование макроса, который будет использоваться для обработки события при клике по территории карты. Способ указания пути к макросу завит от того, где находится реализация макроса:
если макрос реализован в модуле/форме репозитория: <идентификатор модуля/формы>.<наименование макроса>;
если макрос реализован в одном из объектов сборки репозитория: <идентификатор сборки>.<наименование макроса>;
если макрос реализован в одном из объектов .NET-сборки репозитория: <пространство имен .NET-сборки>.<наименование класса>.<наименование макроса>.
В модулях/формах репозитория реализация пользовательских макросов должна производиться в глобальном пространстве имен (Global Scope).
В .NET-модулях/.NET-формах репозитория реализация пользовательских макросов должна производиться в каком-либо классе. Макрос должен представлять из себя статическую процедуру/функцию.
Примечание. Объект среды разработки, в котором содержится реализация макроса, должен быть подключен к регламентному отчету.
Для подключения к карте макроса в окне «Навигатор объектов» создайте модуль:
Sub ModMapClick(TerrId: Variant; Map: IPrxMap);
Begin
WinApplication.InformationBox("Код территории = " + (TerrId As Integer).ToString);
End Sub ModMapClick;
Где TerrId - код территории; Map - сама карта.
Для выполнения примера добавьте ссылки на системные сборки: Report и Ui.
Аналогичный Fore.NET обработчик выглядит следующим образом:
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Forms.NET;
Imports Prognoz.Platform.Interop.Ui;
…
Public Shared Sub ModMapClick(TerrId: object; Map: IPrxMap);
Var
WinAppCls: WinApplicationClass = New WinApplicationClassClass();
Begin
WinAppCls.InformationBox("Код территории = " + (TerrId As integer).ToString(), Null);
End Sub ModMapClick;
Созданный модуль подключите к отчету. После подключения модуля укажите наименование макроса в поле «Обработчик события» на вкладке «Параметры» диалогового окна «Свойства карты».
После подключения макроса в случае обращения к территориальной единице на карте будет выдаваться сообщение, например:
См. также:
Обработка событий отчета | Модули: Модули отчета и обработка событий | Возможности карты в регламентном отчете