瀏覽代碼

Task #1248 项目属性,时间参数

MaiXinRong 8 年之前
父節點
當前提交
4fabc153f3
共有 3 個文件被更改,包括 132 次插入3 次删除
  1. 66 1
      Forms/ProjectPropertiesFrm.dfm
  2. 37 2
      Forms/ProjectPropertiesFrm.pas
  3. 29 0
      Units/ProjectProperty.pas

+ 66 - 1
Forms/ProjectPropertiesFrm.dfm

@@ -205,6 +205,16 @@ object ProjectPropertiesForm: TProjectPropertiesForm
             Top = 80
             Caption = #35745#31639#21442#25968
             ImageIndex = 6
+            Wrap = True
+            Style = tbsCheck
+            OnClick = tobtnDealInfoClick
+          end
+          object tobtnDateTime: TToolButton
+            Tag = 6
+            Left = 0
+            Top = 100
+            Caption = #26102#38388#21442#25968
+            ImageIndex = 7
             Style = tbsCheck
             OnClick = tobtnDealInfoClick
           end
@@ -215,7 +225,7 @@ object ProjectPropertiesForm: TProjectPropertiesForm
           Width = 438
           Height = 247
           HorzScrollBar.Range = 401
-          VertScrollBar.Range = 1005
+          VertScrollBar.Range = 1157
           Align = alClient
           AutoScroll = False
           BevelInner = bvNone
@@ -351,6 +361,33 @@ object ProjectPropertiesForm: TProjectPropertiesForm
             Height = 12
             Caption = #20445#30041#23567#25968#20301#25968#65306
           end
+          object lblDateTime: TLabel
+            Left = 7
+            Top = 915
+            Width = 48
+            Height = 12
+            Caption = #26102#38388#21442#25968
+            Font.Charset = ANSI_CHARSET
+            Font.Color = clBlue
+            Font.Height = -12
+            Font.Name = #23435#20307
+            Font.Style = []
+            ParentFont = False
+          end
+          object lblBaseline: TLabel
+            Left = 36
+            Top = 938
+            Width = 60
+            Height = 12
+            Caption = #36215#22987#26085#26399#65306
+          end
+          object lblDeadline: TLabel
+            Left = 36
+            Top = 962
+            Width = 60
+            Height = 12
+            Caption = #25130#27490#26085#26399#65306
+          end
           object pnlDealInfoBar: TPanel
             Left = 62
             Top = 9
@@ -969,6 +1006,34 @@ object ProjectPropertiesForm: TProjectPropertiesForm
               TabOrder = 2
             end
           end
+          object pnlDateTime: TPanel
+            Left = 62
+            Top = 921
+            Width = 339
+            Height = 2
+            BevelOuter = bvLowered
+            TabOrder = 32
+          end
+          object dtpBaseline: TDateTimePicker
+            Left = 104
+            Top = 934
+            Width = 105
+            Height = 20
+            Date = 0.457352881945553200
+            Format = 'yyyy-MM-dd'
+            Time = 0.457352881945553200
+            TabOrder = 33
+          end
+          object dtpDeadline: TDateTimePicker
+            Left = 104
+            Top = 958
+            Width = 105
+            Height = 20
+            Date = 0.457352881945553200
+            Format = 'yyyy-MM-dd'
+            Time = 0.457352881945553200
+            TabOrder = 34
+          end
         end
       end
     end

+ 37 - 2
Forms/ProjectPropertiesFrm.pas

@@ -107,6 +107,13 @@ type
     leReport: TLabel;
     cbShowReportShading: TCheckBox;
     edtReportShading: TEdit;
