ReportPrepare.pas 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. unit ReportPrepare;
  2. interface
  3. uses
  4. rdpBillsGatherDm, ProjectData;
  5. type
  6. TReportPrepare = class
  7. private
  8. FProjectData: TProjectData;
  9. FPrepareGclGather: Boolean;
  10. procedure GatherGclAndSave;
  11. procedure UpdateGclGatherTables;
  12. procedure PrepareGclGatherData;
  13. public
  14. constructor Create(AProjectData: TProjectData);
  15. destructor Destroy; override;
  16. procedure PrepareData(AFlag: Integer);
  17. end;
  18. implementation
  19. uses
  20. ScAutoUpdateUnit, rdpTables, ComObj, UtilMethods, ZhAPI, Classes,
  21. ConditionalDefines;
  22. { TReportPrepare }
  23. constructor TReportPrepare.Create(AProjectData: TProjectData);
  24. begin
  25. FProjectData := AProjectData;
  26. FPrepareGclGather := False;
  27. FProjectData.ClearReportPrepareData;
  28. end;
  29. destructor TReportPrepare.Destroy;
  30. begin
  31. FProjectData.ClearReportPrepareData;
  32. end;
  33. procedure TReportPrepare.GatherGclAndSave;
  34. var
  35. DataSaver: TrdpBillsGatherData;
  36. begin
  37. DataSaver := TrdpBillsGatherData.Create(FProjectData);
  38. try
  39. DataSaver.LoadGclBillsGatherData;
  40. finally
  41. DataSaver.Free;
  42. end;
  43. end;
  44. procedure TReportPrepare.PrepareData(AFlag: Integer);
  45. begin
  46. case AFlag of
  47. 1: PrepareGclGatherData;
  48. end;
  49. // For Test
  50. if _IsDebugView then
  51. FProjectData.SaveDebugFile('ReportDataPrepare.dat');
  52. end;
  53. procedure TReportPrepare.PrepareGclGatherData;
  54. begin
  55. if FPrepareGclGather then Exit;
  56. try
  57. UpdateGclGatherTables;
  58. GatherGclAndSave;
  59. FPrepareGclGather := True;
  60. except
  61. FPrepareGclGather := False;
  62. end;
  63. end;
  64. procedure TReportPrepare.UpdateGclGatherTables;
  65. var
  66. Updater: TScUpdater;
  67. begin
  68. Updater := TScUpdater.Create;
  69. try
  70. Updater.ForceUpdate := True;
  71. Updater.Open('', FProjectData.ADOConnection, '', '');
  72. Updater.AddTableDef(S_rdpLeafXmjs, @td_rdpLeafXmjs, Length(td_rdpLeafXmjs), False, False);
  73. Updater.AddTableDef(S_rdpGclBills, @td_rdpGclBills, Length(td_rdpGclBills), False, False);
  74. Updater.AddTableDef(S_rdpDetailGclBills, @td_rdpDetailGclBills, Length(td_rdpDetailGclBills), False, False);
  75. Updater.AddTableDef(S_rdpDetailDealBills, @td_rdpDetailDealBills, Length(td_rdpDetailDealBills), False, False);
  76. Updater.AddTableDef(S_rdpDetailBGLBills, @td_rdpDetailBGLBills, Length(td_rdpDetailBGLBills), False, False);
  77. Updater.ExcuteUpdate;
  78. finally
  79. Updater.Free;
  80. end;
  81. end;
  82. end.