Browse Source

计量台账,修改单价,应实时计算

MaiXinRong 9 years ago
parent
commit
648cab812d
1 changed files with 11 additions and 13 deletions
  1. 11 13
      DataModules/BillsMeasureDm.pas

+ 11 - 13
DataModules/BillsMeasureDm.pas

@@ -806,32 +806,30 @@ end;
 procedure TBillsMeasureData.sdvBillsMeasureAfterValueChanged(
   AValue: TsdValue);
 var
+  iID: Integer;
   vNode: TBillsIDTreeNode;
 begin
+  iID := AValue.Owner.ValueByName('ID').AsInteger;
+  vNode := TBillsIDTreeNode(BillsMeasureTree.FindNode(iID));
+
+  if SameText(AValue.FieldName, 'Price') then
+    TProjectData(FProjectData).BillsCompileData.Calculate(iID);
 
   if TProjectData(FProjectData).PhaseData.Active then
   begin
     if AValue.FieldName = 'Price' then
-      StageData.ReCalculate(AValue.Owner.ValueByName('ID').AsInteger);
+      StageData.ReCalculate(iID);
     if AValue.FieldName = 'NewPrice' then
-      StageData.ReCalculate(AValue.Owner.ValueByName('ID').AsInteger);
+      StageData.ReCalculate(iID);
   end;
+
   if Pos('DgnQuantity1', AValue.FieldName) > 0 then
-  begin
-    vNode := TBillsIDTreeNode(BillsMeasureTree.FindNode(AValue.Owner.ValueByName('ID').AsInteger));
     CalcAddDgnPrice(vNode);
-  end;
 
   if (AValue.FieldName = 'Code') then
-  begin                                                                                           
-    vNode := TBillsIDTreeNode(BillsMeasureTree.FindNode(AValue.Owner.ValueByName('ID').AsInteger));
-    BillsMeasureTree.RecodeChildrenCode(vNode, VarToStrDef(AValue.OldValue, ''), AValue.AsString);
-  end
+    BillsMeasureTree.RecodeChildrenCode(vNode, VarToStrDef(AValue.OldValue, ''), AValue.AsString)
   else if (AValue.FieldName = 'B_Code') then
-  begin
-    vNode := TBillsIDTreeNode(BillsMeasureTree.FindNode(AValue.Owner.ValueByName('ID').AsInteger));
-    BillsMeasureTree.RecodeChildrenB_Code(vNode, VarToStrDef(AValue.OldValue, ''), AValue.AsString);
-  end;
+    BillsMeasureTree.RecodeChildrenB_Code(vNode, VarToStrDef(AValue.OldValue, ''), AValue.AsString)
 end;
 
 procedure TBillsMeasureData.ExpandCurPhase;