浏览代码

Bug #1595 树结构升级控制Bug

MaiXinRong 7 年之前
父节点
当前提交
a2cac9d1a4
共有 1 个文件被更改,包括 8 次插入14 次删除
  1. 8 14
      Units/BillsTree.pas

+ 8 - 14
Units/BillsTree.pas

@@ -172,15 +172,7 @@ function TBillsIDTree.CanDelete(ANode: TsdIDTreeNode): Boolean;
 begin
   Result := Inherited CanDelete(ANode)
             and ((ANode.ID >= 100) or (ANode.Level > 0))
-            and (not ANode.Rec.ValueByName('HisHasMeasure').AsBoolean)
-            and (not ANode.Rec.ValueByName('CurHasMeasure').AsBoolean)
-            //and (not ANode.Rec.ValueByName('LockedLevel').AsBoolean)
-            and (ANode.Rec.ValueByName('AddDealQuantity').AsFloat = 0)
-            and (ANode.Rec.ValueByName('AddDealTotalPrice').AsFloat = 0)
-            and (ANode.Rec.ValueByName('AddQcQuantity').AsFloat = 0)
-            and (ANode.Rec.ValueByName('AddQcTotalPrice').AsFloat = 0)
-            and (ANode.Rec.ValueByName('AddPcQuantity').AsFloat = 0)
-            and (ANode.Rec.ValueByName('AddPcTotalPrice').AsFloat = 0);
+            and (not TBillsIDTreeNode(ANode).HasMeasure);
 end;
 
 function TBillsIDTree.CreateItem: TsdIDTreeNode;
@@ -286,19 +278,19 @@ end;
 
 function TBillsIDTreeNode.CanUpLevel: Boolean;
 var
-  vNextSibling: TsdIDTreeNode;
+  vNextSibling: TBillsIDTreeNode;
 begin
   Result := Inherited CanUpLevel
             and (Level > 1)
             and (not Rec.ValueByName('LockedLevel').AsBoolean)
             and not HasMeasure;
 
-  vNextSibling := NextSibling;
+  vNextSibling := TBillsIDTreeNode(NextSibling);
   while Assigned(vNextSibling) and Result do
   begin
     Result := Result
-              and not TBillsIDTreeNode(NextSibling).HasMeasure;
-    vNextSibling := vNextSibling.NextSibling;
+              and not TBillsIDTreeNode(vNextSibling).HasMeasure;
+    vNextSibling := TBillsIDTreeNode(vNextSibling.NextSibling);
   end;
 end;
 
@@ -391,7 +383,9 @@ begin
             or (Rec.AddQcQuantity.AsFloat <> 0)
             or (Rec.AddQcTotalPrice.AsFloat <> 0)
             or (Rec.AddPcQuantity.AsFloat <> 0)
-            or (Rec.AddPcTotalPrice.AsFloat <> 0);
+            or (Rec.AddPcTotalPrice.AsFloat <> 0)
+            or (Rec.HisHasMeasure.AsBoolean)
+            or (Rec.CurHasMeasure.AsBoolean);
 end;
 
 function TBillsIDTreeNode.HasTotalPrice: Boolean;