| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- unit rpgZoneProjGatherSelectFrm;
 
- interface
 
- uses
 
-   ProjGatherSelectFme,
 
-   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 
-   Dialogs, ExtCtrls, StdCtrls;
 
- type
 
-   TrpgZoneProjGatherSelectForm = class(TForm)
 
-     pnlTop: TPanel;
 
-     pnlPhase: TPanel;
 
-     btnOk: TButton;
 
-     btnCancel: TButton;
 
-     leBeginPhaseIndex: TLabeledEdit;
 
-     leEndPhaseIndex: TLabeledEdit;
 
-     lblPhase: TLabel;
 
-     lblPhaseHint: TLabel;
 
-     procedure leBeginPhaseIndexKeyPress(Sender: TObject; var Key: Char);
 
-     procedure leBeginPhaseIndexChange(Sender: TObject);
 
-     procedure btnOkClick(Sender: TObject);
 
-   private
 
-     FSelectFrame: TProjGatherSelectFrame;
 
-     FError: Integer;
 
-     procedure CheckPhaseIndex;
 
-     procedure RefreshDiffWindows;
 
-     function GetBeginPhaseIndex: Integer;
 
-     function GetEndPhaseIndex: Integer;
 
-     procedure SetBeginPhaseIndex(const Value: Integer);
 
-     procedure SetEndPhaseIndex(const Value: Integer);
 
-   public
 
-     constructor Create(AProjectID: Integer; AProjs: TList);
 
-     destructor Destroy; override;
 
-     property BeginPhaseIndex: Integer read GetBeginPhaseIndex write SetBeginPhaseIndex;
 
-     property EndPhaseIndex: Integer read GetEndPhaseIndex write SetEndPhaseIndex;
 
-   end;
 
- function SelectGatherProject(AProjectID: Integer; AProjs: TList; var ABeginPhaseIndex, AEndPhaseIndex: Integer): Boolean;
 
- implementation
 
- uses
 
-   UtilMethods, Math;
 
- {$R *.dfm}
 
- function SelectGatherProject(AProjectID: Integer; AProjs: TList; var ABeginPhaseIndex, AEndPhaseIndex: Integer): Boolean;
 
- var
 
-   vForm: TrpgZoneProjGatherSelectForm;
 
- begin
 
-   vForm := TrpgZoneProjGatherSelectForm.Create(AProjectID, AProjs);
 
-   vForm.BeginPhaseIndex := ABeginPhaseIndex;
 
-   vForm.EndPhaseIndex := AEndPhaseIndex;
 
-   try
 
-     Result := vForm.ShowModal = mrOk;
 
-     if Result then
 
-     begin
 
-       ABeginPhaseIndex := vForm.BeginPhaseIndex;
 
-       AEndPhaseIndex := vForm.EndPhaseIndex;
 
-       vForm.FSelectFrame.AssignResult(AProjs);
 
-     end;
 
-   finally
 
-     vForm.Free;
 
-   end;
 
- end;
 
- constructor TrpgZoneProjGatherSelectForm.Create(AProjectID: Integer; AProjs: TList);
 
- begin
 
-   inherited Create(nil);
 
-   FSelectFrame := TProjGatherSelectFrame.Create(AProjectID, nil);
 
-   AlignControl(FSelectFrame, pnlTop, alClient);
 
-   FSelectFrame.LoadHistorySelects(AProjs);
 
-   FSelectFrame.AfterSelectProject := CheckPhaseIndex;
 
-   RefreshDiffWindows;
 
- end;
 
- destructor TrpgZoneProjGatherSelectForm.Destroy;
 
- begin
 
-   FSelectFrame.Free;
 
-   inherited;
 
- end;
 
- function TrpgZoneProjGatherSelectForm.GetBeginPhaseIndex: Integer;
 
- begin
 
-   Result := StrToIntDef(leBeginPhaseIndex.Text, -1);
 
- end;
 
- function TrpgZoneProjGatherSelectForm.GetEndPhaseIndex: Integer;
 
- begin
 
-   Result := StrToIntDef(leEndPhaseIndex.Text, -1);
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.leBeginPhaseIndexKeyPress(Sender: TObject; var Key: Char);
 
- begin
 
-   if not (Key in ['0'..'9', #8, #13]) then
 
-     Key := #0;
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.SetBeginPhaseIndex(const Value: Integer);
 
- begin
 
-   if (Value >= 0) and (Value <= 50) then
 
-     leBeginPhaseIndex.Text := IntToStr(Value)
 
-   else
 
-     leBeginPhaseIndex.Text := '';
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.SetEndPhaseIndex(const Value: Integer);
 
- begin
 
-   if (Value >= 0) and (Value <= 50) then
 
-     leEndPhaseIndex.Text := IntToStr(Value)
 
-   else
 
-     leEndPhaseIndex.Text := '';
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.leBeginPhaseIndexChange(
 
-   Sender: TObject);
 
- begin
 
-   CheckPhaseIndex;
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.CheckPhaseIndex;
 
- begin
 
-   FError := 0;
 
-   if EndPhaseIndex < BeginPhaseIndex then
 
-     FError := 1
 
-   else if (EndPhaseIndex > 0) and (not FSelectFrame.CheckProjPhaseValid(EndPhaseIndex)) then
 
-     FError := 2
 
-   else
 
-     FSelectFrame.ClearMarkedProj;
 
-   lblPhaseHint.Visible := FError <> 0;
 
-   case FError of
 
-     1: lblPhaseHint.Caption := '截止期应大于起始期。';
 
-     2: lblPhaseHint.Caption := '标记为红色的标段,未达第'+ leEndPhaseIndex.Text +'期';
 
-   end;
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.RefreshDiffWindows;
 
- begin
 
-   ClientHeight := 529;
 
-   ClientWidth := 827;
 
- end;
 
- procedure TrpgZoneProjGatherSelectForm.btnOkClick(Sender: TObject);
 
- begin
 
-   case FError of
 
-     0: ModalResult := mrOk;
 
-     1: WarningMessage('截止期应大于起始期。');
 
-     2: if QuestMessageYesNo('部分选中标段未达第'+leEndPhaseIndex.Text+'期,是否继续汇总?', Handle) then
 
-          ModalResult := mrOk;
 
-   end;
 
- end;
 
- end.
 
 
  |