|
@@ -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.
|