| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 | unit tpMainFrm;interfaceuses  tpMainData, tpPartTenderFme, tpPartTenderSetFme,  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, JimTabs, JimPages, dxBarExtItems, dxBar, ZJGrid, sdGridDBA,  ActnList, StdCtrls, JimLabels, sdGridTreeDBA, ExtCtrls;const  sGatherResult = ' 汇总后,共含桩号节点%d个,起点桩号为%s,终点桩号为%s,桩号节点总金额为%s';type  TtpMainForm = class(TForm)    jtsMainDatas: TJimTabSet;    jpsMain: TJimPages;    dxBarManager: TdxBarManager;    dxsiPart: TdxBarSubItem;    dxbtnTrial: TdxBarButton;    dxbtnPartByLength: TdxBarButton;    dxbtnPartByPrice: TdxBarButton;    dxbtnReGather: TdxBarButton;    jpsMainBaseTender: TJimPage;    zgSelectTenders: TZJGrid;    saSelectTenders: TsdGridDBA;    jpsMainTrial: TJimPage;    labGatherResult: TJimGradLabel;    jpsMainPart: TJimPage;    dxbtnGatherGclBills: TdxBarButton;    sprNoPegData: TSplitter;    pnlNoPegData: TPanel;    labNoPegData: TJimGradLabel;    zgNoPeg: TZJGrid;    staNoPeg: TsdGridTreeDBA;    pnlGatherTenders: TPanel;    labGatherTenders: TJimGradLabel;    procedure jtsMainDatasChange(Sender: TObject; NewTab: Integer;      var AllowChange: Boolean);    procedure dxbtnTrialClick(Sender: TObject);    procedure dxbtnReGatherClick(Sender: TObject);    procedure dxbtnPartByPriceClick(Sender: TObject);    procedure dxbtnPartByLengthClick(Sender: TObject);  private    FMainData: TtpMainData;    FProjects: TList; // ID类型,缓存用户选择,再次选择时加载    FTenders: TList; // TtpSelectTenderNode类型,缓存用户选择的标段,汇总时加载部分后期展示数据    FtpPartTrialFrame: TtpPartTenderFrame;    FtpPartTenderSetFrame: TtpPartTenderSetFrame;  public    constructor Create;    destructor Destroy; override;    function GatherBaseTenders: Boolean;  end;procedure PartTendersModel;implementationuses  ZhAPI, tpSelectTendersFrm, sdIDTree, Globals, tpSelectTenderNode,  mPegFilter, UtilMethods, tpNoPegDm;procedure PartTendersModel;var  tpForm: TtpMainForm;begin  tpForm := TtpMainForm.Create;  try    if tpForm.GatherBaseTenders then      tpForm.ShowModal;   finally    tpForm.Free;  end;end;{$R *.dfm}constructor TtpMainForm.Create;begin  Inherited Create(nil);  FMainData := TtpMainData.Create;  saSelectTenders.DataView := FMainData.SelectTenderData.sdvTenders;  staNoPeg.IDTree := FMainData.BaseGatherData.NoPegData.NoPegTree;  FtpPartTrialFrame := TtpPartTenderFrame.Create;  FtpPartTrialFrame.PartTenderData := FMainData.PartTrial;  AlignControl(FtpPartTrialFrame, jpsMainTrial, alClient);  FtpPartTenderSetFrame := TtpPartTenderSetFrame.Create(FMainData.PartTenderSet);  AlignControl(FtpPartTenderSetFrame, jpsMainPart, alClient);  FProjects := TList.Create;end;destructor TtpMainForm.Destroy;begin  FtpPartTenderSetFrame.Free;  FtpPartTrialFrame.Free;  FProjects.Free;  FMainData.Free;  inherited;end;function TtpMainForm.GatherBaseTenders: Boolean;begin  Result := False;  if SelectTendersToPart(FProjects) then  begin    FMainData.GatherProjects(FProjects);    with FMainData.BaseGatherData.Pegs do      labGatherResult.Caption := Format(sGatherResult, [Count, BeginPeg, EndPeg, FormatFloat('##,###,###,###.##', TotalPrice)]);    Result := True;  end;end;procedure TtpMainForm.jtsMainDatasChange(Sender: TObject; NewTab: Integer;  var AllowChange: Boolean);begin  if (NewTab > -1) and (NewTab < jtsMainDatas.Tabs.Count) then    jpsMain.ActivePageIndex := NewTab;end;procedure TtpMainForm.dxbtnTrialClick(Sender: TObject);begin  FMainData.TrialPeg;  FtpPartTrialFrame.RefreshResult;end;procedure TtpMainForm.dxbtnReGatherClick(Sender: TObject);begin  if QuestMessage('切换汇总项目将清空当前的桩号试算、标段划分结果,是否继续?') then    GatherBaseTenders;end;procedure TtpMainForm.dxbtnPartByPriceClick(Sender: TObject);begin  FMainData.PartTenderSet.PricePart(FMainData.BaseGatherData.Pegs);  if jtsMainDatas.TabIndex <> 1 then    jtsMainDatas.TabIndex := 1;end;procedure TtpMainForm.dxbtnPartByLengthClick(Sender: TObject);begin  FMainData.PartTenderSet.PegPart(FMainData.BaseGatherData.Pegs);  if jtsMainDatas.TabIndex <> 2 then    jtsMainDatas.TabIndex := 2;end;end.
 |