123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- unit tpMainFrm;
- interface
- uses
- 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;
- implementation
- uses
- 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.
|