GatherProjInfo.pas 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. unit GatherProjInfo;
  2. interface
  3. uses
  4. sdIDTree, sdDB;
  5. type
  6. TGatherProjInfo = class
  7. private
  8. FProjectID: Integer;
  9. FProjectName: string;
  10. FFileName: string;
  11. FParentName: string;
  12. FTopParentName: string;
  13. FGatherPhase: Integer;
  14. FProjRec: TsdDataRecord;
  15. FProjType: Integer;
  16. function GetParentName(ANode: TsdIDTreeNode): string;
  17. function GetTopParentName(ANode: TsdIDTreeNode): string;
  18. public
  19. constructor Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer); virtual;
  20. destructor Destroy; override;
  21. property ProjectID: Integer read FProjectID;
  22. property ProjectName: string read FProjectName;
  23. property FileName: string read FFileName;
  24. property ParentName: string read FParentName;
  25. property TopParentName: string read FTopParentName;
  26. property GatherPhase: Integer read FGatherPhase;
  27. property ProjRec: TsdDataRecord read FProjRec;
  28. // 值为0 普通汇总项目,值非0 项目类型根据报表
  29. property ProjType: Integer read FProjType;
  30. end;
  31. TSelectProjInfo = class(TGatherProjInfo)
  32. private
  33. FIsTender: Boolean;
  34. public
  35. constructor Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer); override;
  36. property IsTender: Boolean read FIsTender;
  37. end;
  38. implementation
  39. { TGatherProjInfo }
  40. constructor TGatherProjInfo.Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer);
  41. begin
  42. FProjRec := ANode.Rec;
  43. if Assigned(ANode) and Assigned(ANode.Rec) then
  44. begin
  45. FProjectID := FProjRec.ValueByName('ID').AsInteger;
  46. FProjectName := FProjRec.ValueByName('Name').AsString;
  47. FFileName := FProjRec.ValueByName('FileName').AsString;
  48. FParentName := GetParentName(ANode);
  49. FTopParentName := GetTopParentName(ANode);
  50. end
  51. else
  52. FProjectID := -1;
  53. FGatherPhase := AGatherPhase;
  54. FProjType := AProjType;
  55. end;
  56. destructor TGatherProjInfo.Destroy;
  57. begin
  58. inherited;
  59. end;
  60. function TGatherProjInfo.GetParentName(ANode: TsdIDTreeNode): string;
  61. begin
  62. Result := '';
  63. if Assigned(ANode.Parent) and Assigned(ANode.Parent.Rec) then
  64. Result := ANode.Parent.Rec.ValueByName('Name').AsString;
  65. end;
  66. function TGatherProjInfo.GetTopParentName(ANode: TsdIDTreeNode): string;
  67. var
  68. vParent: TsdIDTreeNode;
  69. begin
  70. Result := '';
  71. vParent := ANode.Parent;
  72. while Assigned(vParent) and Assigned(vParent.Rec) do
  73. begin
  74. Result := vParent.Rec.ValueByName('Name').AsString;
  75. vParent := vParent.Parent;
  76. end;
  77. end;
  78. { TSelectProjInfo }
  79. constructor TSelectProjInfo.Create(ANode: TsdIDTreeNode; AGatherPhase: Integer; AProjType: Integer);
  80. begin
  81. inherited;
  82. FIsTender := FProjRec.ValueByName('Type').AsInteger = 1;
  83. end;
  84. end.