代码调用功能有两种方法,这两种方法功能层定义的策略等都可以起作用,后一种RunFunc的方法,还会进一步检查当前操作者是否有运行被调用功能的权限。
1、通过业务功能代理FuncBroker运行某一个功能,代码如下:
{ 指定要运行功能的URL }
FuncBroker.BizClassRef.BizURL.URL := 'Biz:\GYSYWKJ\KBYWGN.Func';
{ Run功能 }
FuncBroker.Func.Run('');
{ 指明功能主窗体的父容器,即在哪里运行功能 }
FuncBroker.Func.MainForm.Parent := PageControl1.ActivePage;
{ 将窗体SHOW出来}
FuncBroker.Func.MainForm.Show;
例如:
procedure TMainForm.Button1Click(Sender: TObject);
var
lBizClassURL:TBizClassURL;
lFunc:TFunc;
begin
lBizClassURL:=TBizClassURL.Create;
try lBizClassURL.BizURL.URL:='Biz:\SPCZFERPXT\FUNC\ZJGZXMMC.Func';
lFunc:=Context.GetBizObject(lBizClassURL) as TFunc;
lFunc.Run('');
lFunc.MainForm.Show;
finally
lBizClassURL.Free;
end;
end;
2、调用系统空间\系统运行库\系统核心库中提供的RunFunc方法,(通过RunFunc,需要在组织机构中给当前调用的这个操作者分配调用的功能)RunFunc 是一个overload的方法,有三种调用方式,原型分别如下:
2.1、function RunFunc(AContext: TContext; const AUniqueID, AFuncURL,
AParams: string): TFunc; overload;
2.2、function RunFunc(AFuncItem: TOperatorFuncItem; const AParams:
string): TFunc; overload;
2.3、function RunFunc(const AFuncURL, AParams: string): TFunc; overload;
一般使用最后一种方式调用,代码如下:
SystemCore.TSystemCore.FuncManager.RunFunc('Biz:\GYSYWKJ\KBYWGN.Func', ''); |