Pārlūkot izejas kodu

进度条动态显示改进体验。

CSL 9 gadi atpakaļ
vecāks
revīzija
9dc27be90e
2 mainītis faili ar 15 papildinājumiem un 8 dzēšanām
  1. 12 7
      Frames/ProjectFme.pas
  2. 3 1
      Units/ProjectData.pas

+ 12 - 7
Frames/ProjectFme.pas

@@ -899,8 +899,10 @@ begin
       end;
 
       ProgressProCreate(100, '本地数据文件上传到云端');
+      ProgressProRun('保存本地数据...', 0);
       ProjectData.Save;
-      ProgressProRun('保存本地数据。OK');
+      ProgressProRun('保存本地数据。OK', 10, pmtEdit);
+
       ProgressProRun('生成并检验待批复文件...', 0);
       if not ProjectData.ReplyProject(sAppFile) then
         if not ProjectData.ReplyProject(sAppFile) then
@@ -918,28 +920,31 @@ begin
   end;
 
   try
+    ProgressProRun('导出用于Web展示的清单、汇总数据等...', 0);
     sJsonFile_Bills := ExtractFilePath(sAppFile) + 'JsonFile_Bills.json';
     sJsonFile_Common := ExtractFilePath(sAppFile) + 'JsonFile_Common.json';
     sMD5_JL := MD5_File(sAppFile);
-
     // 上传清单,每期都传,可覆盖旧的。
     ProjectData.ExportJson_Bills(sJsonFile_Bills);
     ProjectData.ExportJson_Common(sJsonFile_Common);
-    ProgressProRun('生成Web汇总数据文件。OK');
-    ProgressProRun('生成并检验up数据包文件...', 0);
-    sZipFile := PHPWeb.zip([sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock]);
+    ProgressProRun('导出用于Web展示的清单、汇总数据等。OK', 10, pmtEdit);
+
 
-    if FileExists(sAppFile_UnLock) then
+    ProgressProRun('生成并检验up数据包文件...', 0);
+    if FileExists(sAppFile_UnLock) then    // 要在压缩前判断,压缩完会删除
       iFile := 4
     else
       iFile := 3;
+
+    sZipFile := PHPWeb.zip([sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock]);
+
     if not PHPWeb.CheckZip(sZipFile, iFile) then
     begin
       Application.MessageBox('up数据包文件无法通过检验请重试!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
       Exit;
     end;
-
     ProgressProRun('生成并检验up数据包文件。OK', 10, pmtEdit);
+    
     try
       ProgressProRun('上传数据包到云端...(温馨提示:请不要乱点哦,Windows容易死机)', 0);
       if PHPWeb.UpDataFile(PHPWeb.UserID, ProjectData.WebID, ProjectData.PhaseIndex,

+ 3 - 1
Units/ProjectData.pas

@@ -207,7 +207,8 @@ type
 implementation
 
 uses UtilMethods, Globals, ProjectCommands, sdIDTree, StageDm,
-  ZJJLDm, PHPWebDm, XMLDoc, XMLIntf, ConstUnit, PasswordInputFrm;
+  ZJJLDm, PHPWebDm, XMLDoc, XMLIntf, ConstUnit, PasswordInputFrm,
+  mProgressProFrm;
 
 { TProjectData }
 
@@ -626,6 +627,7 @@ procedure TProjectData.ExportJson_Bills(const AFileName: string);
     for i := 0 to BillsMeasureData.BillsMeasureTree.Count - 1 do
     begin
       vRec := BillsMeasureData.BillsMeasureTree.Items[i].Rec;
+      ProgressProRun('导出用于Web展示的清单、汇总数据等... ' + IntToStr(i + 1), 0, pmtEdit);
       if i = 0 then
         sSplit := ''
       else