+    tobtnDateTime: TToolButton;
+    lblDateTime: TLabel;
+    pnlDateTime: TPanel;
+    lblBaseline: TLabel;
+    dtpBaseline: TDateTimePicker;
+    lblDeadline: TLabel;
+    dtpDeadline: TDateTimePicker;
     procedure btnOkClick(Sender: TObject);
     procedure leContractPriceClick(Sender: TObject);
     procedure msbBaseMouseWheel(Sender: TObject; Shift: TShiftState;
@@ -144,6 +151,7 @@ type
     procedure InitStaffRela;
     procedure InitSafe;
     procedure InitCalcParameters;
+    procedure InitDateTime;
 
     procedure SaveDealInfo;
     procedure SaveDealPay;
@@ -151,6 +159,7 @@ type
     procedure SaveSafe;
     procedure SaveCalcParameters;
     procedure SaveProjectView;
+    procedure SaveDateTime;
 
     procedure ResetContentsCheck; overload;
     procedure ResetContentsCheck(ATag: Integer); overload;
@@ -205,6 +214,7 @@ begin
   InitDealPay;
   InitSafe;
   InitCalcParameters;
+  InitDateTime;
   InitStaffRela;
   InitProjectView;
 end;
@@ -233,6 +243,7 @@ begin
   SaveTechParameters;
   SaveSafe;
   SaveCalcParameters;
+  SaveDateTime;
   SaveProjectView;
 end;
 
@@ -292,6 +303,7 @@ begin
   tobtnDealPayment.Down := tobtnDealPayment.Tag = ATag;
   tobtnSafe.Down := tobtnSafe.Tag = ATag;
   tobtnCalcParameters.Down := tobtnCalcParameters.Tag = ATag;
+  tobtnDateTime.Down := tobtnDateTime.Tag = ATag;
 end;
 
 procedure TProjectPropertiesForm.msbBaseVScroll(Sender: TObject);
@@ -309,8 +321,10 @@ begin
     ResetContentsCheck(tobtnDealPayment.Tag)
   else if msbBase.VertScrollBar.Position < 758 then
     ResetContentsCheck(tobtnSafe.Tag)
+  else if msbBase.VertScrollBar.Position < 910 then
+    ResetContentsCheck(tobtnCalcParameters.Tag)
   else
-    ResetContentsCheck(tobtnCalcParameters.Tag);
+    ResetContentsCheck(tobtnDateTime.Tag);
 end;
 
 procedure TProjectPropertiesForm.tobtnDealInfoClick(Sender: TObject);
@@ -330,7 +344,9 @@ begin
   else if ATag = tobtnSafe.Tag then
     msbBase.VertScrollBar.Position := 628
   else if ATag = tobtnCalcParameters.Tag then
-    msbBase.VertScrollBar.Position := 758;
+    msbBase.VertScrollBar.Position := 758
+  else if ATag = tobtnDateTime.Tag then
+    msbBase.VertScrollBar.Position := 910;
 end;
 
 procedure TProjectPropertiesForm.InitDealInfo;
@@ -418,6 +434,8 @@ begin
   FStaffData := FProjectData.StaffData;
   FProjProperties := FProjectData.ProjProperties;
   InitAllPage;
+  msbBase.VertScrollBar.Position := 0;
+  jpsProperties.ActivePage := jpsPropertiesBase;
 end;
 
 procedure TProjectPropertiesForm.jcbPhaseChanged(Sender: TObject);
@@ -582,4 +600,21 @@ begin
   edtReportShading.Enabled := cbShowReportShading.Checked;
 end;
 
+procedure TProjectPropertiesForm.InitDateTime;
+var
+  fs: TFormatSettings;
+begin
+  GetLocaleFormatSettings(GetUserDefaultLCID, fs);
+  fs.DateSeparator := '-';
+  fs.ShortDateFormat := dtpBaseline.Format;
+  dtpBaseline.Date := StrToDateDef(ProjProperties.Baseline, Date, fs);
+  dtpDeadline.Date := StrToDateDef(ProjProperties.Deadline, Date, fs);
+end;
+
+procedure TProjectPropertiesForm.SaveDateTime;
+begin
+  ProjProperties.Baseline := FormatDateTime(dtpBaseline.Format, dtpBaseline.Date);
+  ProjProperties.Deadline := FormatDateTime(dtpDeadline.Format, dtpDeadline.Date);
+end;
+
 end.

+ 29 - 0
Units/ProjectProperty.pas

@@ -77,6 +77,8 @@ type
     FPriceMarginStartPhaseID: Integer;
     FShowReportShading: Boolean;
     FReportShading: string;
+    FBaseline: string;
+    FDeadline: string;
 
     function GetBoolPropertyDef(const AName: string; ADef: Boolean): Boolean;
     function GetIntPropertyDef(const AName: string; ADef: Integer): Integer;
@@ -90,6 +92,7 @@ type
     procedure LoadDealInfo;
     procedure LoadTechParameters;
     procedure LoadCalcParameters;
+    procedure LoadDateTime;
 
     procedure SaveDealInfo;
     procedure SaveTechParameters;
@@ -119,6 +122,8 @@ type
     procedure SetUpdateFlag(const Value: Integer);
     procedure SetReportShading(const Value: string);
     procedure SetShowReportShading(const Value: Boolean);
+    procedure SetBaseline(const Value: string);
+    procedure SetDeadline(const Value: string);
   public
     constructor Create(AProjectData: TObject);
     destructor Destroy; override;
@@ -199,6 +204,12 @@ type
     property PriceDigit: Integer read FPriceDigit;
     property PriceFormat: string read FPriceFormat;
 
+    {时间}
+    // 起始时间
+    property Baseline: string read FBaseline write SetBaseline;
+    // 结束时间
+    property Deadline: string read FDeadline write SetDeadline;
+
     {升级标记}
     property UpdateFlag: Integer read FUpdateFlag write SetUpdateFlag;
 
@@ -444,6 +455,12 @@ begin
   end;
 end;
 
+procedure TProjProperties.LoadDateTime;
+begin
+  FBaseline := GetStrPropertyDef('Baseline', '');
+  FDeadline := GetStrPropertyDef('Deadline', '');
+end;
+
 procedure TProjProperties.LoadDealInfo;
 begin
   FProjectName := GetStrPropertyDef('ProjectName', '');
@@ -561,12 +578,24 @@ begin
   FPropertyInqurity.Value['AuditStatus'] := Value;
 end;
 
+procedure TProjProperties.SetBaseline(const Value: string);
+begin
+  FBaseline := Value;
+  FPropertyInqurity.Value['Baseline'] := Value;
+end;
+
 procedure TProjProperties.SetContractPrice(const Value: Double);
 begin
   FContractPrice := Value;
   FPropertyInqurity.Value['ContractPrice'] := Value;
 end;
 
+procedure TProjProperties.SetDeadline(const Value: string);
+begin
+  FDeadline := Value;
+  FPropertyInqurity.Value['Deadline'] := Value;
+end;
+
 procedure TProjProperties.SetFinalAuditCount(const Value: Integer);
 begin
   FPropertyInqurity.Value['FinalAuditCount'] := Value;