在尚工的远程协助下问题解决了,代码如下,非常感谢!
procedure TMainForm.Button1Click(Sender: TObject);
var
i: Integer;
lTask: TTask;
lTasks: TList;
begin
//流转的任务列表
lTasks := TList.Create;
try
for i:= FlowBroker1.FlowControl.TaskCount-1 downto 0 do
begin
lTask := FlowBroker1.FlowControl.TaskByIndex;
lTasks.Clear;
lTasks.Add(lTask);
DataSetBrokerbmxmhz.DataSet.Locate('XMBS', ObjectHelper.ToString(lTask.BizDatas[0].BizDataKeys[0].Value), []);
DataSetBrokeryj.DataSet.Locate('XMBS', ObjectHelper.ToString(lTask.BizDatas[0].BizDataKeys[0].Value), []);
FlowBroker1.FlowControl.FlowOut(lTasks);
end;
finally
lTasks.Free;
end;
end;
var
//true 表示正在流转任务
//False 表示从主界面上点流转按钮进入的
taskrunning: Boolean;
procedure TMainForm.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
begin
if not taskrunning then
begin
//从主界面上点流转按钮进入的
//保证下面流转时候是被接收的流转
taskrunning := True;
Button1.Click;
//放弃从主界面上点流转按钮的动作
taskrunning := False;
Command.Accept := False;
end;
end; |