Компонент среды разработки FlashBox может работать с Flash-компонентом диаграмма Гантта, ориентированным на веб-приложения. Для обеспечения взаимосвязи диаграммы и других объектов прикладной системы необходимо получать идентификатор текущего процесса. Сделать это возможно двумя способами:
обрабатывая команды события FlashBox.OnFSCommand или выполнив метод «CallFunction» для объекта, помещенного в контейнер FlashBox.
Ниже приведены примеры, позволяющие получить xml-строку, содержащую идентификатор и наименование процесса, выделенного в диаграмме Гантта. Для их выполнения требуется форма, расположенный на ней компонент FlashBox с идентификатором «FlashBox1» и кнопка с идентификатором «Button1». В «FlashBox1» должна быть загружена диаграмма Гантта.
Событие FlashBox.OnFSCommand происходит во время получения команды Flash-объектом. Xml-строку, содержащую идентификатор и наименование процесса, возвращает аргумент команды «onProcessSelect».
Sub FlashBox1OnFSCommand(Sender: Object; Args: IFlashBoxCommandEventArgs);
Begin
If Args.Command = "onProcessSelect" Then
Debug.WriteLine(Args.Args);
End If;
End Sub FlashBox1OnFSCommand;
Если при работе с запущенной формой на диаграмме Гантта будет выделен процесс, то в окно консоли будет выведена xml-строка, содержащая его идентификатор и наименование.
Получить xml-строку, содержащую идентификатор и наименование процесса, выделенного в диаграмме Гантта, можно выполнив метод «CallFunction» для объекта, помещенного в контейнер FlashBox. Для этого используйте метод Invoke, необходимые параметры которого указаны в примере:
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
FlashObj: Variant;
Xml: String;
Begin
FlashObj := FlashBox1.OleObject;
Xml := FlashObj.Invoke("CallFunction", "<invoke name=""getSelectedProcess"" returntype=""xml""><arguments></arguments></invoke>");
Debug.WriteLine(Xml);
End Sub Button1OnClick;
Пример будет выполняться при нажатии на кнопку. Если на диаграмме Гантта будет выделен процесс, то в окно консоли будет выведена xml-строка, содержащая его идентификатор и наименование. Если на диаграмме не будет выделен процесс, то в окно консоли будет выведена строка «<undefined/>».
См. также: