tpMainFrm.pas 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. unit tpMainFrm;
  2. interface
  3. uses
  4. tpMainData, tpPartTenderFme, tpPartTenderSetFme,
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6. Dialogs, JimTabs, JimPages, dxBarExtItems, dxBar, ZJGrid, sdGridDBA,
  7. ActnList, StdCtrls, JimLabels, sdGridTreeDBA, ExtCtrls;
  8. const
  9. sGatherResult = ' 汇总后,共含桩号节点%d个,起点桩号为%s,终点桩号为%s,桩号节点总金额为%s';
  10. type
  11. TtpMainForm = class(TForm)
  12. jtsMainDatas: TJimTabSet;
  13. jpsMain: TJimPages;
  14. dxBarManager: TdxBarManager;
  15. dxsiPart: TdxBarSubItem;
  16. dxbtnTrial: TdxBarButton;
  17. dxbtnPartByLength: TdxBarButton;
  18. dxbtnPartByPrice: TdxBarButton;
  19. dxbtnReGather: TdxBarButton;
  20. jpsMainBaseTender: TJimPage;
  21. zgSelectTenders: TZJGrid;
  22. saSelectTenders: TsdGridDBA;
  23. jpsMainTrial: TJimPage;
  24. labGatherResult: TJimGradLabel;
  25. jpsMainPart: TJimPage;
  26. dxbtnGatherGclBills: TdxBarButton;
  27. sprNoPegData: TSplitter;
  28. pnlNoPegData: TPanel;
  29. labNoPegData: TJimGradLabel;
  30. zgNoPeg: TZJGrid;
  31. staNoPeg: TsdGridTreeDBA;
  32. pnlGatherTenders: TPanel;
  33. labGatherTenders: TJimGradLabel;
  34. procedure jtsMainDatasChange(Sender: TObject; NewTab: Integer;
  35. var AllowChange: Boolean);
  36. procedure dxbtnTrialClick(Sender: TObject);
  37. procedure dxbtnReGatherClick(Sender: TObject);
  38. procedure dxbtnPartByPriceClick(Sender: TObject);
  39. procedure dxbtnPartByLengthClick(Sender: TObject);
  40. private
  41. FMainData: TtpMainData;
  42. FProjects: TList; // ID类型,缓存用户选择,再次选择时加载
  43. FTenders: TList; // TtpSelectTenderNode类型,缓存用户选择的标段,汇总时加载部分后期展示数据
  44. FtpPartTrialFrame: TtpPartTenderFrame;
  45. FtpPartTenderSetFrame: TtpPartTenderSetFrame;
  46. public
  47. constructor Create;
  48. destructor Destroy; override;
  49. function GatherBaseTenders: Boolean;
  50. end;
  51. procedure PartTendersModel;
  52. implementation
  53. uses
  54. ZhAPI, tpSelectTendersFrm, sdIDTree, Globals, tpSelectTenderNode,
  55. mPegFilter, UtilMethods, tpNoPegDm;
  56. procedure PartTendersModel;
  57. var
  58. tpForm: TtpMainForm;
  59. begin
  60. tpForm := TtpMainForm.Create;
  61. try
  62. if tpForm.GatherBaseTenders then
  63. tpForm.ShowModal;
  64. finally
  65. tpForm.Free;
  66. end;
  67. end;
  68. {$R *.dfm}
  69. constructor TtpMainForm.Create;
  70. begin
  71. Inherited Create(nil);
  72. FMainData := TtpMainData.Create;
  73. saSelectTenders.DataView := FMainData.SelectTenderData.sdvTenders;
  74. staNoPeg.IDTree := FMainData.BaseGatherData.NoPegData.NoPegTree;
  75. FtpPartTrialFrame := TtpPartTenderFrame.Create;
  76. FtpPartTrialFrame.PartTenderData := FMainData.PartTrial;
  77. AlignControl(FtpPartTrialFrame, jpsMainTrial, alClient);
  78. FtpPartTenderSetFrame := TtpPartTenderSetFrame.Create(FMainData.PartTenderSet);
  79. AlignControl(FtpPartTenderSetFrame, jpsMainPart, alClient);
  80. FProjects := TList.Create;
  81. end;
  82. destructor TtpMainForm.Destroy;
  83. begin
  84. FtpPartTenderSetFrame.Free;
  85. FtpPartTrialFrame.Free;
  86. FProjects.Free;
  87. FMainData.Free;
  88. inherited;
  89. end;
  90. function TtpMainForm.GatherBaseTenders: Boolean;
  91. begin
  92. Result := False;
  93. if SelectTendersToPart(FProjects) then
  94. begin
  95. FMainData.GatherProjects(FProjects);
  96. with FMainData.BaseGatherData.Pegs do
  97. labGatherResult.Caption := Format(sGatherResult, [Count, BeginPeg, EndPeg, FormatFloat('##,###,###,###.##', TotalPrice)]);
  98. Result := True;
  99. end;
  100. end;
  101. procedure TtpMainForm.jtsMainDatasChange(Sender: TObject; NewTab: Integer;
  102. var AllowChange: Boolean);
  103. begin
  104. if (NewTab > -1) and (NewTab < jtsMainDatas.Tabs.Count) then
  105. jpsMain.ActivePageIndex := NewTab;
  106. end;
  107. procedure TtpMainForm.dxbtnTrialClick(Sender: TObject);
  108. begin
  109. FMainData.TrialPeg;
  110. FtpPartTrialFrame.RefreshResult;
  111. end;
  112. procedure TtpMainForm.dxbtnReGatherClick(Sender: TObject);
  113. begin
  114. if QuestMessage('切换汇总项目将清空当前的桩号试算、标段划分结果,是否继续?') then
  115. GatherBaseTenders;
  116. end;
  117. procedure TtpMainForm.dxbtnPartByPriceClick(Sender: TObject);
  118. begin
  119. FMainData.PartTenderSet.PricePart(FMainData.BaseGatherData.Pegs);
  120. if jtsMainDatas.TabIndex <> 1 then
  121. jtsMainDatas.TabIndex := 1;
  122. end;
  123. procedure TtpMainForm.dxbtnPartByLengthClick(Sender: TObject);
  124. begin
  125. FMainData.PartTenderSet.PegPart(FMainData.BaseGatherData.Pegs);
  126. if jtsMainDatas.TabIndex <> 2 then
  127. jtsMainDatas.TabIndex := 2;
  128. end;
  129. end.