unit tpPartTenderFme;

interface

uses
  tpPartTender, tpPeg_GclFme, tpPegGclGatherFme,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, ExtCtrls, XPMenu, JimPages, StdCtrls,
  JimLabels;

const
  sPartResult = ' 桩号%s相关清单试算结果：范围内清单总金额%f，其他相关清单总金额%f';

type
  TtpPartTenderFrame = class(TFrame)
    pnlResult: TPanel;
    tbResult: TToolBar;
    tobtnInPegs: TToolButton;
    tobtnRelaPegs: TToolButton;
    xpm: TXPMenu;
    jpsPartTender: TJimPages;
    jpsPartTenderInPegs: TJimPage;
    jpsPartTenderRelaPegs: TJimPage;
    labResult: TJimGradLabel;
    tobtnInGcls: TToolButton;
    jpsPartTenderInGcls: TJimPage;
    procedure tobtnInPegsClick(Sender: TObject);
  private
    FPartTenderData: TtpPartTender;

    FInPegFrame: TtpPeg_GclFrame;
    FInGclGatherFrame: TtpPegGclGatherFrame;
    FRelaPegFrame: TtpPeg_GclFrame;
    procedure SetPartTenderData(const Value: TtpPartTender);
  public
    constructor Create;
    destructor Destroy; override;

    procedure RefreshResult;

    property PartTenderData: TtpPartTender read FPartTenderData write SetPartTenderData;
  end;

implementation

uses
  UtilMethods;

{$R *.dfm}

{ TtpPartTenderFrame }

constructor TtpPartTenderFrame.Create;
begin
  inherited Create(nil);
  FInPegFrame := TtpPeg_GclFrame.Create(nil);
  AlignControl(FInPegFrame, jpsPartTenderInPegs, alClient);

  FInGclGatherFrame := TtpPegGclGatherFrame.Create(nil);
  AlignControl(FInGclGatherFrame, jpsPartTenderInGcls, alClient);

  FRelaPegFrame := TtpPeg_GclFrame.Create(nil);
  AlignControl(FRelaPegFrame, jpsPartTenderRelaPegs, alClient);
end;

destructor TtpPartTenderFrame.Destroy;
begin
  FRelaPegFrame.Free;
  FInPegFrame.Free;
  inherited;
end;

procedure TtpPartTenderFrame.RefreshResult;
begin
  labResult.Caption := Format(sPartResult, [FPartTenderData.BeginPeg+'~'+FPartTenderData.EndPeg,
      FPartTenderData.TotalPrice, FPartTenderData.RelaTotalPrice]);
  labResult.Visible := ((FPartTenderData.InPegCount > 0) or (FPartTenderData.RelaPegCount > 0));
end;

procedure TtpPartTenderFrame.SetPartTenderData(const Value: TtpPartTender);
begin
  FPartTenderData := Value;
  if Assigned(FPartTenderData) then
  begin
    FInPegFrame.Peg_GclData := FPartTenderData.InPegData;
    FInGclGatherFrame.PegGclGatherData := FPartTenderData.InGclGatherData;
    FRelaPegFrame.Peg_GclData := FPartTenderData.RelaPegData;
    RefreshResult;
  end;
end;

procedure TtpPartTenderFrame.tobtnInPegsClick(Sender: TObject);
begin
  tobtnInPegs.Down := tobtnInPegs.Tag = TToolButton(Sender).Tag;
  tobtnInGcls.Down := tobtnInGcls.Tag = TToolButton(Sender).Tag;
  tobtnRelaPegs.Down := tobtnRelaPegs.Tag = TToolButton(Sender).Tag;
  jpsPartTender.ActivePageIndex := TToolButton(Sender).Tag;
end;

end.
