Parcourir la source

Merge branch 'master' of http://192.168.1.41:3000/MaiXinRong/Measure

builder il y a 5 ans
Parent
commit
04ec3487a5
2 fichiers modifiés avec 55 ajouts et 29 suppressions
  1. 37 29
      Forms/ReportsFrm.pas
  2. 18 0
      Units/ReportManager.pas

+ 37 - 29
Forms/ReportsFrm.pas

@@ -123,7 +123,7 @@ type
 
     function AddClassNode(AParent: TExTreeNode; const AName: string): TExTreeNode;
     function GetClassNode(ANode: TTemplateNode): TExTreeNode;
-    function GetSubClassNode(AClassNode: TExTreeNode; ANode: TTemplateNode): TExTreeNode;
+    function GetSubClassNode(AParent: TExTreeNode; AName: string): TExTreeNode;
     procedure AddReportTemplate(ANode: TTemplateNode);
   	procedure LoadReportTemplets;
 
@@ -665,7 +665,15 @@ var
 begin
   vClassNode := GetClassNode(ANode);
   if ANode.SubClassNum <> '' then
-    vClassNode := GetSubClassNode(vClassNode, ANode);
+  begin
+    vClassNode := GetSubClassNode(vClassNode, ANode.SubClassNum + '.' + ANode.SubClassName);
+    if ANode.Class3Num <> '' then
+    begin
+      vClassNode := GetSubClassNode(vClassNode, ANode.Class3Num + '.' + ANode.Class3Name);
+      if ANode.Class4Num <> '' then
+        vClassNode := GetSubClassNode(vClassNode, ANode.Class4Num + '.' + ANode.Class4Name);
+    end;
+  end;
   vNode := extvReport.Items.AddChildObject(vClassNode, ANode.TemplateName, Pointer(ANode));
   vNode.ImageIndex := 2;
   vNode.SelectedIndex := 3;
@@ -1575,33 +1583,6 @@ begin
             'ÆóÒµQQ£º800003850   ¿Í·þÈÈÏߣº(0756)3850888';
 end;
 
-function TReportsForm.GetSubClassNode(AClassNode: TExTreeNode;
-  ANode: TTemplateNode): TExTreeNode;
-
-  function FindNode(AParent: TExTreeNode; const AName: string): TExTreeNode;
-  var
-    I: Integer;
-    vNode: TExTreeNode;
-  begin
-    Result := nil;
-    if Assigned(AParent) then
-      vNode := AParent.getFirstChild
-    else
-      vNode := extvReport.Items.GetFirstNode;
-    while not Assigned(Result) and Assigned(vNode) do
-    begin
-      if SameText(vNode.Text, AName) then
-        Result := vNode;
-      vNode := vNode.getNextSibling;
-    end;
-  end;
-
-begin
-  Result := FindNode(AClassNode, ANode.SubClassNum + '.' + ANode.SubClassName);
-  if not Assigned(Result) then
-    Result := AddClassNode(AClassNode, ANode.SubClassNum + '.' + ANode.SubClassName);
-end;
-
 function TReportsForm.AddClassNode(AParent: TExTreeNode;
   const AName: string): TExTreeNode;
 begin
@@ -1774,4 +1755,31 @@ begin
   end;
 end;
 
+function TReportsForm.GetSubClassNode(AParent: TExTreeNode;
+  AName: string): TExTreeNode;
+
+  function FindNode(AParent: TExTreeNode; const AName: string): TExTreeNode;
+  var
+    I: Integer;
+    vNode: TExTreeNode;
+  begin
+    Result := nil;
+    if Assigned(AParent) then
+      vNode := AParent.getFirstChild
+    else
+      vNode := extvReport.Items.GetFirstNode;
+    while not Assigned(Result) and Assigned(vNode) do
+    begin
+      if SameText(vNode.Text, AName) then
+        Result := vNode;
+      vNode := vNode.getNextSibling;
+    end;
+  end;  
+
+begin
+  Result := FindNode(AParent, AName);
+  if not Assigned(Result) then
+    Result := AddClassNode(AParent, AName);
+end;
+
 end.

+ 18 - 0
Units/ReportManager.pas

@@ -33,6 +33,11 @@ type
     FInteractFlag: Integer;
     FInteractSubFlag: Integer;
 
+    FClass3Num: string;
+    FClass3Name: string;
+    FClass4Num: string;
+    FClass4Name: string;
+
     FInteractInfo: TInteractInfo;
     FDataPrepareFlag: Integer;
     FDataBaseFlag: Integer;
@@ -57,6 +62,11 @@ type
     property ClassName: string read FClassName;
     property SubClassNum: string read FSubClassNum;
     property SubClassName: string read FSubClassName;
+    property Class3Num: string read FClass3Num;
+    property Class3Name: string read FClass3Name;
+    property Class4Num: string read FClass4Num;
+    property Class4Name: string read FClass4Name;
+
     property HasPriceChange: Boolean read FHasPriceChange;
     // 多表筛选
     property IsMulti: Boolean read FIsMulti;
@@ -291,6 +301,14 @@ begin
           FSubClassNum := sgs.Values[sgs.Names[I]]
         else if SameText(sgs.Names[I], '子分类名称') then
           FSubClassName := sgs.Values[sgs.Names[I]]
+        else if SameText(sgs.Names[I], '分类3') then
+          FClass3Num := sgs.Values[sgs.Names[I]]
+        else if SameText(sgs.Names[I], '分类3名称') then
+          FClass3Name := sgs.Values[sgs.Names[I]]
+        else if SameText(sgs.Names[I], '分类4') then
+          FClass4Num := sgs.Values[sgs.Names[I]]
+        else if SameText(sgs.Names[I], '分类4名称') then
+          FClass4Name := sgs.Values[sgs.Names[I]]
         else if SameText(sgs.Names[I], '含单价变更') then
           FHasPriceChange := SameText(sgs.Values[sgs.Names[I]], '是')
         else if SameText(sgs.Names[I], '多表筛选') then