stgGclGatherControl.pas 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. unit stgGclGatherControl;
  2. interface
  3. uses
  4. Classes, stgGatherGclCacheData, stgGclGatherDm, stgGclResultFrm,
  5. stgGclGather;
  6. type
  7. TstgGclGatherControl = class
  8. private
  9. FProjects: TList;
  10. FGatherGclCacheData: TstgGatherGclCacheData;
  11. FGatherGclData: TstgGclGatherData;
  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 TstgGclGatherControl.Create;
  28. begin
  29. FProjects := TList.Create;
  30. FGatherGclCacheData := TstgGatherGclCacheData.Create;
  31. FGatherGclData := TstgGclGatherData.Create(nil);
  32. end;
  33. destructor TstgGclGatherControl.Destroy;
  34. begin
  35. FGatherGclData.Free;
  36. FGatherGclCacheData.Free;
  37. FProjects.Free;
  38. inherited;
  39. end;
  40. procedure TstgGclGatherControl.Gather;
  41. begin
  42. FHintPosition := 0;
  43. ShowProgressHint('正在准备数据...', FProjects.Count + 1);
  44. GatherSubTenderFiles;
  45. FGatherGclCacheData.CalculateAll;
  46. UpdateProgressHint('正在检查汇总结果...');
  47. UpdateProgressPosition(FProjects.Count + 1);
  48. SaveGatherResult;
  49. CloseProgressHint;
  50. ShowGatherResult;
  51. end;
  52. procedure TstgGclGatherControl.GatherSubTenderFiles;
  53. var
  54. vGather: TstgSubTenderFileGatherGcl;
  55. begin
  56. vGather := TstgSubTenderFileGatherGcl.Create;
  57. try
  58. vGather.LoadHint := LoadHint;
  59. vGather.GatherTo(FGatherGclCacheData, FProjects);
  60. finally
  61. vGather.Free;
  62. end;
  63. end;
  64. procedure TstgGclGatherControl.LoadHint(const ATenderName: string);
  65. begin
  66. Inc(FHintPosition);
  67. UpdateProgressHint(Format('正在汇总分包标段"%s"...', [ATenderName]));
  68. UpdateProgressPosition(FHintPosition);
  69. end;
  70. procedure TstgGclGatherControl.SaveGatherResult;
  71. begin
  72. FGatherGclData.LoadGatherData(FGatherGclCacheData);
  73. end;
  74. procedure TstgGclGatherControl.ShowGatherResult;
  75. var
  76. Form: TstgGclResultForm;
  77. begin
  78. Form := TstgGclResultForm.Create(nil);
  79. try
  80. Form.SetGatherData(FGatherGclData);
  81. Form.ShowModal;
  82. finally
  83. Form.Free;
  84. end;
  85. end;
  86. end.