CDSNodeF.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. //---------------------------------------------------------------------------
  2. #ifndef CDSNodeFH
  3. #define CDSNodeFH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <ADODB.hpp>
  7. #include <DB.hpp>
  8. #include "cxCustomData.hpp"
  9. #include "LibSTLF.hpp"
  10. #include "ITSDbF.h"
  11. //---------------------------------------------------------------------------
  12. /*
  13. * Node class
  14. */
  15. class TItsNode
  16. {
  17. public:
  18. TItsNode();
  19. TItsNode(String AId);
  20. virtual ~TItsNode();
  21. void Clear();
  22. private:
  23. bool FModified;
  24. bool FCompleted;
  25. public:
  26. String FNODE_ID;
  27. String FNODE_TYPE;
  28. String FNODE_NAME;
  29. String FTURN_P;
  30. String FRMRK;
  31. String FX_CRDN;
  32. String FY_CRDN;
  33. void SetValue(String &AOrgValue, String AValue);
  34. protected:
  35. void SetFNODE_ID(String AValue);
  36. void SetFNODE_TYPE(String AValue);
  37. void SetFNODE_NAME(String AValue);
  38. void SetFTURN_P(String AValue);
  39. void SetFRMRK(String AValue);
  40. void SetFX_CRDN(String AValue);
  41. void SetFY_CRDN(String AValue);
  42. public:
  43. __property bool Modified = {read = FModified};
  44. __property bool Completed = {read = FCompleted, write = FCompleted};
  45. __property String NODE_ID = {read = FNODE_ID, write = SetFNODE_ID};
  46. __property String NODE_TYPE = {read = FNODE_TYPE, write = SetFNODE_TYPE};
  47. __property String NODE_NAME = {read = FNODE_NAME, write = SetFNODE_NAME};
  48. __property String TURN_P = {read = FTURN_P, write = SetFTURN_P};
  49. __property String RMRK = {read = FRMRK, write = SetFRMRK};
  50. __property String X_CRDN = {read = FX_CRDN, write = SetFX_CRDN};
  51. __property String Y_CRDN = {read = FY_CRDN, write = SetFY_CRDN};
  52. /*
  53. NODE_ID NUMBER(10) NOT NULL, COMMENT ON COLUMN ITSDBA.TB_NODE.NODE_ID IS '노드ID';
  54. NODE_TYPE VARCHAR(3 BYTE), COMMENT ON COLUMN ITSDBA.TB_NODE.NODE_TYPE IS '노드유형';
  55. NODE_NAME VARCHAR(100 BYTE), COMMENT ON COLUMN ITSDBA.TB_NODE.NODE_NAME IS '교차로명칭';
  56. TURN_P VARCHAR(1 BYTE), COMMENT ON COLUMN ITSDBA.TB_NODE.TURN_P IS '회전제한유무';
  57. RMRK VARCHAR(50 BYTE), COMMENT ON COLUMN ITSDBA.TB_NODE.RMRK IS '비고';
  58. X_CRDN NUMBER(11,8), COMMENT ON COLUMN ITSDBA.TB_NODE.X_CRDN IS 'X 좌표';
  59. Y_CRDN NUMBER(10,8) COMMENT ON COLUMN ITSDBA.TB_NODE.Y_CRDN IS 'Y 좌표';
  60. # NODE_ID NODE_TYPE NODE_NAME TURN_P RMRK X_CRDN Y_CRDN
  61. 1 2320043900 101 양촌산업단지22 0 126.62275095 37.61717415
  62. */
  63. };
  64. //---------------------------------------------------------------------------
  65. /*
  66. * Node List class
  67. */
  68. class TItsNodeList
  69. {
  70. public:
  71. TItsNodeList();
  72. ~TItsNodeList();
  73. private:
  74. TList *FList;
  75. void ReleaseAll();
  76. void Release(int AIndex);
  77. TItsNode *GetNode(int AIndex);
  78. int GetCount();
  79. public:
  80. void Clear();
  81. int Add(TItsNode *AItsNode);
  82. void Delete(int AIndex);
  83. void Insert(int AIndex, TItsNode *AItsNode);
  84. __property TItsNode *Node[int Index] = {read = GetNode};
  85. __property int Count = {read = GetCount};
  86. };
  87. //---------------------------------------------------------------------------
  88. /*
  89. * NODE CDS
  90. */
  91. class TCDSNode : public TcxCustomDataSource
  92. {
  93. public:
  94. TCDSNode(TItsNodeList *AList);
  95. private:
  96. TItsNodeList *FNodes;
  97. bool FModified;
  98. protected:
  99. void *__fastcall AppendRecord(void);
  100. void *__fastcall InsertRecord(void * ARecordHandle);
  101. void __fastcall DeleteRecord(void * ARecordHandle);
  102. int __fastcall GetRecordCount(void);
  103. Variant __fastcall GetValue(void * ARecordHandle, void * AItemHandle);
  104. void __fastcall SetValue(void * ARecordHandle, void * AItemHandle, const Variant &AValue);
  105. public:
  106. __property bool Modified = {read = FModified};
  107. };
  108. //---------------------------------------------------------------------------
  109. /*
  110. * Node Manager
  111. */
  112. class TItsNodeManager
  113. {
  114. public:
  115. TItsNodeManager();
  116. virtual ~TItsNodeManager();
  117. public:
  118. ListMap<TItsNode> FLists;
  119. public:
  120. bool LoadFromDb(TADOConnection *ADbConn=NULL);
  121. };
  122. //---------------------------------------------------------------------------
  123. extern TItsNodeManager *ItsNodeManager;
  124. //---------------------------------------------------------------------------
  125. #endif