stgGatherControlGcl.pas 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. unit stgGatherControlGcl;
  2. interface
  3. uses
  4. Classes, stgGatherGclCacheData, stgGatherGclDm, stgGclResultFrm,
  5. stgGclGather;
  6. type
  7. TstgGatherControlGcl = class
  8. private
  9. FProjects: TList;
  10. FGatherGclCacheData: TstgGatherGclCacheData;
  11. FGatherGclData: TstgGatherGclData;
  12. FHintPosition: Integer;
  13. procedure LoadHint(const ATenderName: string);
  14. procedure GatherSubTenderFiles;
  15. procedure SaveGatherResult;
  16. procedure ShowGatherResult;
  17. public
  18. constructor Create;
  19. destructor Destroy; override;
  20. procedure Gather;
  21. property Projects: TList read FProjects;
  22. end;
  23. implementation
  24. uses
  25. ProgressHintFrm, SysUtils;
  26. { TstgGatherControl }
  27. constructor TstgGatherControlGcl.Create;
  28. begin
  29. FProjects := TList.Create;
  30. FGatherGclCacheData := TstgGatherGclCacheData.Create;
  31. FGatherGclData := TstgGatherGclData.Create(nil);
  32. end;
  33. destructor TstgGatherControlGcl.Destroy;
  34. begin
  35. FGatherGclData.Free;
  36. FGatherGclCacheData.Free;
  37. FProjects.Free;
  38. inherited;
  39. end;
  40. procedure TstgGatherControlGcl.Gather;
  41. begin
  42. FHintPosition := 0;
  43. ShowProgressHint('正在准备数据...', FProjects.Count + 1);
  44. GatherSubTenderFiles;
  45. UpdateProgressHint('正在检查汇总结果...');
  46. UpdateProgressPosition(FProjects.Count + 1);
  47. SaveGatherResult;
  48. CloseProgressHint;
  49. ShowGatherResult;
  50. end;
  51. procedure TstgGatherControlGcl.GatherSubTenderFiles;
  52. var
  53. vGather: TstgSubTenderFileGatherGcl;
  54. begin
  55. vGather := TstgSubTenderFileGatherGcl.Create;
  56. try
  57. vGather.LoadHint := LoadHint;
  58. vGather.GatherTo(FGatherGclCacheData, FProjects);
  59. finally
  60. vGather.Free;
  61. end;
  62. end;
  63. procedure TstgGatherControlGcl.LoadHint(const ATenderName: string);
  64. begin
  65. Inc(FHintPosition);
  66. UpdateProgressHint(Format('正在汇总分包标段"%s"...', [ATenderName]));
  67. UpdateProgressPosition(FHintPosition);
  68. end;
  69. procedure TstgGatherControlGcl.SaveGatherResult;
  70. begin
  71. FGatherGclData.LoadGatherData(FGatherGclCacheData);
  72. end;
  73. procedure TstgGatherControlGcl.ShowGatherResult;
  74. var
  75. Form: TstgGclResultForm;
  76. begin
  77. Form := TstgGclResultForm.Create(nil);
  78. try
  79. Form.SetGatherData(FGatherGclData);
  80. Form.ShowModal;
  81. finally
  82. Form.Free;
  83. end;
  84. end;
  85. end.