|
@@ -108,6 +108,7 @@ type
|
|
|
|
|
|
procedure Open(AProjRec: TsdDataRecord);
|
|
|
procedure Save;
|
|
|
+ procedure SaveAndCheck;
|
|
|
//----------------------- Begin ---后台打开 ------------------------
|
|
|
{总说明:
|
|
|
为节省内存使用,对不同的后台打开分别写不同的方法
|
|
@@ -190,6 +191,7 @@ type
|
|
|
procedure ImportDmfFile(const AFileName: string);
|
|
|
|
|
|
function CheckPassword: Boolean;
|
|
|
+ function CheckPhaseFileComplete: Boolean;
|
|
|
|
|
|
function CurUserIsOwner: Boolean;
|
|
|
function CurUserIsAuthor: Boolean;
|
|
@@ -227,7 +229,7 @@ type
|
|
|
property StageDataReadOnly: Boolean read GetStageDataReadOnly;
|
|
|
property PriceMarginReadOnly: Boolean read GetPriceMarginReadOnly;
|
|
|
property ValidStageIsRefer: Boolean read GetValidStageIsRefer;
|
|
|
- property StartMeasure: Boolean read GetStartMeasure;
|
|
|
+ property StartMeasure: Boolean read GetStartMeasure;
|
|
|
|
|
|
property CanUnlockInfo: Boolean read FCanUnlockInfo write FCanUnlockInfo;
|
|
|
property CanInsertNormalBills: Boolean read GetCanInsertNormalBills;
|
|
@@ -2095,4 +2097,46 @@ begin
|
|
|
Result := ProjProperties.PhaseCount > 0;
|
|
|
end;
|
|
|
|
|
|
+function TProjectData.CheckPhaseFileComplete: Boolean;
|
|
|
+var
|
|
|
+ i: Integer;
|
|
|
+begin
|
|
|
+ Result := True;
|
|
|
+ for i := 1 to FProjProperties.PhaseCount do
|
|
|
+ begin
|
|
|
+ if not FileExists(Format('%s\Phase%d.dat', [TempPath, i])) then
|
|
|
+ begin
|
|
|
+ Result := False;
|
|
|
+ Break;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TProjectData.SaveAndCheck;
|
|
|
+
|
|
|
+ function CheckFile(AFileName: string): Boolean;
|
|
|
+ var
|
|
|
+ Checker: TTenderZipCompleteChecker;
|
|
|
+ begin
|
|
|
+ Checker := TTenderZipCompleteChecker.Create;
|
|
|
+ try
|
|
|
+ Result := Checker.CheckFileValid(AFileName);
|
|
|
+ finally
|
|
|
+ Checker.Free;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
+begin
|
|
|
+ Save;
|
|
|
+ if not CheckFile(FFileName) then
|
|
|
+ begin
|
|
|
+ Save;
|
|
|
+ if not CheckFile(FFileName) then
|
|
|
+ begin
|
|
|
+ ErrorMessage('保存数据出错。请重试,或联系纵横客服:企业QQ:800003850 客服热线:(0756)3850888');
|
|
|
+ Abort;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
end.
|