Browse Source

Merge branch '3.1.5' of http://192.168.1.12:3000/maixinrong/measure into 3.1.5

builder 9 years ago
parent
commit
0e8a952ed1

+ 0 - 1
DataModules/PHPWebDm.pas

@@ -127,7 +127,6 @@ type
     property ServerDateTimeURL: string read FServerDateTimeURL;
     property UserImageURL: string read FUserImageURL write FUserImageURL;
     property LoginCloudURL: string read FLoginCloudURL write FLoginCloudURL;
-
   end;
 
 

+ 7 - 2
DataModules/ProjectManagerDm.pas

@@ -408,8 +408,13 @@ function TProjectManagerData.NewID: Integer;
 var
   idxID: TsdIndex;
 begin
-  idxID := sddProjectsInfo.FindIndex('idxID');
-  Result := idxID.Records[idxID.RecordCount - 1].ValueByName('ID').AsInteger + 1;
+  if sddProjectsInfo.RecordCount > 0 then
+  begin
+    idxID := sddProjectsInfo.FindIndex('idxID');
+    Result := idxID.Records[idxID.RecordCount - 1].ValueByName('ID').AsInteger + 1;
+  end
+  else
+    Result := 1;
 end;
 
 procedure TProjectManagerData.RefreshSeedID;

+ 2 - 0
Forms/IPFrm.pas

@@ -75,11 +75,13 @@ begin
 
     G_Server := sIP;
     G_CompanyName := sN;
+
     ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Cloud.ini');
     try
       ini.WriteString('URL', 'Server', sIP);
       ini.WriteString('URL', 'CompanyName', sN);
       ini.WriteString('URL', 'LoginCloudURL', 'http://' + sIP);
+      PHPWeb.LoginCloudURL := 'http://' + sIP;
     finally
       ini.Free;
     end;

+ 16 - 16
Forms/MainFrm.dfm

@@ -20,8 +20,8 @@ object MainForm: TMainForm
   TextHeight = 12
   object jtsProjects: TJimTabSet
     Left = 0
-    Top = 49
-    Width = 734
+    Top = 48
+    Width = 742
     Height = 21
     Align = alTop
     BackgroundColor = clGradientInactiveCaption
@@ -45,8 +45,8 @@ object MainForm: TMainForm
   end
   object dxStatusBar: TdxStatusBar
     Left = 0
-    Top = 480
-    Width = 734
+    Top = 484
+    Width = 742
     Height = 20
     Panels = <
       item
@@ -78,12 +78,12 @@ object MainForm: TMainForm
     object dxStatusBarContainer2: TdxStatusBarContainerControl
       Left = 604
       Top = 2
-      Width = 128
+      Width = 136
       Height = 16
       object ProgressBar: TProgressBar
         Left = 0
         Top = 0
-        Width = 128
+        Width = 136
         Height = 16
         Align = alClient
         Max = 200
@@ -93,9 +93,9 @@ object MainForm: TMainForm
   end
   object jpsMain: TJimPages
     Left = 0
-    Top = 70
-    Width = 734
-    Height = 410
+    Top = 69
+    Width = 742
+    Height = 415
     ActivePage = jpsMainProjectsManager
     ActivePageIndex = 0
     Align = alClient
@@ -103,8 +103,8 @@ object MainForm: TMainForm
     object jpsMainProjectsManager: TJimPage
       Left = 0
       Top = 0
-      Width = 734
-      Height = 410
+      Width = 742
+      Height = 415
       TabName = 'ProjectsManager'
       Caption = 'ProjsMgr'
       object pnlUser: TPanel
@@ -201,8 +201,8 @@ object MainForm: TMainForm
     object jpsMainProjects: TJimPage
       Left = 0
       Top = 0
-      Width = 734
-      Height = 410
+      Width = 742
+      Height = 415
       TabName = 'Projects'
       Caption = 'Projects'
       object jpsProjects: TJimPages
@@ -220,7 +220,7 @@ object MainForm: TMainForm
     Font.Charset = DEFAULT_CHARSET
     Font.Color = clWindowText
     Font.Height = -12
-    Font.Name = #24494#36719#38597#40657
+    Font.Name = #23435#20307
     Font.Style = []
     Bars = <
       item
@@ -270,7 +270,7 @@ object MainForm: TMainForm
         Caption = #24037#20855#26639
         DockedDockingStyle = dsTop
         DockedLeft = 0
-        DockedTop = 27
+        DockedTop = 26
         DockingStyle = dsTop
         FloatLeft = 484
         FloatTop = 279
@@ -379,7 +379,7 @@ object MainForm: TMainForm
     DockControlHeights = (
       0
       0
-      49
+      48
       0)
     object dxsiFile: TdxBarSubItem
       Caption = #25991#20214'(&F)'

+ 11 - 7
Forms/MainFrm.pas

@@ -204,7 +204,7 @@ type
     procedure UpdateProgressBar(APosition: Integer);
     procedure UpdateProgressHint(const AHint: string);
 
