IHS00501F.cpp 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "ITSDbF.h"
  6. #include "AppGlobalF.h"
  7. #include "WindowMsgF.h"
  8. #include "ITSLangTransF.h"
  9. #include "ITS_OPLibF.h"
  10. #pragma hdrstop
  11. #include "IHS00501F.h"
  12. //---------------------------------------------------------------------------
  13. #pragma package(smart_init)
  14. #pragma link "FRAME_ChartF"
  15. #pragma link "cxButtons"
  16. #pragma link "cxCheckBox"
  17. #pragma link "cxClasses"
  18. #pragma link "cxContainer"
  19. #pragma link "cxControls"
  20. #pragma link "cxCustomData"
  21. #pragma link "cxData"
  22. #pragma link "cxDataStorage"
  23. #pragma link "cxEdit"
  24. #pragma link "cxFilter"
  25. #pragma link "cxGraphics"
  26. #pragma link "cxGrid"
  27. #pragma link "cxGridCustomTableView"
  28. #pragma link "cxGridCustomView"
  29. #pragma link "cxGridLevel"
  30. #pragma link "cxGridTableView"
  31. #pragma link "cxLabel"
  32. #pragma link "cxLookAndFeelPainters"
  33. #pragma link "cxLookAndFeels"
  34. #pragma link "cxStyles"
  35. #pragma link "cxTextEdit"
  36. #pragma link "dxSkinBlack"
  37. #pragma link "dxSkinBlue"
  38. #pragma link "dxSkinsCore"
  39. #pragma link "dxSkinscxPCPainter"
  40. #pragma link "dxSkinMcSkin"
  41. #pragma resource "*.dfm"
  42. TIHS00501 *IHS00501 = NULL;
  43. //---------------------------------------------------------------------------
  44. __fastcall TIHS00501::TIHS00501(TComponent* Owner, HWND hHandle, String sFacType, String sFrom, String sTo, String sIdList, String sTypeNm)
  45. : TForm(Owner)
  46. {
  47. LangTrans->Translate(this, ITSDb_GetConnection());
  48. ITSSkin_Load(this);
  49. CMM_LoadForm(g_sFormsDir, this);
  50. FParent = hHandle;
  51. FFacType = sFacType;
  52. FStDateTime = sFrom;
  53. FEdDateTime = sTo;
  54. FIdList = sIdList;
  55. FTypeNm = sTypeNm;
  56. }
  57. //---------------------------------------------------------------------------
  58. __fastcall TIHS00501::~TIHS00501(void)
  59. {
  60. }
  61. //--------------------------------------------------------------------------
  62. void __fastcall TIHS00501::FormInit()
  63. {
  64. ADOQry->Connection = ITSDb_GetConnection();
  65. m_pGDC = TvList->DataController;
  66. TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<시설물 장애내역 정보>";
  67. LblSearch->Caption = FrmLang->lblQryCond->Caption + FFacType + " (" + FStDateTime.SubString(1, 12) + " ~ " + FEdDateTime.SubString(1, 12) + ")";
  68. }
  69. //---------------------------------------------------------------------------
  70. void __fastcall TIHS00501::FormShow(TObject *Sender)
  71. {
  72. FormInit();
  73. Refresh();
  74. TmrShow->Enabled = true;
  75. }
  76. //---------------------------------------------------------------------------
  77. void __fastcall TIHS00501::CommClose()
  78. {
  79. CMM_SaveForm(g_sFormsDir, this);
  80. //IHS00501 = NULL;
  81. }
  82. //---------------------------------------------------------------------------
  83. void __fastcall TIHS00501::TmrShowTimer(TObject *Sender)
  84. {
  85. TmrShow->Enabled = false;
  86. Application->ProcessMessages();
  87. SelHistory();
  88. }
  89. //---------------------------------------------------------------------------
  90. void __fastcall TIHS00501::ChkExpandClick(TObject *Sender)
  91. {
  92. CMM_ExpandCollapseChk(TvList, ChkExpand->Checked);
  93. }
  94. //---------------------------------------------------------------------------
  95. void __fastcall TIHS00501::SelHistory()
  96. {
  97. TSqlCursor sqlCrs;
  98. String sQry;
  99. TADOQuery *pADO = ADOQry;
  100. //'20140713000000' AND '20140713235959'
  101. // int nLevel = StrToInt(FIdList);
  102. int nLevel = 0;
  103. if (FTypeNm == "CCTV") nLevel = 1;
  104. else if (FTypeNm == "VMS") nLevel = 2;
  105. else if (FTypeNm == "VDS") nLevel = 3;
  106. else if (FTypeNm == "AVI") nLevel = 4;
  107. else if (FTypeNm == "DSRC") nLevel = 5;
  108. else if (FTypeNm == FrmLang->lblWebCam->Caption) nLevel = 6;
  109. else if (FTypeNm == FrmLang->lblCrsCam->Caption) nLevel = 7;
  110. else if (FTypeNm == "주차장") nLevel = 8;
  111. else nLevel = 0; //전 체
  112. #if 0
  113. String cctv = "SELECT 'CCTV' AS FTYPE, A.CCTV_CTLR_NMBR AS MNGR_ID, A.CCTV_CTLR_ID AS FCLT_ID, \r\n"
  114. " A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  115. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  116. " FROM TB_CCTV_CTLR A, \r\n"
  117. " (SELECT CCTV_CTLR_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  118. " 'CDS0' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  119. " FROM TB_CCTV_CTLR_STTS_HS \r\n"
  120. " WHERE CRTN_DT BETWEEN :ctv1 AND :ctv2 \r\n"
  121. " AND (CONN_STTS_CD <> 'CMS0') \r\n"
  122. " ) B \r\n"
  123. " WHERE A.CCTV_CTLR_NMBR = B.CCTV_CTLR_NMBR \r\n";
  124. String vms = "SELECT 'VMS' AS FTYPE, A.VMS_CTLR_NMBR AS MNGR_ID, A.VMS_CTLR_ID AS FCLT_ID, \r\n"
  125. " A.VMS_NM AS FCLT_NM, \r\n"
  126. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  127. " FROM TB_VMS_CTLR A, \r\n"
  128. " (SELECT VMS_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  129. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT \r\n"
  130. " FROM TB_VMS_CTLR_STTS_HS \r\n"
  131. " WHERE CRTN_DT BETWEEN :vms1 AND :vms2 \r\n"
  132. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  133. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  134. " CBOX_TMPR > :vms3) \r\n"
  135. " ) B \r\n"
  136. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n";
  137. String vds = "SELECT 'VDS' AS FTYPE, A.VDS_CTLR_NMBR AS MNGR_ID, A.VDS_CTLR_ID AS FCLT_ID, \r\n"
  138. " A.VDS_NM AS FCLT_NM, \r\n"
  139. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  140. " FROM TB_VDS_CTLR A, \r\n"
  141. " (SELECT VDS_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  142. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  143. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  144. " FROM TB_VDS_CTLR_STTS_HS \r\n"
  145. " WHERE CRTN_DT BETWEEN :vds1 AND :vds2 \r\n"
  146. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  147. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  148. " CBOX_TMPR > :vds3) \r\n"
  149. " ) B \r\n"
  150. " WHERE A.VDS_CTLR_NMBR = B.VDS_CTLR_NMBR \r\n";
  151. String avi = "SELECT 'AVI' AS FTYPE, A.AVI_CTLR_MNGM_NMBR AS MNGR_ID, A.AVI_ID AS FCLT_ID, A.AVI_LCTN_NM AS FCLT_NM, \r\n"
  152. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  153. " FROM TB_AVI_CTLR A, \r\n"
  154. " (SELECT AVI_CTLR_MNGM_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  155. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  156. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  157. " WHERE CRTN_DT BETWEEN :avi1 AND :avi2 \r\n"
  158. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  159. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  160. " CBOX_TMPR > :avi3) \r\n"
  161. " ) B \r\n"
  162. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n";
  163. String dsrc = "SELECT 'DSRC' AS FTYPE, A.ID AS MNGR_ID, A.RSE_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  164. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CLCT_DT AS COLL_DT \r\n"
  165. " FROM TB_RSE_MSTR A, \r\n"
  166. " (SELECT ID, 'CMS'||CMNC_STTS AS CONN_STTS_CD, \r\n"
  167. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT \r\n"
  168. " FROM TB_RSE_STTS_HS \r\n"
  169. " WHERE CLCT_DT BETWEEN :dsrc1 AND :dsrc2 \r\n"
  170. " AND (CMNC_STTS <> '0') \r\n"
  171. " ) B \r\n"
  172. " WHERE A.ID = B.ID \r\n";
  173. #ifdef USE_WEB_CMRA
  174. String wcam = "SELECT '웹카메라' AS FTYPE, A.WEB_CMRA_NMBR AS MNGR_ID, A.WEB_CMRA_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  175. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  176. " FROM TB_WEB_CMRA A, \r\n"
  177. " (SELECT WEB_CMRA_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  178. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  179. " FROM TB_WEB_CMRA_STTS_HS \r\n"
  180. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  181. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  182. " ) B \r\n"
  183. " WHERE A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR \r\n";
  184. #else
  185. String wcam = "SELECT '웹카메라' AS FTYPE, A.WCAM_CTLR_NMBR AS MNGR_ID, A.WCAM_CTLR_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  186. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  187. " FROM TB_WCAM_CTLR A, \r\n"
  188. " (SELECT WCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  189. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  190. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  191. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  192. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  193. " ) B \r\n"
  194. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n";
  195. #endif
  196. String ccam = "SELECT '교차로감시' AS FTYPE, A.CCAM_CTLR_NMBR AS MNGR_ID, A.CCAM_CTLR_ID AS FCLT_ID, \r\n"
  197. " A.CCAM_NM AS FCLT_NM, \r\n"
  198. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  199. " FROM TB_CCAM_CTLR A, \r\n"
  200. " (SELECT CCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  201. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  202. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  203. " FROM TB_CCAM_CTLR_STTS_HS \r\n"
  204. " WHERE CRTN_DT BETWEEN :ccam1 AND :ccam2 \r\n"
  205. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  206. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  207. " CBOX_TMPR > :ccam3) \r\n"
  208. " ) B \r\n"
  209. " WHERE A.CCAM_CTLR_NMBR = B.CCAM_CTLR_NMBR \r\n";
  210. String park = "SELECT '주차장' AS FTYPE, A.PRLT_CTLR_NMBR AS MNGR_ID, A.PRLT_CTLR_ID AS FCLT_ID, A.PRLT_NM AS FCLT_NM, \r\n"
  211. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  212. " FROM TB_PRLT_CTLR A, \r\n"
  213. " (SELECT PRLT_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  214. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  215. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  216. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  217. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  218. " ) B \r\n"
  219. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  220. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n";
  221. #else
  222. //TODO: GUMI
  223. String cctv = "SELECT 'CCTV' AS FTYPE, A.CCTV_MNGM_NMBR||CHR(0) AS MNGR_ID, A.CCTV_CTLR_ID AS FCLT_ID, \r\n"
  224. " A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  225. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  226. " FROM TB_CCTV_CTLR A, \r\n"
  227. " (SELECT CCTV_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  228. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT \r\n"
  229. " FROM TB_CCTV_STTS_HS \r\n"
  230. " WHERE CRTN_DT BETWEEN :ctv1 AND :ctv2 \r\n"
  231. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  232. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  233. " CBOX_TMPR > :ctv3) \r\n"
  234. " ) B \r\n"
  235. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n";
  236. String vms = "SELECT 'VMS' AS FTYPE, A.VMS_CTLR_NMBR||CHR(0) AS MNGR_ID, A.VMS_CTLR_ID AS FCLT_ID, \r\n"
  237. " A.VMS_NM AS FCLT_NM, \r\n"
  238. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.RGST_DT AS COLL_DT \r\n"
  239. " FROM TB_VMS_CTLR A, \r\n"
  240. " (SELECT VMS_CTLR_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  241. " CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, RGST_DT \r\n"
  242. " FROM TB_VMS_STTS_HS \r\n"
  243. " WHERE RGST_DT BETWEEN :vms1 AND :vms2 \r\n"
  244. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  245. " CBOXDOOR_OPEN_STTS_CD <> 'CDS0' OR \r\n"
  246. " CBOX_TMPR > :vms3) \r\n"
  247. " ) B \r\n"
  248. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n";
  249. String vds = "SELECT 'VDS' AS FTYPE, A.VDS_CTLR_NMBR||CHR(0) AS MNGR_ID, A.VDS_CTLR_ID AS FCLT_ID, \r\n"
  250. " A.VDS_NM AS FCLT_NM, \r\n"
  251. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  252. " FROM TB_VDS_CTLR A, \r\n"
  253. " (SELECT VDS_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  254. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  255. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  256. " FROM TB_VDS_CTLR_STTS_HS \r\n"
  257. " WHERE CRTN_DT BETWEEN :vds1 AND :vds2 \r\n"
  258. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  259. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  260. " CBOX_TMPR > :vds3) \r\n"
  261. " ) B \r\n"
  262. " WHERE A.VDS_CTLR_NMBR = B.VDS_CTLR_NMBR \r\n";
  263. String avi = "SELECT 'AVI' AS FTYPE, A.AVI_CTLR_MNGM_NMBR AS MNGR_ID, A.AVI_ID AS FCLT_ID, A.AVI_LCTN_NM AS FCLT_NM, \r\n"
  264. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  265. " FROM TB_AVI_CTLR A, \r\n"
  266. " (SELECT AVI_CTLR_MNGM_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  267. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  268. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  269. " WHERE CRTN_DT BETWEEN :avi1 AND :avi2 \r\n"
  270. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  271. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  272. " CBOX_TMPR > :avi3) \r\n"
  273. " ) B \r\n"
  274. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n";
  275. String dsrc = "SELECT 'DSRC' AS FTYPE, A.ID AS MNGR_ID, A.RSE_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  276. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CLCT_DT AS COLL_DT \r\n"
  277. " FROM TB_RSE_MSTR A, \r\n"
  278. " (SELECT ID, 'CMS'||CMNC_STTS AS CONN_STTS_CD, \r\n"
  279. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT \r\n"
  280. " FROM TB_RSE_STTS_HS \r\n"
  281. " WHERE CLCT_DT BETWEEN :dsrc1 AND :dsrc2 \r\n"
  282. " AND (CMNC_STTS <> '0') \r\n"
  283. " ) B \r\n"
  284. " WHERE A.ID = B.ID \r\n";
  285. #ifdef USE_WEB_CMRA
  286. String wcam = "SELECT '웹카메라' AS FTYPE, A.WEB_CMRA_NMBR||CHR(0) AS MNGR_ID, A.WEB_CMRA_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  287. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  288. " FROM TB_WEB_CMRA A, \r\n"
  289. " (SELECT WEB_CMRA_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  290. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  291. " FROM TB_WEB_CMRA_STTS_HS \r\n"
  292. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  293. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  294. " ) B \r\n"
  295. " WHERE A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR \r\n";
  296. #else
  297. String wcam = "SELECT '웹카메라' AS FTYPE, A.WCAM_CTLR_NMBR||CHR(0) AS MNGR_ID, A.WCAM_CTLR_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  298. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  299. " FROM TB_WCAM_CTLR A, \r\n"
  300. " (SELECT WCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  301. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  302. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  303. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  304. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  305. " ) B \r\n"
  306. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n";
  307. #endif
  308. String ccam = "SELECT '교차로감시' AS FTYPE, A.CCAM_CTLR_NMBR AS MNGR_ID, A.CCAM_CTLR_ID AS FCLT_ID, \r\n"
  309. " A.CCAM_NM AS FCLT_NM, \r\n"
  310. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  311. " FROM TB_CCAM_CTLR A, \r\n"
  312. " (SELECT CCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  313. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  314. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  315. " FROM TB_CCAM_CTLR_STTS_HS \r\n"
  316. " WHERE CRTN_DT BETWEEN :ccam1 AND :ccam2 \r\n"
  317. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  318. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  319. " CBOX_TMPR > :ccam3) \r\n"
  320. " ) B \r\n"
  321. " WHERE A.CCAM_CTLR_NMBR = B.CCAM_CTLR_NMBR \r\n";
  322. String park = "SELECT '주차장' AS FTYPE, A.PRLT_CTLR_NMBR AS MNGR_ID, A.PRLT_CTLR_ID AS FCLT_ID, A.PRLT_NM AS FCLT_NM, \r\n"
  323. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  324. " FROM TB_PRLT_CTLR A, \r\n"
  325. " (SELECT PRLT_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  326. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  327. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  328. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  329. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  330. " ) B \r\n"
  331. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  332. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n";
  333. #endif
  334. switch(nLevel)
  335. {
  336. case 0:
  337. Column03->Visible = true;
  338. Column04->Visible = true;
  339. Column05->Visible = true;
  340. sQry = "SELECT '' AS FTYPE, '' AS MNGR_ID, '' AS FCLT_ID, '' AS FCLT_NM, \r\n"
  341. " '' AS CONN_STTS_CD, '' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, '' AS COLL_DT \r\n"
  342. " FROM DUAL WHERE 1 = 0 \r\n";
  343. #ifdef USE_CCTV
  344. sQry += "UNION ALL \r\n";
  345. sQry += cctv;
  346. #endif
  347. #ifdef USE_VMS
  348. sQry += "UNION ALL \r\n";
  349. sQry += vms;
  350. #endif
  351. #ifdef USE_VDS
  352. sQry += "UNION ALL \r\n";
  353. sQry += vds;
  354. #endif
  355. #ifdef USE_AVI
  356. sQry += "UNION ALL \r\n";
  357. sQry += avi;
  358. #endif
  359. #ifdef USE_DSRC
  360. sQry += "UNION ALL \r\n";
  361. sQry += dsrc;
  362. #endif
  363. #ifdef USE_WCAM
  364. sQry += "UNION ALL \r\n";
  365. sQry += wcam;
  366. #endif
  367. #ifdef USE_CCAM
  368. sQry += "UNION ALL \r\n";
  369. sQry += ccam;
  370. #endif
  371. #ifdef USE_PARKx
  372. sQry += "UNION ALL \r\n";
  373. sQry += park;
  374. #endif
  375. break;
  376. case 1: //CCTV
  377. Column03->Visible = true;
  378. Column04->Visible = true;
  379. Column05->Visible = true;
  380. sQry = cctv;
  381. break;
  382. case 2: //VMS
  383. Column03->Visible = true;
  384. Column04->Visible = true;
  385. Column05->Visible = true;
  386. sQry = vms;
  387. break;
  388. case 3: //VDS
  389. Column03->Visible = true;
  390. Column04->Visible = true;
  391. Column05->Visible = true;
  392. sQry = vds;
  393. break;
  394. case 4: //AVI
  395. Column03->Visible = true;
  396. //Column04->Visible = true;
  397. //Column05->Visible = true;
  398. sQry = avi;
  399. break;
  400. case 5: //DSRC
  401. Column03->Visible = true;
  402. Column04->Visible = false;
  403. Column05->Visible = false;
  404. sQry = dsrc;
  405. break;
  406. case 6: //웹카메라
  407. Column03->Visible = true;
  408. Column04->Visible = false;
  409. Column05->Visible = false;
  410. sQry = wcam;
  411. break;
  412. case 7: //교차로감시카메라
  413. Column03->Visible = true;
  414. //Column04->Visible = true;
  415. //Column05->Visible = true;
  416. sQry = ccam;
  417. break;
  418. case 8: //주차장
  419. Column03->Visible = true;
  420. Column04->Visible = false;
  421. Column05->Visible = false;
  422. sQry = wcam;
  423. break;
  424. default: return;
  425. }
  426. try
  427. {
  428. ITSDb_SQLText(pADO, sQry);
  429. switch(nLevel)
  430. {
  431. case 0:
  432. #ifdef USE_CCTV
  433. ITSDb_SQLBind(pADO, "ctv1", FStDateTime);
  434. ITSDb_SQLBind(pADO, "ctv2", FEdDateTime);
  435. ITSDb_SQLBind(pADO, "ctv3", g_AppCfg.Temp.AlarmValue);
  436. #endif
  437. #ifdef USE_VMS
  438. ITSDb_SQLBind(pADO, "vms1", FStDateTime);
  439. ITSDb_SQLBind(pADO, "vms2", FEdDateTime);
  440. ITSDb_SQLBind(pADO, "vms3", g_AppCfg.Temp.AlarmValue);
  441. #endif
  442. #ifdef USE_VDS
  443. ITSDb_SQLBind(pADO, "vds1", FStDateTime);
  444. ITSDb_SQLBind(pADO, "vds2", FEdDateTime);
  445. ITSDb_SQLBind(pADO, "vds3", g_AppCfg.Temp.AlarmValue);
  446. #endif
  447. #ifdef USE_AVI
  448. ITSDb_SQLBind(pADO, "avi1", FStDateTime);
  449. ITSDb_SQLBind(pADO, "avi2", FEdDateTime);
  450. ITSDb_SQLBind(pADO, "avi3", g_AppCfg.Temp.AlarmValue);
  451. #endif
  452. #ifdef USE_DSRC
  453. ITSDb_SQLBind(pADO, "dsrc1", FStDateTime);
  454. ITSDb_SQLBind(pADO, "dsrc2", FEdDateTime);
  455. #endif
  456. #ifdef USE_WCAM
  457. ITSDb_SQLBind(pADO, "wcam1", FStDateTime);
  458. ITSDb_SQLBind(pADO, "wcam2", FEdDateTime);
  459. #endif
  460. #ifdef USE_CCAM
  461. ITSDb_SQLBind(pADO, "ccam1", FStDateTime);
  462. ITSDb_SQLBind(pADO, "ccam2", FEdDateTime);
  463. ITSDb_SQLBind(pADO, "ccam3", g_AppCfg.Temp.AlarmValue);
  464. #endif
  465. #ifdef USE_PARKx
  466. ITSDb_SQLBind(pADO, "park1", FStDateTime);
  467. ITSDb_SQLBind(pADO, "park2", FEdDateTime);
  468. #endif
  469. break;
  470. case 1:
  471. ITSDb_SQLBind(pADO, "ctv1", FStDateTime);
  472. ITSDb_SQLBind(pADO, "ctv2", FEdDateTime);
  473. ITSDb_SQLBind(pADO, "ctv3", g_AppCfg.Temp.AlarmValue);
  474. break;
  475. case 2:
  476. ITSDb_SQLBind(pADO, "vms1", FStDateTime);
  477. ITSDb_SQLBind(pADO, "vms2", FEdDateTime);
  478. ITSDb_SQLBind(pADO, "vms3", g_AppCfg.Temp.AlarmValue);
  479. break;
  480. case 3:
  481. ITSDb_SQLBind(pADO, "vds1", FStDateTime);
  482. ITSDb_SQLBind(pADO, "vds2", FEdDateTime);
  483. ITSDb_SQLBind(pADO, "vds3", g_AppCfg.Temp.AlarmValue);
  484. break;
  485. case 4:
  486. ITSDb_SQLBind(pADO, "avi1", FStDateTime);
  487. ITSDb_SQLBind(pADO, "avi2", FEdDateTime);
  488. ITSDb_SQLBind(pADO, "avi3", g_AppCfg.Temp.AlarmValue);
  489. break;
  490. case 5:
  491. ITSDb_SQLBind(pADO, "dsrc1", FStDateTime);
  492. ITSDb_SQLBind(pADO, "dsrc2", FEdDateTime);
  493. break;
  494. case 6:
  495. ITSDb_SQLBind(pADO, "wcam1", FStDateTime);
  496. ITSDb_SQLBind(pADO, "wcam2", FEdDateTime);
  497. break;
  498. case 7:
  499. ITSDb_SQLBind(pADO, "ccam1", FStDateTime);
  500. ITSDb_SQLBind(pADO, "ccam2", FEdDateTime);
  501. ITSDb_SQLBind(pADO, "ccam3", g_AppCfg.Temp.AlarmValue);
  502. break;
  503. case 8:
  504. ITSDb_SQLBind(pADO, "park1", FStDateTime);
  505. ITSDb_SQLBind(pADO, "park2", FEdDateTime);
  506. break;
  507. }
  508. ITSDb_SQLOpen(pADO);
  509. DspHistory();
  510. }
  511. catch(EDatabaseError &E)
  512. {
  513. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  514. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  515. throw Exception(String(E.ClassName()) + E.Message);
  516. }
  517. catch(Exception &exception)
  518. {
  519. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  520. DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry);
  521. throw Exception(String(exception.ClassName()) + exception.Message);
  522. }
  523. }
  524. //---------------------------------------------------------------------------
  525. void __fastcall TIHS00501::DspHistory()
  526. {
  527. TADOQuery *pADO = ADOQry;
  528. try
  529. {
  530. CMM_ClearGridTableView(TvList);
  531. m_pGDC = TvList->DataController;
  532. int nRow = 0;
  533. int nDataCnt = 0;
  534. try {
  535. TvList->BeginUpdate();
  536. nDataCnt = pADO->RecordCount;
  537. m_pGDC->RecordCount = nDataCnt;
  538. for( ; !pADO->Eof; pADO->Next(), nRow++)
  539. {
  540. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FTYPE")->AsString;
  541. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  542. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_NM")->AsString;
  543. m_pGDC->Values[nRow][Column06->Index] = ITSUtil_StrToTime(pADO->FieldByName("COLL_DT")->AsString);
  544. String sConn = pADO->FieldByName("CONN_STTS_CD")->AsString;
  545. String sDoor = pADO->FieldByName("DOOR_STTS_CD")->AsString;
  546. if (sConn == "CMS0") sConn = FrmLang->lblCMS0->Caption;//"정상";
  547. else if (sConn == "CMS1") sConn = FrmLang->lblCMS1->Caption;//"통신두절";
  548. else if (sConn == "-") sConn = "-";
  549. else sConn = FrmLang->lblNull->Caption;//"정보없음";
  550. if (sDoor == "CDS0") sDoor = FrmLang->lblCDS0->Caption;//"정상";
  551. else if (sDoor == "CDS1") sDoor = FrmLang->lblCDS1->Caption;//"열림";
  552. else if (sDoor == "-") sDoor = "-";
  553. else sDoor = FrmLang->lblNull->Caption;//"정보없음";
  554. m_pGDC->Values[nRow][Column03->Index] = sConn;
  555. m_pGDC->Values[nRow][Column04->Index] = sDoor;
  556. m_pGDC->Values[nRow][Column05->Index] = pADO->FieldByName("CBOX_TMPR")->AsString;
  557. }
  558. }
  559. __finally
  560. {
  561. if (pADO)
  562. {
  563. pADO->Close();
  564. }
  565. TvList->EndUpdate();
  566. //CxList->SetFocus();
  567. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  568. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  569. Application->MessageBox(sEnd.c_str(),
  570. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  571. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  572. }
  573. }
  574. catch(EDatabaseError &E)
  575. {
  576. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  577. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  578. throw Exception(String(E.ClassName()) + E.Message);
  579. }
  580. catch(Exception &e)
  581. {
  582. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  583. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  584. throw Exception(String(e.ClassName()) + e.Message);
  585. }
  586. }
  587. //---------------------------------------------------------------------------
  588. void __fastcall TIHS00501::OnMessage(TMessage &Msg)
  589. {
  590. switch (Msg.Msg)
  591. {
  592. case WM_PARAM_DATABASE:
  593. if (WP_DB_SELECT_OK == Msg.WParam)
  594. {
  595. //ShowMessage("Select Ok");
  596. }
  597. break;
  598. }
  599. }
  600. //---------------------------------------------------------------------------
  601. void __fastcall TIHS00501::BtnExlSaveClick(TObject *Sender)
  602. {
  603. TcxGrid *pGrid = CxList;
  604. TcxGridTableView *pView = TvList;
  605. String sTitle= Caption;//"시설물 장애내역";
  606. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  607. }
  608. //---------------------------------------------------------------------------
  609. void __fastcall TIHS00501::FormClose(TObject *Sender, TCloseAction &Action)
  610. {
  611. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  612. CommClose();
  613. //IHS00501 = NULL;
  614. }
  615. //---------------------------------------------------------------------------
  616. void __fastcall TIHS00501::FormDestroy(TObject *Sender)
  617. {
  618. CommClose();
  619. }
  620. //---------------------------------------------------------------------------
  621. void __fastcall TIHS00501::Column03CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  622. bool &ADone)
  623. {
  624. if (AViewInfo)
  625. {
  626. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  627. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column03->Index])) return;
  628. String sConn = AViewInfo->GridRecord->DisplayTexts[Column03->Index];
  629. if (sConn == FrmLang->lblCMS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  630. else if (sConn == FrmLang->lblCMS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  631. else if (sConn == "-") ACanvas->Canvas->Brush->Color = clSilver;
  632. else ACanvas->Canvas->Brush->Color = clSilver;
  633. }
  634. }
  635. //---------------------------------------------------------------------------
  636. void __fastcall TIHS00501::Column04CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  637. bool &ADone)
  638. {
  639. if (AViewInfo)
  640. {
  641. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  642. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column04->Index])) return;
  643. String sDoor = AViewInfo->GridRecord->DisplayTexts[Column04->Index];
  644. if (sDoor == FrmLang->lblCDS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  645. else if (sDoor == FrmLang->lblCDS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  646. else if (sDoor == "-") ACanvas->Canvas->Brush->Color = clSilver;
  647. else ACanvas->Canvas->Brush->Color = clSilver;
  648. }
  649. }
  650. //---------------------------------------------------------------------------
  651. void __fastcall TIHS00501::Column05CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  652. bool &ADone)
  653. {
  654. //if (Column05->Visible == false) return;
  655. if (AViewInfo)
  656. {
  657. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  658. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column05->Index])) return;
  659. String sValue = AViewInfo->GridRecord->DisplayTexts[Column05->Index];
  660. int nValue = 0;
  661. if (TryStrToInt(sValue, nValue))
  662. {
  663. if (nValue > g_AppCfg.Temp.AlarmValue)
  664. {
  665. ACanvas->Canvas->Brush->Color = clRed;
  666. //ACanvas->Canvas->Font->Color = clBlack;
  667. }
  668. else
  669. {
  670. ACanvas->Canvas->Brush->Color = clLime;
  671. }
  672. }
  673. }
  674. }
  675. //---------------------------------------------------------------------------