IPrxFlash.FSCommandAction

Синтаксис Fore

FSCommandAction: String;

Синтаксис Fore.NET

FSCommandAction: string;

Описание

Свойство FSCommandAction определяет обработчик событий FSCommand для flash-ролика.

Комментарии

Для использования обработчика swf-ролик, используемый flash-объектом, должен быть сформирован специальным образом с учетом работы через FsCommand. Можно использовать только предварительно определенные команды и параметры. Например, для FlashMapEngine.swf это события «onClick» и «onMouseOver».

В качестве обработчика не могут выступать макросы, реализованные в классах. В зависимости от того где находится реализация макроса, различается способ указания пути к макросу в данном свойстве:

В модулях/формах репозитория реализация пользовательских макросов должна производиться в глобальном пространстве имен (Global Scope).

Пример Fore

Для выполнения следующего примера создайте модуль с идентификатором «Module» (процедура «Message», подключите сборки «Ui», «Tab» и «Report»):

Public Sub Message(Flash: IPrxFlash; Args: IPrxFlashFSCommandEventArgs);
Begin
    WinApplication.InformationBox((Flash As ITabObject).Id + " : " + Args.Name + " = " + Args.Arguments);
End Sub Message;

Затем создайте регламентный отчет с идентификатором «Report» и добавьте созданный модуль в модули отчета. На листе отчета разместите flash-объект, который использует ролик FlashMapEngine.swf. Для flash-объекта задайте строку инициализации, в которой включена передача событий через onFsCommand (fscomand='1') и установлено значение «onClick='alert'». В следующем модуле подключите системные сборки: Metabase, Report, Tab.

Sub UserProc;
Var
    MB: IMetabase;
    Report: IPrxReport;
    Tab: ITabSheet;
    Flash: IPrxFlash;
Begin
    MB := MetabaseClass.Active;
    Report := MB.ItemById("Report").Edit As IPrxReport;
    Tab := (Report.Sheets.Item(0As IPrxTable).TabSheet;
    Flash := Tab.Objects.Item(0).Extension As IPrxFlash;
    Flash.FSCommandAction := "Module.Message";
    (Report As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера будет определен обработчик событий для flash-объекта. При щелчке по региону карты будет выдаваться информационное сообщение с идентификатором региона.

Пример Fore.NET

Создайте модуль с идентификатором «Module» (процедуры «Message»), приведенный в примере выше. Обработчик события на Fore.NET не поддерживается, так как описание пользовательских макросов в .NET-модулях/.NET-формах производится в каком-либо классе.

Затем создайте регламентный отчет с идентификатором «Report» и добавьте созданную сборку в модули отчета. На странице отчета разместите flash-объект, который использует ролик FlashMapEngine.swf. Для flash-объекта задайте строку инициализации, в которой включена передача событий через onFsCommand (fscomand='1') и установлено значение «onClick='alert'». Указанный пример является точкой входа для какой-либо .NET-сборки. В модуле подключите системные сборки: Metabase, Report, Tab.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Report: IPrxReport;
    Tab: ITabSheet;
    Flash: IPrxFlash;
Begin
    MB := Params.Metabase;
    Report := MB.ItemById["Report"].Edit() As IPrxReport;
    Tab := (Report.Sheets.Item[0As IPrxTable).TabSheet;
    Flash := Tab.Objects.Item[0].Extension As IPrxFlash;
    Flash.FSCommandAction := "Module.Message";
    (Report As IMetabaseObject).Save();
End Sub;

После выполнения примера будет определен обработчик событий для flash-объекта. При щелчке по региону карты будет выдаваться информационное сообщение с идентификатором региона.

См. также:

IPrxFlash