CreateArgs(Name: String; Args: String);
CreateArgs(Name: string; Args: string);
Name. Имя команды, вызванной из flash-ролика;
Args. Cтроковый аргумент команды, вызванной из flash-ролика.
Метод CreateArgs создает аргументы для передачи в указанный обработчик событий flash-ролика.
Swf-ролик, используемый flash-объектом, должен быть сформирован специальным образом с учетом работы через FsCommand.
Для выполнения примера создайте модуль с идентификатором «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-объект, который использует swf-ролик с поддержкой fscommand. Добавьте созданный модуль в модули отчета.
Создайте форму, добавьте кнопку с наименованиями «Button1» и компоненты ReportBox с наименованием «ReportBox» и UiReport с наименованием «UiReport1». Опишите события OnClick для «Button1» и OnCreate для формы. Подключите системные сборки: Forms, Metabase, Report, Tab, Ui.
Class TestForm: Form
UiReport1: UiReport;
ReportBox1: ReportBox;
Button1: Button;
m_Rep: IPrxReport;
m_Fl: IPrxFlash;
Sub TestFormOnCreate(Sender: Object; Args: IEventArgs);
Begin
m_Rep := MetabaseClass.Active.ItemById("Report").Edit As IPrxReport;
UiReport1.Instance := m_Rep;
m_fl := (m_Rep.ActiveSheet As IPRxTable).TabSheet.Objects.Item(0).Extension As IPrxFlash;
m_fl.FSCommandAction := "Module.Message";
End Sub TestFormOnCreate;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
a: IPrxFlashFSCommandEventArgs;
Begin
a := New PrxFlashFSCommandEventArgs.Create;
a.CreateArgs("New FS", "New FS Arguments");
m_fl.DoFSCommandAction(a);
End Sub Button1OnClick;
End Class TestForm;
При нажатии кнопки будет выдано сообщение с названием сгенерированной команды и со значением её аргументов.
Для выполнения примера создайте модуль и регламентный отчет, как написано в предыдущем примере. Обработчик события на Fore.NET не поддерживается, так как описание пользовательских макросов в .NET-модулях/.NET-формах производится в каком-либо классе.
Создайте .NET- форму, расположите на ней кнопку с наименованием "Button1", компонент ReportBoxNet и компонент UiReportNet с наименованием «UiReportNet1», являющегося источником данных для ReportBoxNet. Опишите события Click для «Button1» и Activated для формы. Подключите системные сборки: Forms.Net, Metabase, Report, Tab.
Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
a: PrxFlashFSCommandEventArgs;
Begin
a := New PrxFlashFSCommandEventArgs.Create();
a.CreateArgs("OnClick New FS", "New FS Arguments");
m_fl.DoFSCommandAction(a);
End Sub;
Private Sub OBJ65120Form_Activated(sender: System.Object; e: System.EventArgs);
Begin
m_Rep := Self.Metabase.ItemById["Report"].Edit() As IPrxReport;
uiReportNet1.ReportUi.Report := m_Rep;
m_fl := (m_Rep.ActiveSheet As IPRxTable).TabSheet.Objects.Item[0].Extension As IPrxFlash;
m_fl.FSCommandAction := "Module.Message";
End Sub;
При нажатии кнопки будет выдано сообщение с названием сгенерированной команды и со значениями её аргументов.
См. также: