运行功能一般是调用系统核心库的RunFunc函数
例如,在A功能要运行B功能
1 在Studio中打开A功能,在项目管理中引入 系统空间\系统运行库\系统核心库
2 在代码中,用B功能的BizURL作为参数调用RunFunc函数,SystemCore.TSystemCore.FuncManager.RunFunc(Context, '', 'Biz:\LZ\B.Func', '', nil, False);
函数说明:
function RunFunc(AContext: TContext; const AUniqueID, AFuncURL, AParams: string; BeforeRunFunc: TFuncNotifyEvent; Modal: Boolean): TFunc; overload;
procedure RunFunc(AContext: TContext; const AUniqueID, AFuncURL, AParams: string; UseUI: Boolean; BeforeRunFunc: TFuncNotifyEvent; Modal: Boolean); overload;
AContext 为被运行功能的环境
AUniqueID 功能的唯一ID,首先按照这个参数在内存中找,如果找到了,就直接返回这个功能,如果找不到,则创建一个新的功能
每一个运行起来的功能,如果没有指定这个参数,那么就会按照下面的规则生成一个唯一ID
AFuncURL + '||' + AParams + '||' + ADeptID + '||' + APositionID + '||' + APersonID
功能URL + '||' + 运行功能时传递的参数 + '||' + 功能环境的部门ID + '||' + 功能环境的岗位ID + '||' + 功能环境的人员ID
AFuncURL 被运行功能的BizURL
AParams 传递给被运行功能的参数,可以用Func.Parameters得到
BeforeRunFunc 在功能运行前,先执行这个事件,一般传递nil
Modal 是否模态运行,如果True,这个功能窗体就ShowModal,关闭这个功能前,不能操作其他的窗体了 |