Browse Source

调差工料,输入判断重做

MaiXinRong 9 years ago
parent
commit
a57cb576bf
2 changed files with 17 additions and 38 deletions
  1. 0 1
      DataModules/ProjectGLDm.dfm
  2. 17 37
      DataModules/ProjectGLDm.pas

+ 0 - 1
DataModules/ProjectGLDm.dfm

@@ -14,7 +14,6 @@ object ProjectGLData: TProjectGLData
     Provider = sdpProjectGL
     AfterAddRecord = sddProjectGLAfterAddRecord
     BeforeDeleteRecord = sddProjectGLBeforeDeleteRecord
-    BeforeValueChange = sddProjectGLBeforeValueChange
     AfterValueChanged = sddProjectGLAfterValueChanged
     OnGetRecordClass = sddProjectGLGetRecordClass
     Left = 57

+ 17 - 37
DataModules/ProjectGLDm.pas

@@ -11,8 +11,6 @@ type
     sddProjectGL: TsdDataSet;
     sdvProjectGL: TsdDataView;
     procedure sddProjectGLAfterAddRecord(ARecord: TsdDataRecord);
-    procedure sddProjectGLBeforeValueChange(AValue: TsdValue;
-      const NewValue: Variant; var Allow: Boolean);
     procedure sddProjectGLAfterValueChanged(AValue: TsdValue);
     procedure sdvProjectGLGetText(var Text: String; ARecord: TsdDataRecord;
       AValue: TsdValue; AColumn: TsdViewColumn; DisplayText: Boolean);
@@ -205,40 +203,6 @@ begin
   ARecord.ValueByName('CreatePhaseID').AsInteger := TProjectData(FProjectData).ProjProperties.PhaseCount;
 end;
 
-procedure TProjectGLData.sddProjectGLBeforeValueChange(AValue: TsdValue;
-  const NewValue: Variant; var Allow: Boolean);
-var
-  Rec: TProjectGLRecord;
-begin
-  Rec := TProjectGLRecord(AValue.Owner);
-  if SameText(AValue.FieldName, 'Code') then
-  begin
-    if VarIsNull(NewValue) then
-    begin
-      DataSetErrorMessage(Allow, '编号不可为空。');
-      if Rec.Code.AsString = '' then
-        sddProjectGL.Remove(AValue.Owner);
-    end
-    else if CheckSameCode(NewValue) then
-    begin
-      DataSetErrorMessage(Allow, '编号不可重复。');
-      if Rec.Code.AsString = '' then
-        sddProjectGL.Remove(AValue.Owner);
-    end
-    else if CheckApplied(Rec.ID.AsInteger) then
-      DataSetErrorMessage(Allow, '工料已被应用,不可修改编号。');
-  end
-  else if not(SameText(AValue.FieldName, 'ID') or
-      SameText(AValue.FieldName, 'CreatePhaseID')) then
-  begin
-    if (Rec.Code.AsString = '') then
-    begin
-      DataSetErrorMessage(Allow, '编号不可为空,请先填写编号,再填写其他信息。');
-      sddProjectGL.Remove(AValue.Owner);
-    end;
-  end;
-end;
-
 procedure TProjectGLData.sddProjectGLAfterValueChanged(AValue: TsdValue);
 begin
   if SameText(AValue.FieldName, 'BasePrice') or
@@ -508,10 +472,26 @@ begin
   begin
     if StrToIntDef(Text, 0) = 0 then
     begin
-      DataSetErrorMessage(Allow, '编号不可为0。');
+      DataSetErrorMessage(Allow, '编号不可为0或空。');
       if Rec.Code.AsString = '' then
         sddProjectGL.Remove(ARecord);
     end
+    else if CheckSameCode(StrToInt(Text)) then
+    begin
+      DataSetErrorMessage(Allow, '编号不可重复。');
+      if Rec.Code.AsString = '' then
+        sddProjectGL.Remove(AValue.Owner);
+    end
+    else if CheckApplied(Rec.ID.AsInteger) then
+      DataSetErrorMessage(Allow, '工料已被应用,不可修改编号。');
+  end
+  else
+  begin
+    if (Rec.Code.AsString = '') then
+    begin
+      DataSetErrorMessage(Allow, '编号不可为空,请先填写编号,再填写其他信息。');
+      sddProjectGL.Remove(AValue.Owner);
+    end;
   end;
 end;