-    procedure CreateProjectView(ARec: TsdDataRecord);
+    function CreateProjectView(ARec: TsdDataRecord): TProjectFrame;
 
     procedure LocateProjectView(AIndex: Integer);
     procedure DeleteProjectView(AIndex: Integer);
@@ -217,7 +217,7 @@ type
     procedure UpdateProgress(APos: Integer; const AHint: string);
     procedure LocateProject(AProjectID: Integer);
     function HasOpened(AProjectID: Integer): Boolean;
-    procedure OpenProject(ARec: TsdDataRecord);
+    function OpenProject(ARec: TsdDataRecord): TProjectFrame;
 
     property CurProjectFrame: TProjectFrame read GetCurProjectFrame;
     property ProjectManagerFrame: TProjectManagerFrame read FProjectManagerFrame;
@@ -361,12 +361,15 @@ begin
   FProjectManagerFrame.Free;
 end;
 
-procedure TMainForm.OpenProject(ARec: TsdDataRecord);
+function TMainForm.OpenProject(ARec: TsdDataRecord): TProjectFrame;
 begin
   if not HasOpened(ARec.ValueByName('ID').AsInteger) then
-    CreateProjectView(ARec)
+    Result := CreateProjectView(ARec)
   else
+  begin
     LocateProject(ARec.ValueByName('ID').AsInteger);
+    Result := CurProjectFrame;
+  end;
 end;
 
 function TMainForm.HasOpened(AProjectID: Integer): Boolean;
@@ -381,7 +384,7 @@ begin
     jpsMain.ActivePage := jpsMainProjects;
 end;
 
-procedure TMainForm.CreateProjectView(ARec: TsdDataRecord);
+function TMainForm.CreateProjectView(ARec: TsdDataRecord): TProjectFrame;
 
   function CreateNewProjectPage: TJimPage;
   begin
@@ -396,7 +399,7 @@ procedure TMainForm.CreateProjectView(ARec: TsdDataRecord);
     jtsProjects.TabIndex := Result;
   end;
 
-  procedure CreateProjectFrame(AProjectData: TProjectData; APage: TJimPage);
+  function CreateProjectFrame(AProjectData: TProjectData; APage: TJimPage): TProjectFrame;
   var
     ProjectFrame: TProjectFrame;
   begin
@@ -404,6 +407,7 @@ procedure TMainForm.CreateProjectView(ARec: TsdDataRecord);
     FProjectFrames.Add(ProjectFrame);
     ProjectFrame.Parent := APage;
     ProjectFrame.Align := alClient;
+    Result := ProjectFrame;
   end;
 
 var
@@ -412,7 +416,7 @@ begin
   jpsMain.ActivePage := jpsMainProjects;
   jimPage := CreateNewProjectPage;
   CreateNewProjectTab(ARec.ValueByName('Name').AsString, jimPage);
-  CreateProjectFrame(OpenProjectManager.Open(ARec), jimPage);
+  Result := CreateProjectFrame(OpenProjectManager.Open(ARec), jimPage);
   ProjectManager.AddOpenTenderBackup(ARec.ValueByName('ID').AsInteger);
 end;
 

+ 1 - 0
Frames/ProjectManagerFme.dfm

@@ -476,6 +476,7 @@ object ProjectManagerFrame: TProjectManagerFrame
       Caption = #23548#20986
       ImageIndex = 17
       OnExecute = actnExportExecute
+      OnUpdate = actnExportUpdate
     end
     object actnOpenBackupFolder: TAction
       Caption = #26597#30475#22791#20221#25968#25454

+ 33 - 10
Frames/ProjectManagerFme.pas

@@ -86,6 +86,7 @@ type
     procedure actnRenameUpdate(Sender: TObject);
     procedure zgProjectsShowHint(var HintStr: String; var CanShow: Boolean;
       var HintInfo: THintInfo; const ACoord: TPoint);
+    procedure actnExportUpdate(Sender: TObject);
   private
     FProjectManagerData: TProjectManagerData;
 
@@ -152,7 +153,7 @@ implementation
 uses
   MainFrm, UtilMethods, ProjectCommands, Globals, ConfigDoc, ConstUnit,
   WebNewTenderFrm, PHPWebDm, Math, CslJson, mProgressFrm, ProgressHintFrm,
-  ShellAPI;
+  ShellAPI, ProjectFme;
 
 {$R *.dfm}
 
@@ -369,6 +370,8 @@ var
     Result := True;
   end;
 
+var
+  CurProjectFme: TProjectFrame;
 begin
   // 打开前先下载更新
   Screen.Cursor := crHourGlass;
@@ -390,10 +393,21 @@ begin
         Exit;
     end;
 
-    MainForm.OpenProject(vRec);
+    CurProjectFme := MainForm.OpenProject(vRec);
 
     if G_IsCloud then
     begin
