Работа с формами и сборками репозитория продукта «Форсайт. Аналитическая платформа»

Fore-формы и Fore.NET-формы/сборки, созданные в репозитории, можно запустить из разрабатываемого кода. Для этого в проекте должны быть добавлены ссылки на следующие сборки:

Сборки, необходимые для запуска всех форм/сборок:

Для запуска Fore.NET-сборок:

Для запуска Fore.NET-форм отдельно от Fore.NET-сборок также потребуются следующие сборки:

Перед запуском форм в коде необходимо выполнить следующие методы:

Данные методы необходимо выполнить единожды перед первым запуском какой-либо формы:

IUiWinApplication WinAppCls = new UiWinApplicationClass();

WinAppCls.CheckAfxState();

ForeNetFormVS.SetActiveMetabase(Mb);

По завершению всей работы также рекомендуется обнулить ссылку на репозиторий для принудительного освобождения ресурсов, используемых для хранения соединения с репозиторием:

ForeNetFormVS.SetActiveMetabase(Null);

Запуск Fore-форм

Для запуска Fore-формы необходимо для соответствующего объекта репозитория выполнить метод Open либо OpenWithParam:

IMetabaseObjectDescriptor ForeForm = Mb.ItemById["TestForm"];

ForeForm.Open(ForeForm.Params.CreateEmptyValues());

Запуск Fore.NET-сборок

Для запуска Fore.NET-сбороки необходимо для соответствующего объекта репозитория выполнить метод Run:

IMetabaseObjectDescriptor MObj = Mb.ItemById["TestAssm"];

((IForeNETAssembly)MObj.Bind()).Run();

Запуск Fore.NET-форм

Для запуска Fore.NET-формы необходимо для соответствующего объекта репозитория выполнить метод Show либо ShowDialog:

IForeServices Svc = (IForeServices)Mb;

IForeRuntime ForeRun = Svc.GetRuntime();

IForeNETAssemblyClass RuntimeClass = new ForeNETAssemblyClassClass();

IForeNETRuntime Run = RuntimeClass.Runtime;

IForeNETRuntimeAssembly Asm = Run.Assembly[(Mb.ItemById["TestAssm"].Bind() as IForeNETAssembly), ForeRun.Context];

IForeNETRuntimeForm RuntimeForm = Asm.Form["TestAssm.MAINForm"];

RuntimeForm.Show();

См. также:

Использование ресурсов продукта «Форсайт. Аналитическая платформа» в сторонних приложениях