if DataSetBroker.DataSet.RecordCount <> 0 then
begin
lQuery:= TQuery.Create(nil);
try
lQuery.ConnectionString := 'DATABASEURL=Biz:\SYSTEM\SYSTEM.DATABASE';
lQuery.CommandText := 'select FTASKGUID as FGUID from TTASKBIZDATA'
+ ' where FKEYVALUE0='''+ DataSetBroker.DataSet.FieldByName(GetKeyField).AsString +''''
+ ' and FKEY0='''+ SysUtils.UpperCase(FlowField) +'''';
lQuery.OPen;
if cTask = nil then
cTask:= TTask.Create;
if lQuery.RecordCount <> 0 then
begin
lQuery.First;
cTask.LoadFromDB(lQuery.FieldByName('FGUID').AsString);
while (not lQuery.Eof) and (cTask.NextGUID <> '-1') do
begin
cTask.LoadFromDB(lQuery.FieldByName('FGUID').AsString);
lQuery.Next;
end;
end
else
cTask:= nil;
// LoadTrack;
finally
lQuery.Free;
end;
end
else
begin
FlowPertView.Flow:= nil;
FlowGanttView.Flow:= nil;
FlowTrackView.Flow:= nil;
end;
1.1. 在流程环境里通过流程控件处理
if FlowBroker1.FlowControl.Flow <> nil then
begin
OAFLOWMONITORINFO.TFlowView(DocView1.Doc).Flow := FlowBroker1.FlowControl.Flow;
end;
这里的OAFLOWMONITORINFO 为流程监控信息,DocView1 为引用了流程轨迹的docview
2.不在流程环境里通过流程ID处理
procedure TWPCGSQFORM.Button4Click(Sender: TObject);
var
cFlow: TFlow;
cTask: TTask;
lQuery:TQuery;
begin
if FlowBroker1.FlowControl.Flow <> nil then
begin
cFlow := TFlow.Create;
lQuery:= TQuery.Create(nil);
try
lQuery.ConnectionString := 'DATABASEURL=Biz:\SYSTEM\SYSTEM.DATABASE';
lQuery.CommandText := 'select FTASKGUID as FGUID from TTASKBIZDATA'
+ ' where FKEYVALUE0='''+ dsbMaster.DataSet.FieldByName('Stock_ID').AsString +'''';
lQuery.OPen;
if cTask = nil then
cTask:= TTask.Create;
if lQuery.RecordCount <> 0 then
begin
lQuery.First;
cTask.LoadFromDB(lQuery.FieldByName('FGUID').AsString);
while (not lQuery.Eof) and (cTask.NextGUID <> '-1') do
begin
cTask.LoadFromDB(lQuery.FieldByName('FGUID').AsString);
lQuery.Next;
end;
Flow.FlowEngine.LoadFlow(cTask.FlowGUID, cFlow);
OAFLOWMONITORINFO.TFlowView(DocView1.Doc).Flow :=cFlow;
end
else
begin
cTask.Free;
cTask:= nil;
end;
finally
cFlow.Free;
lQuery.Free;
end;
end;
end;
17楼稍微有点问题
lQuery.CommandText := 'select FTASKGUID as FGUID from TTASKBIZDATA'
+ ' where FKEYVALUE0='''+ dsbMaster.DataSet.FieldByName('Stock_ID').AsString +'''';