|
@@ -3,7 +3,7 @@ unit GatherProjInfo;
|
|
|
interface
|
|
|
|
|
|
uses
|
|
|
- sdDB;
|
|
|
+ sdIDTree, sdDB;
|
|
|
|
|
|
type
|
|
|
TGatherProjInfo = class
|
|
@@ -11,16 +11,25 @@ type
|
|
|
FProjectID: Integer;
|
|
|
FProjectName: string;
|
|
|
FFileName: string;
|
|
|
+ FParentName: string;
|
|
|
+ FTopParentName: string;
|
|
|
+ FGatherPhase: Integer;
|
|
|
|
|
|
FProjRec: TsdDataRecord;
|
|
|
FProjType: Integer;
|
|
|
+
|
|
|
+ function GetParentName(ANode: TsdIDTreeNode): string;
|
|
|
+ function GetTopParentName(ANode: TsdIDTreeNode): string;
|
|
|
public
|
|
|
- constructor Create(ARec: TsdDataRecord; AProjType: Integer); virtual;
|
|
|
+ constructor Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer); virtual;
|
|
|
destructor Destroy; override;
|
|
|
|
|
|
property ProjectID: Integer read FProjectID;
|
|
|
property ProjectName: string read FProjectName;
|
|
|
property FileName: string read FFileName;
|
|
|
+ property ParentName: string read FParentName;
|
|
|
+ property TopParentName: string read FTopParentName;
|
|
|
+ property GatherPhase: Integer read FGatherPhase;
|
|
|
|
|
|
property ProjRec: TsdDataRecord read FProjRec;
|
|
|
// 值为0 普通汇总项目,值非0 项目类型根据报表
|
|
@@ -31,7 +40,7 @@ type
|
|
|
private
|
|
|
FIsTender: Boolean;
|
|
|
public
|
|
|
- constructor Create(ARec: TsdDataRecord; AProjType: Integer); override;
|
|
|
+ constructor Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer); override;
|
|
|
|
|
|
property IsTender: Boolean read FIsTender;
|
|
|
end;
|
|
@@ -40,17 +49,20 @@ implementation
|
|
|
|
|
|
{ TGatherProjInfo }
|
|
|
|
|
|
-constructor TGatherProjInfo.Create(ARec: TsdDataRecord; AProjType: Integer);
|
|
|
+constructor TGatherProjInfo.Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer);
|
|
|
begin
|
|
|
- FProjRec := ARec;
|
|
|
- if Assigned(FProjRec) then
|
|
|
+ FProjRec := ANode.Rec;
|
|
|
+ if Assigned(ANode) and Assigned(ANode.Rec) then
|
|
|
begin
|
|
|
FProjectID := FProjRec.ValueByName('ID').AsInteger;
|
|
|
FProjectName := FProjRec.ValueByName('Name').AsString;
|
|
|
FFileName := FProjRec.ValueByName('FileName').AsString;
|
|
|
+ FParentName := GetParentName(ANode);
|
|
|
+ FTopParentName := GetTopParentName(ANode);
|
|
|
end
|
|
|
else
|
|
|
FProjectID := -1;
|
|
|
+ FGatherPhase := AGatherPhase;
|
|
|
FProjType := AProjType;
|
|
|
end;
|
|
|
|
|
@@ -59,9 +71,29 @@ begin
|
|
|
inherited;
|
|
|
end;
|
|
|
|
|
|
+function TGatherProjInfo.GetParentName(ANode: TsdIDTreeNode): string;
|
|
|
+begin
|
|
|
+ Result := '';
|
|
|
+ if Assigned(ANode.Parent) and Assigned(ANode.Parent.Rec) then
|
|
|
+ Result := ANode.Parent.Rec.ValueByName('Name').AsString;
|
|
|
+end;
|
|
|
+
|
|
|
+function TGatherProjInfo.GetTopParentName(ANode: TsdIDTreeNode): string;
|
|
|
+var
|
|
|
+ vParent: TsdIDTreeNode;
|
|
|
+begin
|
|
|
+ Result := '';
|
|
|
+ vParent := ANode.Parent;
|
|
|
+ while Assigned(vParent) and Assigned(vParent.Rec) do
|
|
|
+ begin
|
|
|
+ Result := vParent.Rec.ValueByName('Name').AsString;
|
|
|
+ vParent := vParent.Parent;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
{ TSelectProjInfo }
|
|
|
|
|
|
-constructor TSelectProjInfo.Create(ARec: TsdDataRecord; AProjType: Integer);
|
|
|
+constructor TSelectProjInfo.Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer);
|
|
|
begin
|
|
|
inherited;
|
|
|
FIsTender := FProjRec.ValueByName('Type').AsInteger = 1;
|