|
流程入口环节,录入完数据后,在流程的CreateFlowOutFlowTasks事件中通过代码指定下一环节的执行者,会有这样的情况,数据保存后不流转,在待办任务中打开任务,不做任何操作,点流转按钮,
lFlowTask := Command.FlowTasks.FindFlowTask('COMPROJECTFUNC1'); lFlowTask对象是空的,弹出流转对话框后,取消,重新流转,lFlowTask对象就有值了,代码如下:
procedure TMainForm.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
lFlowTask:TFlowTask;
lOrgURL: TOrgURL;
Range:String;
begin
TPublicFuncLib.TakeUpperLevelagent(context,dsbMain.DataSet.FieldByName('DLSBH').asString,
dsbEquipment.DataSet.FieldByName('CPBM').asString,Fsjtype,Fsjbm,Fsflzgsj);//判断流转给哪个执行者;
if Fsflzgsj = '是' then
begin
lFlowTask := Command.FlowTasks.FindFlowTask('COMPROJECTFUNC1');
if lFlowTask <> nil then
begin
if Fsjtype = '代理商' then
Range:= 'OrgChildren(OrgKey('''+Fsjbm+''', ''DLSXYJL'', ''''), '''', False, False)'
else
Range:= 'OrgChildren(OrgKey('''+Fsjbm+''', ''DBGSXZ'', ''''), '''', False, False)';
lFlowTask.ExecutorRange:=Range; //执行组织机构表达式
end;
end
else
begin
lFlowTask := Command.FlowTasks.FindFlowTask('COMPROJECTFUNC2');
if lFlowTask <> nil then
begin
Range:= 'OrgChildren(OrgKey('''+dsbMain.DataSet.FieldByName('DLSBH').asString+''', '+
' ''DLSZJL'', ''''), '''', False, False)';
lFlowTask.ExecutorRange:=Range; //执行组织机构表达式
end;
end;
end; |
|