学三楼做了。。。
找出21条 SELECT * FROM TFLOWID WHERE FID = '24' 也弹出21个不同的流程图
是不是过滤不够啊。。。
uses
Business.System, Business.Model, Business.Forms, Business.Data,
Business.Model.Flow, Business.Model.Org,SystemCore ;
//查询流程ID表,根据流程ID,查询出对应的FlowGuid值
procedure TMainForm.DoGetFlowGUIDs(const AFlowID: string; AFlowGUIDs: TStrings);
var
Query : tQuery ;
begin
Query := tQuery.Create(nil) ;
Query.ConnectionString := 'DATABASEURL=Biz:\SYSTEM\SYSTEM.DATABASE';
Query.CommandText := 'SELECT FFLOWGUID FROM TFLOWID WHERE FID = '+ ''''+AFlowID+'''' ;
Query.Open;
while not Query.Eof do
begin
AFlowGUIDs.Add(Query.FieldByName('FFLOWGUID').AsString);
Query.Next;
end;
Query.Close;
end;
procedure TMainForm.DataGridSwichForms(ColumnName : string); // TGLLRCT为本窗体
var
ColumnList : TStringList ;
lDetailForm : TXXXXCKCT;
begin
ColumnList := TStringList.Create;
ColumnList.Add('详细信息'); //""内的内容为表达式字段的名称
case ColumnList.IndexOf(ColumnName) of
0:
begin
lDetailForm := TXXXXCKCT.Create(Context);
try
lDetailForm.Showmodal;
finally
lDetailForm.Free;
end;
end;
end;
end;
procedure TMainForm.BitBtn2Click(Sender: TObject);
var
lTaskParam: TLoadTaskParam;
lFlowParam: TLoadFlowParam;
lTasks: TTasks;
lFlows: TObjectList;
i: Integer;
lDataSet : TDataSet;
begin
lDataSet := DataSetBroker.DataSet;
if not lDataSet.Active or lDataSet.Eof then
Exit;
lFlowParam := TLoadFlowParam.Create;
lFlows := TObjectList.Create;
try
//根据ProductID,找到对应的流程Guid值
DoGetFlowGUIDs(lDataSet.FieldByName('Inst_ID').AsString, lFlowParam.GUIDs);
//以给定的条件查询流程实例(这里给定的条件由lFlowParam给出,根据流程Guid值查询)
Flow.FlowEngine.GetFlows(lFlowParam, lFlows);
Dialogs.Showmessage(SysUtils.IntToStr(lFlows.Count));
for i:=0 to lFlows.Count-1 do
SystemCore.TSystemCore.SystemInterface.ShowFlowView(lFlows as TFlow);
finally
lFlowParam.Free;
lFlows.Free;
end;
end; |