+      // 云版,如果用户在打开项目的过程中,切换界面回项目管理,MainFrom.CurProjectFrame值为nil,后面的调用,包括MainForm.actnCloseProject.Execute都会出错
+      // 其中由于前面调用的MainForm.LocateProject触发的一系列事件中,调用到了SetPropertyVisible,其中执行了Screen.Cursor := crDefault
+      // 导致鼠标状态还原,用户可以点击,单机版下测试,属性状态为crHourGlass时,亦可以切换会项目管理
+      // 按逻辑,CheckFileAndCloudCheckerList这种方法不应在界面,应在控制器,亦不可直接调用MainForm.actnCloseProject.Execute
+      // 怕按逻辑改动引起更多Bug,故继续错下去,检查MainForm.CurProjectFrame是否正确,并再次禁用鼠标
+      if CurProjectFme <> MainForm.CurProjectFrame then
+      begin
+        Screen.Cursor := crHourGlass;
+        MainForm.LocateProject(CurProjectFme.ProjectData.ProjectID);
+      end;
+
       if not MainForm.CurProjectFrame.CheckFileAndCloudChekerList then
       begin
         sHint := '项目校验:“' + FBidName + '”文件中的审核人和云端的审核人不一致,' +
@@ -1407,15 +1421,19 @@ var
   Rec: TsdDataRecord;
   bNet: Boolean;
 begin
-  if stdProjects.IDTree.Selected = nil then Exit;
-  Rec := stdProjects.IDTree.Selected.Rec;
-  if Rec = nil then Exit;
-  bNet := G_IsCloud;
-  if bNet then
+  if Assigned(stdProjects.IDTree.Selected) and Assigned(stdProjects.IDTree.Selected.Rec) then
   begin
-    tobtnRenane.Enabled := (Rec.ValueByName('Type').AsInteger = 1) and
-      (Rec.ValueByName('WebAuthorID').AsInteger = PHPWeb.UserID);
-  end;
+    tobtnRenane.Enabled := True;
+    Rec := stdProjects.IDTree.Selected.Rec;
+    bNet := G_IsCloud;
+    if bNet then
+    begin
+      tobtnRenane.Enabled := (Rec.ValueByName('Type').AsInteger = 1) and
+        (Rec.ValueByName('WebAuthorID').AsInteger = PHPWeb.UserID);
+    end;
+  end
+  else
+    tobtnRenane.Enabled := False;
 end;
 
 procedure TProjectManagerFrame.CheckBidName(AID: Integer; ANewBidName: string);
@@ -1718,4 +1736,9 @@ begin
   end;
 end;
 
+procedure TProjectManagerFrame.actnExportUpdate(Sender: TObject);
+begin
+  TAction(Sender).Enabled := Assigned(stdProjects.IDTree.Selected);
+end;
+
 end.

+ 4 - 5
TenderPartition/tpSelectTendersFrm.dfm

@@ -21,9 +21,8 @@ object SelectTendersForm: TSelectTendersForm
   object lblTenderResult: TLabel
     Left = 8
     Top = 355
-    Width = 204
+    Width = 6
     Height = 12
-    Caption = #24403#21069#36873#20013#65306' '#26631#27573' %d '#20010#65292#37329#39069#21512#35745' %f'
   end
   object btnOk: TButton
     Left = 455
@@ -85,7 +84,7 @@ object SelectTendersForm: TSelectTendersForm
         Options = [goRangeSelect, goRowSizing, goColSizing, goCellNotMaintainData, goFixedRowShowNo, goFixedColShowNo, goAlwaysShowSelection, goShowTreeLine]
         OptionsEx = []
         ColCount = 3
-        RowCount = 2
+        RowCount = 1
         ShowGridLine = False
         DefaultColWidth = 35
         DefaultFixedColWidth = 25
@@ -229,7 +228,7 @@ object SelectTendersForm: TSelectTendersForm
     ParentFieldName = 'ParentID'
     NextSiblingFieldName = 'NextSiblingID'
     TopLevelBold = True
-    Left = 500
-    Top = 193
+    Left = 100
+    Top = 177
   end
 end

+ 7 - 7
TenderPartition/tpTrialPegInputFrm.dfm

@@ -5,29 +5,29 @@ object TrialPegInputForm: TTrialPegInputForm
   Height = 123
   Caption = #35797#31639#26729#21495#33539#22260
   Color = clBtnFace
-  Font.Charset = DEFAULT_CHARSET
+  Font.Charset = ANSI_CHARSET
   Font.Color = clWindowText
-  Font.Height = -11
-  Font.Name = 'MS Sans Serif'
+  Font.Height = -12
+  Font.Name = #23435#20307
   Font.Style = []
   OldCreateOrder = False
   PixelsPerInch = 96
-  TextHeight = 13
+  TextHeight = 12
   object lblHint: TLabel
     Left = 8
     Top = 8
     Width = 132
-    Height = 13
+    Height = 12
     Caption = #35831#36755#20837#35797#31639#30340#26729#21495#33539#22260#65306
   end
   object lePeg: TLabeledEdit
     Left = 96
     Top = 32
     Width = 201
-    Height = 19
+    Height = 18
     Ctl3D = False
     EditLabel.Width = 60
-    EditLabel.Height = 13
+    EditLabel.Height = 12
     EditLabel.Caption = #36215#35755#26729#21495#65306
     LabelPosition = lpLeft
     ParentCtl3D = False