procedure TMAINFORMCHILD.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
lFlowTask:TFlowTask;
lOrgURL: TOrgURL;
Query1:TQuery;
ADept,ARole,APerson,AManager,AManaDept,AManaRole,Aleader,ALeadDept,ALeadRole,ADCPer,ADCRole,ADCDept:String;
FGLZ, SYBM, SYBMRole, SYBMDept : String; //管理者、使用部门人员、使用部门岗位、使用部门
FCGType, FIsTender,FProGroup : Integer; //采购合同类型、是否招标、是否成立项目组
FName,FRole,FDept :String;
begin
Inherited;
if SysUtils.SameText(FuncBroker.Func.ID,'HTPSBTZFUNC') then
begin
FGLZ := dsb_Contract.DataSet.FieldByName('FGLZ').AsString;
SYBM := dsb_Contract.DataSet.FieldByName('FDept').AsString;
FCGType := dsb_Contract.DataSet.FieldByName('FCGType').AsInteger;
FIsTender := dsb_Contract.DataSet.FieldByName('FIsTender').AsInteger;
FProGroup := dsb_Contract.DataSet.FieldByName('FProGroup').AsInteger;
try
Query1:=TQuery.Create(nil);
Query1.ConnectionString:=SysUtils.Format('DATABASEURL=%s', [DatabaseURL]);
Query1.CommandText:='Select * from GLZSSGXB where FName='''+ PersonID+'''';
Query1.Open;
if Query1.RecordCount>0 then
begin
//APerson := Query1.FieldByName('FDeptLeader').AsString; //本部门分管领导
//ARole := Query1.FieldByName('BBMFGLDGW').AsString; //本部门分管领导岗位
//ADept := Query1.FieldByName('BBMFGLDBM').AsString; //本部门分管领导部门
AManager := Query1.FieldByName('FDeptManager').AsString; //本部门管理者
AManaDept := Query1.FieldByName('BMGLZBM').AsString; //部门管理者部门
AManaRole := Query1.FieldByName('BMGLZGW').AsString; //部门管理者岗位
//ALeader := Query1.FieldByName('FZZGLZ').AsString; //组织结构管理者
//ALeadDept := Query1.FieldByName('ZZGLZBM').AsString; //组织管理者部门
//ALeadRole := Query1.FieldByName('ZZGLZGW').AsString; //组织管理者岗位
//ADCPer := Query1.FieldByName('FGSDCRY').AsString; //分公司督查人员
//ADCRole := Query1.FieldByName('FGSDCRYGW').AsString; //分公司督查人员岗位
//ADCDept := Query1.FieldByName('FGSDCRYBM').AsString; //分公司督查人员部门
end;
finally
Query1.Free;
end;
if PersonID = FGLZ then
begin
lFlowTask := Command.FlowTasks.FindFlowTask('BMHQ');
if lFlowTask <> nil then
begin
lFlowTask.Executors.Clear;
if SYBM <> '' then
begin
try
Query1:=TQuery.Create(nil);
Query1.ConnectionString:=SysUtils.Format('DATABASEURL=%s', [DatabaseURL]);
Query1.CommandText:='Select * from CGXMCSB where FCS='''+ SYBM+'''';
Query1.Open;
if Query1.RecordCount >0 then
begin
SYBMRole := Query1.FieldByName('FRole').AsString;
SYBMDept := Query1.FieldByName('FDept').AsString;
end;
finally
Query1.Free;
end;
lOrgURL := TOrgURL.Create(SYBM, SYBMRole, SYBMDept);
lFlowTask.Executors.Add(lOrgURL);
end;
if FCGType=1 then //普通采购
begin
if (FIsTender=0) and (FProGroup=1) then //非招标非项目组
begin
try
Query1:=TQuery.Create(nil);
Query1.ConnectionString:=SysUtils.Format('DATABASEURL=%s', [DatabaseURL]);
Query1.CommandText:='Select * from CGXMCSB where FCS=''PTFZBFXM''';
Query1.Open;
if Query1.RecordCount >0 then
begin
Query1.First;
while not Query1.Eof do
begin
FName := Query1.FieldByName('FName').AsString;
FRole := Query1.FieldByName('FRole').AsString;
FDept := Query1.FieldByName('FDept').AsString;
lOrgURL := TOrgURL.Create(FName, FRole, FDept);
lFlowTask.Executors.Add(lOrgURL);
Query1.Next;
end;
end;
finally
Query1.Free;
end;
end;
在Query1.Free时候报错! |