Browse Source

Bug #1533 删除变更令重新调用,不应报错

MaiXinRong 7 years ago
parent
commit
40a69f6ffa
2 changed files with 8 additions and 2 deletions
  1. 2 2
      DataModules/BillsMeasureDm.pas
  2. 6 0
      Units/UtilMethods.pas

+ 2 - 2
DataModules/BillsMeasureDm.pas

@@ -925,8 +925,8 @@ begin
   with ANode.Rec do
   begin
     fDividend := ValueByName('AddGatherTotalPrice').AsFloat;
-    fDivisor := ValueByName('TotalPrice').AsFloat + ValueByName('AddQcTotalPrice').AsFloat
-        + ValueByName('AddPcTotalPrice').AsFloat;
+    fDivisor := CommonCalcRoundTo(ValueByName('TotalPrice').AsFloat + ValueByName('AddQcTotalPrice').AsFloat
+        + ValueByName('AddPcTotalPrice').AsFloat);
     if fDivisor <> 0 then
       ValueByName('AddCompleteRate').AsFloat := AdvRoundTo(fDividend/fDivisor*100)
     else

+ 6 - 0
Units/UtilMethods.pas

@@ -17,6 +17,7 @@ type
   function PriceRoundTo(AValue: Double): Double;
   function TotalPriceRoundTo(AValue: Double): Double;
   function CommonRoundTo(AValue: Double; ADigit: Integer; RoundMode: TRoundMode = rmNearest): Double;
+  function CommonCalcRoundTo(AValue: Double): Double;
 
   {Interface Control}
   procedure AlignControl(AControl, AParent: TWinControl; AAlign: TAlign);
@@ -238,6 +239,11 @@ begin
     Result := InnerRoundTo(X, ADigit, RoundMode);
 end;
 
+function CommonCalcRoundTo(AValue: Double): Double;
+begin
+  Result := CommonRoundTo(AValue, 12);
+end;
+
 {Interface Control}
 procedure AlignControl(AControl, AParent: TWinControl; AAlign: TAlign);
 begin