IHS00501F.cpp 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  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. 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"
  174. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  175. " FROM TB_WCAM_CTLR A, \r\n"
  176. " (SELECT WCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  177. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  178. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  179. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  180. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  181. " ) B \r\n"
  182. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n";
  183. String ccam = "SELECT '교차로감시' AS FTYPE, A.CCAM_CTLR_NMBR AS MNGR_ID, A.CCAM_CTLR_ID AS FCLT_ID, \r\n"
  184. " A.CCAM_NM AS FCLT_NM, \r\n"
  185. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  186. " FROM TB_CCAM_CTLR A, \r\n"
  187. " (SELECT CCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  188. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  189. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  190. " FROM TB_CCAM_CTLR_STTS_HS \r\n"
  191. " WHERE CRTN_DT BETWEEN :ccam1 AND :ccam2 \r\n"
  192. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  193. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  194. " CBOX_TMPR > :ccam3) \r\n"
  195. " ) B \r\n"
  196. " WHERE A.CCAM_CTLR_NMBR = B.CCAM_CTLR_NMBR \r\n";
  197. String park2 = "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"
  198. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  199. " FROM TB_PRLT_CTLR A, \r\n"
  200. " (SELECT PRLT_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  201. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  202. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  203. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  204. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  205. " ) B \r\n"
  206. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  207. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n";
  208. String park = "SELECT '주차장' AS FTYPE, A.prk_plce_nmbr AS MNGR_ID, A.prk_plce_manage_no AS FCLT_ID, A.prk_plce_nm AS FCLT_NM, \r\n"
  209. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  210. " FROM TB_PRK_PLCE A, \r\n"
  211. " (SELECT prk_plce_nmbr, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  212. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  213. " FROM TB_PRK_PLCE_STTS_HS \r\n"
  214. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  215. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  216. " ) B \r\n"
  217. " WHERE A.pis_type != 'N' \r\n"
  218. " AND A.del_yn = 'N' \r\n"
  219. " AND A.prk_plce_nmbr = B.prk_plce_nmbr \r\n";
  220. #else
  221. //TODO: GUMI
  222. String cctv = "SELECT 'CCTV' AS FTYPE, A.CCTV_MNGM_NMBR||CHR(0) AS MNGR_ID, A.CCTV_CTLR_ID AS FCLT_ID, \r\n"
  223. " A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  224. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  225. " FROM TB_CCTV_CTLR A, \r\n"
  226. " (SELECT CCTV_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  227. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT \r\n"
  228. " FROM TB_CCTV_STTS_HS \r\n"
  229. " WHERE CRTN_DT BETWEEN :ctv1 AND :ctv2 \r\n"
  230. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  231. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  232. " CBOX_TMPR > :ctv3) \r\n"
  233. " ) B \r\n"
  234. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n";
  235. String vms = "SELECT 'VMS' AS FTYPE, A.VMS_CTLR_NMBR||CHR(0) AS MNGR_ID, A.VMS_CTLR_ID AS FCLT_ID, \r\n"
  236. " A.VMS_NM AS FCLT_NM, \r\n"
  237. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.RGST_DT AS COLL_DT \r\n"
  238. " FROM TB_VMS_CTLR A, \r\n"
  239. " (SELECT VMS_CTLR_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  240. " CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, RGST_DT \r\n"
  241. " FROM TB_VMS_STTS_HS \r\n"
  242. " WHERE RGST_DT BETWEEN :vms1 AND :vms2 \r\n"
  243. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  244. " CBOXDOOR_OPEN_STTS_CD <> 'CDS0' OR \r\n"
  245. " CBOX_TMPR > :vms3) \r\n"
  246. " ) B \r\n"
  247. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n";
  248. String vds = "SELECT 'VDS' AS FTYPE, A.VDS_CTLR_NMBR||CHR(0) AS MNGR_ID, A.VDS_CTLR_ID AS FCLT_ID, \r\n"
  249. " A.VDS_NM AS FCLT_NM, \r\n"
  250. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  251. " FROM TB_VDS_CTLR A, \r\n"
  252. " (SELECT VDS_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  253. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  254. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  255. " FROM TB_VDS_CTLR_STTS_HS \r\n"
  256. " WHERE CRTN_DT BETWEEN :vds1 AND :vds2 \r\n"
  257. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  258. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  259. " CBOX_TMPR > :vds3) \r\n"
  260. " ) B \r\n"
  261. " WHERE A.VDS_CTLR_NMBR = B.VDS_CTLR_NMBR \r\n";
  262. 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"
  263. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  264. " FROM TB_AVI_CTLR A, \r\n"
  265. " (SELECT AVI_CTLR_MNGM_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  266. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  267. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  268. " WHERE CRTN_DT BETWEEN :avi1 AND :avi2 \r\n"
  269. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  270. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  271. " CBOX_TMPR > :avi3) \r\n"
  272. " ) B \r\n"
  273. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n";
  274. 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"
  275. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CLCT_DT AS COLL_DT \r\n"
  276. " FROM TB_RSE_MSTR A, \r\n"
  277. " (SELECT ID, 'CMS'||CMNC_STTS AS CONN_STTS_CD, \r\n"
  278. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT \r\n"
  279. " FROM TB_RSE_STTS_HS \r\n"
  280. " WHERE CLCT_DT BETWEEN :dsrc1 AND :dsrc2 \r\n"
  281. " AND (CMNC_STTS <> '0') \r\n"
  282. " ) B \r\n"
  283. " WHERE A.ID = B.ID \r\n";
  284. 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"
  285. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  286. " FROM TB_WCAM_CTLR A, \r\n"
  287. " (SELECT WCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  288. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  289. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  290. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  291. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  292. " ) B \r\n"
  293. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n";
  294. String ccam = "SELECT '교차로감시' AS FTYPE, A.CCAM_CTLR_NMBR AS MNGR_ID, A.CCAM_CTLR_ID AS FCLT_ID, \r\n"
  295. " A.CCAM_NM AS FCLT_NM, \r\n"
  296. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  297. " FROM TB_CCAM_CTLR A, \r\n"
  298. " (SELECT CCAM_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  299. " DECODE(FRONT_DOOR_STTS_CD, 'CDS0', BACK_DOOR_STTS_CD, FRONT_DOOR_STTS_CD) AS DOOR_STTS_CD, \r\n"
  300. " CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  301. " FROM TB_CCAM_CTLR_STTS_HS \r\n"
  302. " WHERE CRTN_DT BETWEEN :ccam1 AND :ccam2 \r\n"
  303. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  304. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  305. " CBOX_TMPR > :ccam3) \r\n"
  306. " ) B \r\n"
  307. " WHERE A.CCAM_CTLR_NMBR = B.CCAM_CTLR_NMBR \r\n";
  308. String park2 = "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"
  309. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  310. " FROM TB_PRLT_CTLR A, \r\n"
  311. " (SELECT PRLT_CTLR_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  312. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  313. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  314. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  315. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  316. " ) B \r\n"
  317. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  318. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n";
  319. String park = "SELECT '주차장' AS FTYPE, A.prk_plce_nmbr AS MNGR_ID, A.prk_plce_manage_no AS FCLT_ID, A.prk_plce_nm AS FCLT_NM, \r\n"
  320. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  321. " FROM TB_PRK_PLCE A, \r\n"
  322. " (SELECT prk_plce_nmbr, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  323. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  324. " FROM TB_PRK_PLCE_STTS_HS \r\n"
  325. " WHERE CRTN_DT BETWEEN :park1 AND :park2 \r\n"
  326. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  327. " ) B \r\n"
  328. " WHERE A.pis_type != 'N' \r\n"
  329. " AND A.del_yn = 'N' \r\n"
  330. " AND A.prk_plce_nmbr = B.prk_plce_nmbr \r\n";
  331. #endif
  332. switch(nLevel)
  333. {
  334. case 0:
  335. Column03->Visible = true;
  336. Column04->Visible = true;
  337. Column05->Visible = true;
  338. sQry = "SELECT '' AS FTYPE, '' AS MNGR_ID, '' AS FCLT_ID, '' AS FCLT_NM, \r\n"
  339. " '' AS CONN_STTS_CD, '' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, '' AS COLL_DT \r\n"
  340. " FROM DUAL WHERE 1 = 0 \r\n";
  341. #ifdef USE_CCTV
  342. sQry += "UNION ALL \r\n";
  343. sQry += cctv;
  344. #endif
  345. #ifdef USE_VMS
  346. sQry += "UNION ALL \r\n";
  347. sQry += vms;
  348. #endif
  349. #ifdef USE_VDS
  350. sQry += "UNION ALL \r\n";
  351. sQry += vds;
  352. #endif
  353. #ifdef USE_AVI
  354. sQry += "UNION ALL \r\n";
  355. sQry += avi;
  356. #endif
  357. #ifdef USE_DSRC
  358. sQry += "UNION ALL \r\n";
  359. sQry += dsrc;
  360. #endif
  361. #ifdef USE_WCAM
  362. sQry += "UNION ALL \r\n";
  363. sQry += wcam;
  364. #endif
  365. #ifdef USE_CCAM
  366. sQry += "UNION ALL \r\n";
  367. sQry += ccam;
  368. #endif
  369. #ifdef USE_PARK
  370. sQry += "UNION ALL \r\n";
  371. sQry += park;
  372. #endif
  373. break;
  374. case 1: //CCTV
  375. Column03->Visible = true;
  376. Column04->Visible = true;
  377. Column05->Visible = true;
  378. sQry = cctv;
  379. break;
  380. case 2: //VMS
  381. Column03->Visible = true;
  382. Column04->Visible = true;
  383. Column05->Visible = true;
  384. sQry = vms;
  385. break;
  386. case 3: //VDS
  387. Column03->Visible = true;
  388. Column04->Visible = true;
  389. Column05->Visible = true;
  390. sQry = vds;
  391. break;
  392. case 4: //AVI
  393. Column03->Visible = true;
  394. //Column04->Visible = true;
  395. //Column05->Visible = true;
  396. sQry = avi;
  397. break;
  398. case 5: //DSRC
  399. Column03->Visible = true;
  400. Column04->Visible = false;
  401. Column05->Visible = false;
  402. sQry = dsrc;
  403. break;
  404. case 6: //웹카메라
  405. Column03->Visible = true;
  406. Column04->Visible = false;
  407. Column05->Visible = false;
  408. sQry = wcam;
  409. break;
  410. case 7: //교차로감시카메라
  411. Column03->Visible = true;
  412. //Column04->Visible = true;
  413. //Column05->Visible = true;
  414. sQry = ccam;
  415. break;
  416. case 8: //주차장
  417. Column03->Visible = true;
  418. Column04->Visible = false;
  419. Column05->Visible = false;
  420. sQry = wcam;
  421. break;
  422. default: return;
  423. }
  424. try
  425. {
  426. ITSDb_SQLText(pADO, sQry);
  427. switch(nLevel)
  428. {
  429. case 0:
  430. #ifdef USE_CCTV
  431. ITSDb_SQLBind(pADO, "ctv1", FStDateTime);
  432. ITSDb_SQLBind(pADO, "ctv2", FEdDateTime);
  433. ITSDb_SQLBind(pADO, "ctv3", g_AppCfg.Temp.AlarmValue);
  434. #endif
  435. #ifdef USE_VMS
  436. ITSDb_SQLBind(pADO, "vms1", FStDateTime);
  437. ITSDb_SQLBind(pADO, "vms2", FEdDateTime);
  438. ITSDb_SQLBind(pADO, "vms3", g_AppCfg.Temp.AlarmValue);
  439. #endif
  440. #ifdef USE_VDS
  441. ITSDb_SQLBind(pADO, "vds1", FStDateTime);
  442. ITSDb_SQLBind(pADO, "vds2", FEdDateTime);
  443. ITSDb_SQLBind(pADO, "vds3", g_AppCfg.Temp.AlarmValue);
  444. #endif
  445. #ifdef USE_AVI
  446. ITSDb_SQLBind(pADO, "avi1", FStDateTime);
  447. ITSDb_SQLBind(pADO, "avi2", FEdDateTime);
  448. ITSDb_SQLBind(pADO, "avi3", g_AppCfg.Temp.AlarmValue);
  449. #endif
  450. #ifdef USE_DSRC
  451. ITSDb_SQLBind(pADO, "dsrc1", FStDateTime);
  452. ITSDb_SQLBind(pADO, "dsrc2", FEdDateTime);
  453. #endif
  454. #ifdef USE_WCAM
  455. ITSDb_SQLBind(pADO, "wcam1", FStDateTime);
  456. ITSDb_SQLBind(pADO, "wcam2", FEdDateTime);
  457. #endif
  458. #ifdef USE_CCAM
  459. ITSDb_SQLBind(pADO, "ccam1", FStDateTime);
  460. ITSDb_SQLBind(pADO, "ccam2", FEdDateTime);
  461. ITSDb_SQLBind(pADO, "ccam3", g_AppCfg.Temp.AlarmValue);
  462. #endif
  463. #ifdef USE_PARK
  464. ITSDb_SQLBind(pADO, "park1", FStDateTime);
  465. ITSDb_SQLBind(pADO, "park2", FEdDateTime);
  466. #endif
  467. break;
  468. case 1:
  469. ITSDb_SQLBind(pADO, "ctv1", FStDateTime);
  470. ITSDb_SQLBind(pADO, "ctv2", FEdDateTime);
  471. ITSDb_SQLBind(pADO, "ctv3", g_AppCfg.Temp.AlarmValue);
  472. break;
  473. case 2:
  474. ITSDb_SQLBind(pADO, "vms1", FStDateTime);
  475. ITSDb_SQLBind(pADO, "vms2", FEdDateTime);
  476. ITSDb_SQLBind(pADO, "vms3", g_AppCfg.Temp.AlarmValue);
  477. break;
  478. case 3:
  479. ITSDb_SQLBind(pADO, "vds1", FStDateTime);
  480. ITSDb_SQLBind(pADO, "vds2", FEdDateTime);
  481. ITSDb_SQLBind(pADO, "vds3", g_AppCfg.Temp.AlarmValue);
  482. break;
  483. case 4:
  484. ITSDb_SQLBind(pADO, "avi1", FStDateTime);
  485. ITSDb_SQLBind(pADO, "avi2", FEdDateTime);
  486. ITSDb_SQLBind(pADO, "avi3", g_AppCfg.Temp.AlarmValue);
  487. break;
  488. case 5:
  489. ITSDb_SQLBind(pADO, "dsrc1", FStDateTime);
  490. ITSDb_SQLBind(pADO, "dsrc2", FEdDateTime);
  491. break;
  492. case 6:
  493. ITSDb_SQLBind(pADO, "wcam1", FStDateTime);
  494. ITSDb_SQLBind(pADO, "wcam2", FEdDateTime);
  495. break;
  496. case 7:
  497. ITSDb_SQLBind(pADO, "ccam1", FStDateTime);
  498. ITSDb_SQLBind(pADO, "ccam2", FEdDateTime);
  499. ITSDb_SQLBind(pADO, "ccam3", g_AppCfg.Temp.AlarmValue);
  500. break;
  501. case 8:
  502. ITSDb_SQLBind(pADO, "park1", FStDateTime);
  503. ITSDb_SQLBind(pADO, "park2", FEdDateTime);
  504. break;
  505. }
  506. ITSDb_SQLOpen(pADO);
  507. DspHistory();
  508. }
  509. catch(EDatabaseError &E)
  510. {
  511. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  512. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  513. throw Exception(String(E.ClassName()) + E.Message);
  514. }
  515. catch(Exception &exception)
  516. {
  517. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  518. DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry);
  519. throw Exception(String(exception.ClassName()) + exception.Message);
  520. }
  521. }
  522. //---------------------------------------------------------------------------
  523. void __fastcall TIHS00501::DspHistory()
  524. {
  525. TADOQuery *pADO = ADOQry;
  526. try
  527. {
  528. CMM_ClearGridTableView(TvList);
  529. m_pGDC = TvList->DataController;
  530. int nRow = 0;
  531. int nDataCnt = 0;
  532. try {
  533. TvList->BeginUpdate();
  534. nDataCnt = pADO->RecordCount;
  535. m_pGDC->RecordCount = nDataCnt;
  536. for( ; !pADO->Eof; pADO->Next(), nRow++)
  537. {
  538. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FTYPE")->AsString;
  539. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  540. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_NM")->AsString;
  541. m_pGDC->Values[nRow][Column06->Index] = ITSUtil_StrToTime(pADO->FieldByName("COLL_DT")->AsString);
  542. String sConn = pADO->FieldByName("CONN_STTS_CD")->AsString;
  543. String sDoor = pADO->FieldByName("DOOR_STTS_CD")->AsString;
  544. if (sConn == "CMS0") sConn = FrmLang->lblCMS0->Caption;//"정상";
  545. else if (sConn == "CMS1") sConn = FrmLang->lblCMS1->Caption;//"통신두절";
  546. else if (sConn == "-") sConn = "-";
  547. else sConn = FrmLang->lblNull->Caption;//"정보없음";
  548. if (sDoor == "CDS0") sDoor = FrmLang->lblCDS0->Caption;//"정상";
  549. else if (sDoor == "CDS1") sDoor = FrmLang->lblCDS1->Caption;//"열림";
  550. else if (sDoor == "-") sDoor = "-";
  551. else sDoor = FrmLang->lblNull->Caption;//"정보없음";
  552. m_pGDC->Values[nRow][Column03->Index] = sConn;
  553. m_pGDC->Values[nRow][Column04->Index] = sDoor;
  554. m_pGDC->Values[nRow][Column05->Index] = pADO->FieldByName("CBOX_TMPR")->AsString;
  555. }
  556. }
  557. __finally
  558. {
  559. if (pADO)
  560. {
  561. pADO->Close();
  562. }
  563. TvList->EndUpdate();
  564. //CxList->SetFocus();
  565. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  566. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  567. Application->MessageBox(sEnd.c_str(),
  568. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  569. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  570. }
  571. }
  572. catch(EDatabaseError &E)
  573. {
  574. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  575. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  576. throw Exception(String(E.ClassName()) + E.Message);
  577. }
  578. catch(Exception &e)
  579. {
  580. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  581. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  582. throw Exception(String(e.ClassName()) + e.Message);
  583. }
  584. }
  585. //---------------------------------------------------------------------------
  586. void __fastcall TIHS00501::OnMessage(TMessage &Msg)
  587. {
  588. switch (Msg.Msg)
  589. {
  590. case WM_PARAM_DATABASE:
  591. if (WP_DB_SELECT_OK == Msg.WParam)
  592. {
  593. //ShowMessage("Select Ok");
  594. }
  595. break;
  596. }
  597. }
  598. //---------------------------------------------------------------------------
  599. void __fastcall TIHS00501::BtnExlSaveClick(TObject *Sender)
  600. {
  601. TcxGrid *pGrid = CxList;
  602. TcxGridTableView *pView = TvList;
  603. String sTitle= Caption;//"시설물 장애내역";
  604. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  605. }
  606. //---------------------------------------------------------------------------
  607. void __fastcall TIHS00501::FormClose(TObject *Sender, TCloseAction &Action)
  608. {
  609. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  610. CommClose();
  611. //IHS00501 = NULL;
  612. }
  613. //---------------------------------------------------------------------------
  614. void __fastcall TIHS00501::FormDestroy(TObject *Sender)
  615. {
  616. CommClose();
  617. }
  618. //---------------------------------------------------------------------------
  619. void __fastcall TIHS00501::Column03CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  620. bool &ADone)
  621. {
  622. if (AViewInfo)
  623. {
  624. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  625. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column03->Index])) return;
  626. String sConn = AViewInfo->GridRecord->DisplayTexts[Column03->Index];
  627. if (sConn == FrmLang->lblCMS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  628. else if (sConn == FrmLang->lblCMS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  629. else if (sConn == "-") ACanvas->Canvas->Brush->Color = clSilver;
  630. else ACanvas->Canvas->Brush->Color = clSilver;
  631. }
  632. }
  633. //---------------------------------------------------------------------------
  634. void __fastcall TIHS00501::Column04CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  635. bool &ADone)
  636. {
  637. if (AViewInfo)
  638. {
  639. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  640. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column04->Index])) return;
  641. String sDoor = AViewInfo->GridRecord->DisplayTexts[Column04->Index];
  642. if (sDoor == FrmLang->lblCDS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  643. else if (sDoor == FrmLang->lblCDS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  644. else if (sDoor == "-") ACanvas->Canvas->Brush->Color = clSilver;
  645. else ACanvas->Canvas->Brush->Color = clSilver;
  646. }
  647. }
  648. //---------------------------------------------------------------------------
  649. void __fastcall TIHS00501::Column05CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  650. bool &ADone)
  651. {
  652. //if (Column05->Visible == false) return;
  653. if (AViewInfo)
  654. {
  655. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  656. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column05->Index])) return;
  657. String sValue = AViewInfo->GridRecord->DisplayTexts[Column05->Index];
  658. int nValue = 0;
  659. if (TryStrToInt(sValue, nValue))
  660. {
  661. if (nValue > g_AppCfg.Temp.AlarmValue)
  662. {
  663. ACanvas->Canvas->Brush->Color = clRed;
  664. //ACanvas->Canvas->Font->Color = clBlack;
  665. }
  666. else
  667. {
  668. ACanvas->Canvas->Brush->Color = clLime;
  669. }
  670. }
  671. }
  672. }
  673. //---------------------------------------------------------------------------