|  | @@ -236,7 +236,7 @@ var
 | 
	
		
			
				|  |  |    stnNode: TMeasureBillsIDTreeNode;
 | 
	
		
			
				|  |  |    iCreatePhaseID: Integer;
 | 
	
		
			
				|  |  |    StageRec: TStageRecord;
 | 
	
		
			
				|  |  | -  fDiffer, fCompare: Double;
 | 
	
		
			
				|  |  | +  fDiffer, fCompare, fDeal, fLedger: Double;
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  |    AColor := clWindow;
 | 
	
		
			
				|  |  |    if ACoord.Y > stdBillsMeasure.IDTree.Count + 1 then Exit;
 | 
	
	
		
			
				|  | @@ -268,21 +268,67 @@ begin
 | 
	
		
			
				|  |  |    // 叶子节点,累计合同计量超过0号台账,整行数据的底色变为暗红提示用户
 | 
	
		
			
				|  |  |    if TProjectData(FBillsMeasureData.ProjectData).ProjProperties.ShowOverRange and not stnNode.HasChildren then
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  | +   (*
 | 
	
		
			
				|  |  |      with stnNode.Rec do
 | 
	
		
			
				|  |  |      begin
 | 
	
		
			
				|  |  |        if CalcType.AsInteger = 0 then
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  | -        fDiffer := QuantityRoundTo(AddDealQuantity.AsFloat - Quantity.AsFloat);
 | 
	
		
			
				|  |  | +        if Quantity.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(AddDealQuantity.AsFloat - Quantity.AsFloat)
 | 
	
		
			
				|  |  | +        else if AddDealQuantity.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := 1
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(Quantity.AsFloat - AddDealQuantity.AsFloat);
 | 
	
		
			
				|  |  | +        // fDiffer := QuantityRoundTo(AddDealQuantity.AsFloat - Quantity.AsFloat);
 | 
	
		
			
				|  |  |          fCompare := TProjectData(FBillsMeasureData.ProjectData).ProjProperties.DecimalManager.Common.Quantity.CompareValue;
 | 
	
		
			
				|  |  |        end
 | 
	
		
			
				|  |  |        else
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  | -        fDiffer := TotalPriceRoundTo(AddDealTotalPrice.AsFloat - TotalPrice.AsFloat);
 | 
	
		
			
				|  |  | +        if TotalPrice.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(AddDealTotalPrice.AsFloat - TotalPrice.AsFloat)
 | 
	
		
			
				|  |  | +        else if AddDealTotalPrice.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := 1
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(TotalPrice.AsFloat - AddDealTotalPrice.AsFloat);
 | 
	
		
			
				|  |  | +        // fDiffer := TotalPriceRoundTo(TotalPrice.AsFloat - EndDealTotalPrice.AsFloat);
 | 
	
		
			
				|  |  |          fCompare := TProjectData(FBillsMeasureData.ProjectData).ProjProperties.DecimalManager.Common.TotalPrice.CompareValue;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |        if fDiffer > fCompare then
 | 
	
		
			
				|  |  |          AColor := $00646AFE;
 | 
	
		
			
				|  |  |      end;
 | 
	
		
			
				|  |  | +    *)
 | 
	
		
			
				|  |  | +    if (stnNode.Rec.CalcType.AsInteger > 0) then
 | 
	
		
			
				|  |  | +    begin
 | 
	
		
			
				|  |  | +      if Assigned(stnNode.StageRec) then
 | 
	
		
			
				|  |  | +      begin
 | 
	
		
			
				|  |  | +        if stnNode.Rec.Quantity.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(stnNode.StageRec.EndDealQuantity.AsFloat - stnNode.Rec.Quantity.AsFloat)
 | 
	
		
			
				|  |  | +        else if stnNode.StageRec.EndDealQuantity.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := 1
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(stnNode.Rec.Quantity.AsFloat - stnNode.StageRec.EndDealQuantity.AsFloat);
 | 
	
		
			
				|  |  | +        fCompare := TProjectData(FBillsMeasureData.ProjectData).ProjProperties.DecimalManager.Common.Quantity.CompareValue;
 | 
	
		
			
				|  |  | +      end
 | 
	
		
			
				|  |  | +      else
 | 
	
		
			
				|  |  | +        fDiffer := 0;
 | 
	
		
			
				|  |  | +    end
 | 
	
		
			
				|  |  | +    else
 | 
	
		
			
				|  |  | +    begin
 | 
	
		
			
				|  |  | +      if Assigned(stnNode.StageRec) then
 | 
	
		
			
				|  |  | +      begin
 | 
	
		
			
				|  |  | +        if stnNode.Rec.TotalPrice.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(stnNode.StageRec.EndDealTotalPrice.AsFloat - stnNode.Rec.TotalPrice.AsFloat)
 | 
	
		
			
				|  |  | +        else if stnNode.StageRec.EndDealTotalPrice.AsFloat > 0 then
 | 
	
		
			
				|  |  | +          fDiffer := 1
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          fDiffer := QuantityRoundTo(stnNode.Rec.TotalPrice.AsFloat - stnNode.StageRec.EndDealTotalPrice.AsFloat);
 | 
	
		
			
				|  |  | +        fCompare := TProjectData(FBillsMeasureData.ProjectData).ProjProperties.DecimalManager.Common.TotalPrice.CompareValue;
 | 
	
		
			
				|  |  | +      end
 | 
	
		
			
				|  |  | +      else
 | 
	
		
			
				|  |  | +        fDiffer := 0;
 | 
	
		
			
				|  |  | +    end;
 | 
	
		
			
				|  |  | +    if fDiffer > fCompare then
 | 
	
		
			
				|  |  | +      AColor := $00646AFE;
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |    if Assigned(stdBillsMeasure.IDTree.Selected) and (ACoord.Y = stdBillsMeasure.IDTree.Selected.MajorIndex + 2) then
 | 
	
		
			
				|  |  |      AColor := $00cdfaff;
 |