找到一个地方,看是否可以这么修改下
业务模型\系统空间\用户界面基础\界面库\系统接口\流转窗体
procedure TFLOWOUTFORM.RefreshFlowTaskNodes;
var
I: Integer;
lFlowTask: TFlowTask;
lNode: TFlowTaskNode;
begin
for I := 0 to FlowTaskGraph.NodeCount - 1 do
begin
lNode := TFlowTaskNode(FlowTaskGraph.Nodes[I]);
if lNode.ProcUnit.Kind in Flow.SProcActivityKinds then
begin
//下面这句话导致的,他从FlowTasks中去找任务,而FlowTasks只有一个,所以默认选中一个环节,FAllowFlowTasks中去找任务就能找到,因为他是多个。
//lFlowTask := FlowTasks.FindFlowTask(lNode.ProcUnit, True);
lFlowTask := FAllowFlowTasks.FindFlowTask(lNode.ProcUnit, True);
lNode.Selected := (lFlowTask <> nil) and (lFlowTask.Executors.Count > 0);
end
else
lNode.Selected := False;
end;
end;
另外,13楼的修改方法需要改变一下
业务模型\系统空间\用户界面基础\界面库\系统接口\流转窗体
procedure TFLOWOUTFORM.RefreshFlowTaskNodes;
var
I: Integer;
lFlowTask: TFlowTask;
lNode: TFlowTaskNode;
begin
for I := 0 to FlowTaskGraph.NodeCount - 1 do
begin
lNode := TFlowTaskNode(FlowTaskGraph.Nodes[I]);
if lNode.ProcUnit.Kind in Flow.SProcActivityKinds then
begin
//下面这句话导致的,他从FlowTasks中去找任务,而FlowTasks只有一个,所以默认选中一个环节,FAllowFlowTasks中去找任务就能找到,因为他是多个。
//lFlowTask := FlowTasks.FindFlowTask(lNode.ProcUnit, True);
[B]lFlowTask := GetFlowTask(lNode.ProcUnit);[/B]
lNode.Selected := (lFlowTask <> nil) and (lFlowTask.Executors.Count > 0);
end
else
lNode.Selected := False;
end;
end;