| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | unit stgGclGatherControl;interfaceuses  Classes, stgGatherGclCacheData, stgGclGatherDm, stgGclResultFrm,  stgGclGather;type  TstgGclGatherControl = class  private    FProjects: TList;    FGatherGclCacheData: TstgGatherGclCacheData;    FGatherGclData: TstgGclGatherData;    FHintPosition: Integer;    procedure LoadHint(const ATenderName: string);    procedure GatherSubTenderFiles;    procedure SaveGatherResult;    procedure ShowGatherResult;  public    constructor Create;    destructor Destroy; override;    procedure Gather;    property Projects: TList read FProjects;  end;implementationuses  ProgressHintFrm, SysUtils;{ TstgGatherControl }constructor TstgGclGatherControl.Create;begin  FProjects := TList.Create;  FGatherGclCacheData := TstgGatherGclCacheData.Create;  FGatherGclData := TstgGclGatherData.Create(nil);end;destructor TstgGclGatherControl.Destroy;begin  FGatherGclData.Free;  FGatherGclCacheData.Free;  FProjects.Free;  inherited;end;procedure TstgGclGatherControl.Gather;begin  FHintPosition := 0;  ShowProgressHint('正在准备数据...', FProjects.Count + 1);  GatherSubTenderFiles;  FGatherGclCacheData.CalculateAll;  UpdateProgressHint('正在检查汇总结果...');  UpdateProgressPosition(FProjects.Count + 1);  SaveGatherResult;  CloseProgressHint;  ShowGatherResult;end;procedure TstgGclGatherControl.GatherSubTenderFiles;var  vGather: TstgSubTenderFileGatherGcl;begin  vGather := TstgSubTenderFileGatherGcl.Create;  try    vGather.LoadHint := LoadHint;    vGather.GatherTo(FGatherGclCacheData, FProjects);  finally    vGather.Free;  end;end;procedure TstgGclGatherControl.LoadHint(const ATenderName: string);begin  Inc(FHintPosition);  UpdateProgressHint(Format('正在汇总分包标段"%s"...', [ATenderName]));  UpdateProgressPosition(FHintPosition);end;procedure TstgGclGatherControl.SaveGatherResult;begin  FGatherGclData.LoadGatherData(FGatherGclCacheData);end;procedure TstgGclGatherControl.ShowGatherResult;var  Form: TstgGclResultForm;begin  Form := TstgGclResultForm.Create(nil);  try    Form.SetGatherData(FGatherGclData);    Form.ShowModal;  finally    Form.Free;  end;end;end.
 |