IHS00501F.cpp 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  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. #pragma hdrstop
  10. #include "IHS00501F.h"
  11. //---------------------------------------------------------------------------
  12. #pragma package(smart_init)
  13. #pragma link "FRAME_ChartF"
  14. #pragma link "cxButtons"
  15. #pragma link "cxCheckBox"
  16. #pragma link "cxClasses"
  17. #pragma link "cxContainer"
  18. #pragma link "cxControls"
  19. #pragma link "cxCustomData"
  20. #pragma link "cxData"
  21. #pragma link "cxDataStorage"
  22. #pragma link "cxEdit"
  23. #pragma link "cxFilter"
  24. #pragma link "cxGraphics"
  25. #pragma link "cxGrid"
  26. #pragma link "cxGridCustomTableView"
  27. #pragma link "cxGridCustomView"
  28. #pragma link "cxGridLevel"
  29. #pragma link "cxGridTableView"
  30. #pragma link "cxLabel"
  31. #pragma link "cxLookAndFeelPainters"
  32. #pragma link "cxLookAndFeels"
  33. #pragma link "cxStyles"
  34. #pragma link "cxTextEdit"
  35. #pragma link "dxSkinBlack"
  36. #pragma link "dxSkinBlue"
  37. #pragma link "dxSkinsCore"
  38. #pragma link "dxSkinscxPCPainter"
  39. #pragma resource "*.dfm"
  40. TIHS00501 *IHS00501 = NULL;
  41. //---------------------------------------------------------------------------
  42. __fastcall TIHS00501::TIHS00501(TComponent* Owner, HWND hHandle, String sFacType, String sFrom, String sTo, String sIdList, String sTypeNm)
  43. : TForm(Owner)
  44. {
  45. LangTrans->Translate(this, ITSDb_GetConnection());
  46. ITSSkin_Load(this);
  47. CMM_LoadForm(g_sFormsDir, this);
  48. FParent = hHandle;
  49. FFacType = sFacType;
  50. FStDateTime = sFrom;
  51. FEdDateTime = sTo;
  52. FIdList = sIdList;
  53. FTypeNm = sTypeNm;
  54. }
  55. //---------------------------------------------------------------------------
  56. __fastcall TIHS00501::~TIHS00501(void)
  57. {
  58. }
  59. //--------------------------------------------------------------------------
  60. /*
  61. * form 초기화
  62. *
  63. * arguments
  64. *
  65. * return
  66. * void
  67. */
  68. void __fastcall TIHS00501::FormInit()
  69. {
  70. ADOQry->Connection = ITSDb_GetConnection();
  71. m_pGDC = TvList->DataController;
  72. TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<시설물 장애내역 정보>";
  73. LblSearch->Caption = FrmLang->lblQryCond->Caption + FFacType + " (" + FStDateTime.SubString(1, 12) + " ~ " + FEdDateTime.SubString(1, 12) + ")";
  74. }
  75. //---------------------------------------------------------------------------
  76. /*
  77. * form을 보여줄때 호출되는 event 메서드이다.
  78. * arguments
  79. * Sender : event handler 객체
  80. * return
  81. * void
  82. */
  83. void __fastcall TIHS00501::FormShow(TObject *Sender)
  84. {
  85. FormInit();
  86. Refresh();
  87. TmrShow->Enabled = true;
  88. }
  89. //---------------------------------------------------------------------------
  90. /*
  91. * 닫기버튼 이나 x버튼 클릭시 공통으로 처리하는 로직이들어간다..
  92. * Form과 DataModule class를 delete시킨다.
  93. * arguments
  94. *
  95. * return
  96. * void
  97. */
  98. void __fastcall TIHS00501::CommClose()
  99. {
  100. CMM_SaveForm(g_sFormsDir, this);
  101. //IHS00501 = NULL;
  102. }
  103. //---------------------------------------------------------------------------
  104. /*
  105. * 최초 1회 수행되는 타이머 이벤트
  106. * arguments
  107. * Sender : event handler 객체
  108. * return
  109. * void
  110. */
  111. void __fastcall TIHS00501::TmrShowTimer(TObject *Sender)
  112. {
  113. TmrShow->Enabled = false;
  114. Application->ProcessMessages();
  115. SelHistory();
  116. }
  117. //---------------------------------------------------------------------------
  118. void __fastcall TIHS00501::ChkExpandClick(TObject *Sender)
  119. {
  120. CMM_ExpandCollapseChk(TvList, ChkExpand->Checked);
  121. }
  122. //---------------------------------------------------------------------------
  123. /*
  124. * Refresh Data Event Function
  125. * arguments
  126. *
  127. * return
  128. * void
  129. */
  130. void __fastcall TIHS00501::SelHistory()
  131. {
  132. TSqlCursor sqlCrs;
  133. String sQry;
  134. TADOQuery *pADO = ADOQry;
  135. //'20140713000000' AND '20140713235959'
  136. // int nLevel = StrToInt(FIdList);
  137. int nLevel = 0;
  138. if (FTypeNm == "CCTV") nLevel = 1;
  139. else if (FTypeNm == "VMS") nLevel = 2;
  140. else if (FTypeNm == "VDS") nLevel = 3;
  141. else if (FTypeNm == "AVI") nLevel = 4;
  142. else if (FTypeNm == "DSRC") nLevel = 5;
  143. else if (FTypeNm == FrmLang->lblWebCam->Caption) nLevel = 6;
  144. else nLevel = 0; //전 체
  145. switch(nLevel)
  146. {
  147. case 0:
  148. Column03->Visible = true;
  149. Column04->Visible = true;
  150. Column05->Visible = true;
  151. sQry = "SELECT NULL AS FTYPE, NULL AS MNGR_ID, NULL AS FCLT_ID, NULL AS FCLT_NM, \r\n"
  152. " NULL AS CONN_STTS_CD, NULL AS DOOR_STTS_CD, NULL AS CBOX_TMPR, NULL AS COLL_DT \r\n"
  153. " FROM DUAL WHERE 1 = 0 \r\n"
  154. #ifdef USE_CCTV
  155. "UNION ALL \r\n"
  156. "SELECT 'CCTV' AS FTYPE, A.CCTV_MNGM_NMBR||CHR(0) AS MNGR_ID, A.CCTV_CTLR_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  157. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  158. " FROM TB_CCTV_CTLR A, \r\n"
  159. " (SELECT CCTV_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  160. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT \r\n"
  161. " FROM TB_CCTV_STTS_HS \r\n"
  162. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  163. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  164. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  165. " CBOX_TMPR > :p03) \r\n"
  166. " ) B \r\n"
  167. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n"
  168. #endif
  169. #ifdef USE_VMS
  170. "UNION ALL \r\n"
  171. "SELECT 'VMS' AS FTYPE, A.VMS_CTLR_NMBR||CHR(0) AS MNGR_ID, A.VMS_ID AS FCLT_ID, A.VMS_NM AS FCLT_NM, \r\n"
  172. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.RGST_DT AS COLL_DT \r\n"
  173. " FROM TB_VMS_CTLR A, \r\n"
  174. " (SELECT VMS_CTLR_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  175. " CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, RGST_DT \r\n"
  176. " FROM TB_VMS_STTS_HS \r\n"
  177. " WHERE RGST_DT BETWEEN :vms1 AND :vms2 \r\n"
  178. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  179. " CBOXDOOR_OPEN_STTS_CD <> 'CDS0' OR \r\n"
  180. " CBOX_TMPR > :vms3) \r\n"
  181. " ) B \r\n"
  182. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n"
  183. #endif
  184. #ifdef USE_VDS
  185. "UNION ALL \r\n"
  186. "SELECT 'VDS' AS FTYPE, A.CTLR_MNGM_NMBR AS MNGR_ID, A.VDS_CTLR_ID AS FCLT_ID, A.LCTN AS FCLT_NM, \r\n"
  187. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.OCRR_DT AS COLL_DT \r\n"
  188. " FROM TB_VDS_CTLR A, \r\n"
  189. " (SELECT CTLR_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  190. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, OCRR_DT \r\n"
  191. " FROM TB_VDS_CTLR_STTS_RAW \r\n"
  192. " WHERE OCRR_DT BETWEEN :vds1 AND :vds2 \r\n"
  193. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  194. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  195. " CBOX_TMPR > :vds3) \r\n"
  196. " ) B \r\n"
  197. " WHERE A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR \r\n"
  198. #endif
  199. #ifdef USE_AVI
  200. "UNION ALL \r\n"
  201. "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"
  202. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  203. " FROM TB_AVI_CTLR A, \r\n"
  204. " (SELECT AVI_CTLR_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  205. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  206. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  207. " WHERE CRTN_DT BETWEEN :avi1 AND :avi2 \r\n"
  208. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  209. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  210. " CBOX_TMPR > :avi3) \r\n"
  211. " ) B \r\n"
  212. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n"
  213. #endif
  214. #ifdef USE_DSRC
  215. "UNION ALL \r\n"
  216. "SELECT 'DSRC' AS FTYPE, A.ID AS MNGR_ID, A.RSE_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  217. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CLCT_DT AS COLL_DT \r\n"
  218. " FROM TB_RSE_MSTR A, \r\n"
  219. " (SELECT ID, 'CMS'||CMNC_STTS AS CONN_STTS_CD, \r\n"
  220. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT \r\n"
  221. " FROM TB_RSE_STTS_HS \r\n"
  222. " WHERE CLCT_DT BETWEEN :dsrc1 AND :dsrc2 \r\n"
  223. " AND (CMNC_STTS <> '0') \r\n"
  224. " ) B \r\n"
  225. " WHERE A.ID = B.ID \r\n"
  226. #endif
  227. #ifdef USE_WCAM
  228. "UNION ALL \r\n"
  229. "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"
  230. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  231. " FROM TB_WEB_CMRA A, \r\n"
  232. " (SELECT WEB_CMRA_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  233. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  234. " FROM TB_WEB_CMRA_STTS_HS \r\n"
  235. " WHERE CRTN_DT BETWEEN :wcam1 AND :wcam2 \r\n"
  236. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  237. " ) B \r\n"
  238. " WHERE A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR \r\n"
  239. #endif
  240. ;
  241. break;
  242. case 1: //CCTV
  243. Column03->Visible = true;
  244. Column04->Visible = true;
  245. Column05->Visible = true;
  246. sQry = "SELECT 'CCTV' AS FTYPE, A.CCTV_MNGM_NMBR AS MNGR_ID, A.CCTV_CTLR_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  247. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  248. " FROM TB_CCTV_CTLR A, \r\n"
  249. " (SELECT CCTV_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  250. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, CRTN_DT \r\n"
  251. " FROM TB_CCTV_STTS_HS \r\n"
  252. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  253. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  254. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  255. " CBOX_TMPR > :p03) \r\n"
  256. " ) B \r\n"
  257. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n";
  258. break;
  259. case 2: //VMS
  260. Column03->Visible = true;
  261. Column04->Visible = true;
  262. Column05->Visible = true;
  263. sQry = "SELECT 'VMS' AS FTYPE, A.VMS_CTLR_NMBR AS MNGR_ID, A.VMS_ID AS FCLT_ID, A.VMS_NM AS FCLT_NM, \r\n"
  264. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.RGST_DT AS COLL_DT \r\n"
  265. " FROM TB_VMS_CTLR A, \r\n"
  266. " (SELECT VMS_CTLR_NMBR, CONN_STTS_CD AS CONN_STTS_CD, \r\n"
  267. " CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, RGST_DT \r\n"
  268. " FROM TB_VMS_STTS_HS \r\n"
  269. " WHERE RGST_DT BETWEEN :p01 AND :p02 \r\n"
  270. " AND (CONN_STTS_CD <> 'CMS0' OR \r\n"
  271. " CBOXDOOR_OPEN_STTS_CD <> 'CDS0' OR \r\n"
  272. " CBOX_TMPR > :p03) \r\n"
  273. " ) B \r\n"
  274. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n";
  275. break;
  276. case 3: //VDS
  277. Column03->Visible = true;
  278. Column04->Visible = true;
  279. Column05->Visible = true;
  280. sQry = "SELECT 'VDS' AS FTYPE, A.CTLR_MNGM_NMBR AS MNGR_ID, A.VDS_CTLR_ID AS FCLT_ID, A.LCTN AS FCLT_NM, \r\n"
  281. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.OCRR_DT AS COLL_DT \r\n"
  282. " FROM TB_VDS_CTLR A, \r\n"
  283. " (SELECT CTLR_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  284. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR, OCRR_DT \r\n"
  285. " FROM TB_VDS_CTLR_STTS_RAW \r\n"
  286. " WHERE OCRR_DT BETWEEN :p01 AND :p02 \r\n"
  287. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  288. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  289. " CBOX_TMPR > :p03) \r\n"
  290. " ) B \r\n"
  291. " WHERE A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR \r\n";
  292. break;
  293. case 4: //AVI
  294. Column03->Visible = true;
  295. Column04->Visible = true;
  296. Column05->Visible = true;
  297. sQry = "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"
  298. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  299. " FROM TB_AVI_CTLR A, \r\n"
  300. " (SELECT AVI_CTLR_MNGM_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  301. " CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, CBOX_TMPR AS CBOX_TMPR, CRTN_DT \r\n"
  302. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  303. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  304. " AND (CMNC_STTS_CD <> 'CMS0' OR \r\n"
  305. " CBOX_DOOR_STTS_CD <> 'CDS0' OR \r\n"
  306. " CBOX_TMPR > :p03) \r\n"
  307. " ) B \r\n"
  308. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n";
  309. break;
  310. case 5: //DSRC
  311. Column03->Visible = true;
  312. Column04->Visible = false;
  313. Column05->Visible = false;
  314. sQry = "SELECT 'DSRC' AS FTYPE, A.ID AS MNGR_ID, A.RSE_ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  315. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CLCT_DT AS COLL_DT \r\n"
  316. " FROM TB_RSE_MSTR A, \r\n"
  317. " (SELECT ID, 'CMS'||CMNC_STTS AS CONN_STTS_CD, \r\n"
  318. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CLCT_DT \r\n"
  319. " FROM TB_RSE_STTS_HS \r\n"
  320. " WHERE CLCT_DT BETWEEN :p01 AND :p02 \r\n"
  321. " AND (CMNC_STTS <> '0') \r\n"
  322. " ) B \r\n"
  323. " WHERE A.ID = B.ID \r\n";
  324. break;
  325. case 6: //웹카메라
  326. Column03->Visible = true;
  327. Column04->Visible = false;
  328. Column05->Visible = false;
  329. sQry = "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"
  330. " B.CONN_STTS_CD, B.DOOR_STTS_CD, B.CBOX_TMPR, B.CRTN_DT AS COLL_DT \r\n"
  331. " FROM TB_WEB_CMRA A, \r\n"
  332. " (SELECT WEB_CMRA_NMBR, CMNC_STTS_CD AS CONN_STTS_CD, \r\n"
  333. " '-' AS DOOR_STTS_CD, 0 AS CBOX_TMPR, CRTN_DT \r\n"
  334. " FROM TB_WEB_CMRA_STTS_HS \r\n"
  335. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  336. " AND (CMNC_STTS_CD <> 'CMS0') \r\n"
  337. " ) B \r\n"
  338. " WHERE A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR \r\n";
  339. break;
  340. default: return;
  341. }
  342. try
  343. {
  344. ITSDb_SQLText(pADO, sQry);
  345. switch(nLevel)
  346. {
  347. case 0:
  348. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  349. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  350. ITSDb_SQLBind(pADO, "p03", g_AppCfg.Temp.AlarmValue);
  351. #ifdef USE_VMS
  352. ITSDb_SQLBind(pADO, "vms1", FStDateTime);
  353. ITSDb_SQLBind(pADO, "vms2", FEdDateTime);
  354. ITSDb_SQLBind(pADO, "vms3", g_AppCfg.Temp.AlarmValue);
  355. #endif
  356. #ifdef USE_VDS
  357. ITSDb_SQLBind(pADO, "vds1", FStDateTime);
  358. ITSDb_SQLBind(pADO, "vds2", FEdDateTime);
  359. ITSDb_SQLBind(pADO, "vds3", g_AppCfg.Temp.AlarmValue);
  360. #endif
  361. #ifdef USE_AVI
  362. ITSDb_SQLBind(pADO, "avi1", FStDateTime);
  363. ITSDb_SQLBind(pADO, "avi2", FEdDateTime);
  364. ITSDb_SQLBind(pADO, "avi3", g_AppCfg.Temp.AlarmValue);
  365. #endif
  366. #ifdef USE_DSRC
  367. ITSDb_SQLBind(pADO, "dsrc1", FStDateTime);
  368. ITSDb_SQLBind(pADO, "dsrc2", FEdDateTime);
  369. #endif
  370. #ifdef USE_WCAM
  371. ITSDb_SQLBind(pADO, "wcam1", FStDateTime);
  372. ITSDb_SQLBind(pADO, "wcam2", FEdDateTime);
  373. #endif
  374. break;
  375. case 1:
  376. case 2:
  377. case 3:
  378. case 4:
  379. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  380. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  381. ITSDb_SQLBind(pADO, "p03", g_AppCfg.Temp.AlarmValue);
  382. break;
  383. case 5:
  384. case 6:
  385. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  386. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  387. break;
  388. }
  389. ITSDb_SQLOpen(pADO);
  390. DspHistory();
  391. }
  392. catch(EDatabaseError &E)
  393. {
  394. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  395. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  396. throw Exception(String(E.ClassName()) + E.Message);
  397. }
  398. catch(Exception &exception)
  399. {
  400. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  401. DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry);
  402. throw Exception(String(exception.ClassName()) + exception.Message);
  403. }
  404. }
  405. //---------------------------------------------------------------------------
  406. void __fastcall TIHS00501::DspHistory()
  407. {
  408. TADOQuery *pADO = ADOQry;
  409. try
  410. {
  411. CMM_ClearGridTableView(TvList);
  412. m_pGDC = TvList->DataController;
  413. int nRow = 0;
  414. int nDataCnt = 0;
  415. try {
  416. TvList->BeginUpdate();
  417. nDataCnt = pADO->RecordCount;
  418. m_pGDC->RecordCount = nDataCnt;
  419. for( ; !pADO->Eof; pADO->Next(), nRow++)
  420. {
  421. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FTYPE")->AsString;
  422. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  423. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_NM")->AsString;
  424. m_pGDC->Values[nRow][Column06->Index] = ITSUtil_StrToTime(pADO->FieldByName("COLL_DT")->AsString);
  425. String sConn = pADO->FieldByName("CONN_STTS_CD")->AsString;
  426. String sDoor = pADO->FieldByName("DOOR_STTS_CD")->AsString;
  427. if (sConn == "CMS0") sConn = FrmLang->lblCMS0->Caption;//"정상";
  428. else if (sConn == "CMS1") sConn = FrmLang->lblCMS1->Caption;//"통신두절";
  429. else if (sConn == "-") sConn = "-";
  430. else sConn = FrmLang->lblNull->Caption;//"정보없음";
  431. if (sDoor == "CDS0") sDoor = FrmLang->lblCDS0->Caption;//"정상";
  432. else if (sDoor == "CDS1") sDoor = FrmLang->lblCDS1->Caption;//"열림";
  433. else if (sDoor == "-") sDoor = "-";
  434. else sDoor = FrmLang->lblNull->Caption;//"정보없음";
  435. m_pGDC->Values[nRow][Column03->Index] = sConn;
  436. m_pGDC->Values[nRow][Column04->Index] = sDoor;
  437. m_pGDC->Values[nRow][Column05->Index] = pADO->FieldByName("CBOX_TMPR")->AsString;
  438. }
  439. }
  440. __finally
  441. {
  442. if (pADO)
  443. {
  444. pADO->Close();
  445. }
  446. TvList->EndUpdate();
  447. //CxList->SetFocus();
  448. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  449. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  450. Application->MessageBox(sEnd.c_str(),
  451. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  452. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  453. }
  454. }
  455. catch(EDatabaseError &E)
  456. {
  457. throw Exception(String(E.ClassName()) + E.Message);
  458. }
  459. catch(...)
  460. {
  461. throw Exception(FrmLang->lblDbErr->Caption);//"알수없는 오류가 발생하였습니다.");
  462. }
  463. }
  464. //---------------------------------------------------------------------------
  465. void __fastcall TIHS00501::OnMessage(TMessage &Msg)
  466. {
  467. switch (Msg.Msg)
  468. {
  469. case WM_PARAM_DATABASE:
  470. if (WP_DB_SELECT_OK == Msg.WParam)
  471. {
  472. //ShowMessage("Select Ok");
  473. }
  474. break;
  475. }
  476. }
  477. //---------------------------------------------------------------------------
  478. void __fastcall TIHS00501::BtnExlSaveClick(TObject *Sender)
  479. {
  480. TcxGrid *pGrid = CxList;
  481. TcxGridTableView *pView = TvList;
  482. String sTitle= Caption;//"시설물 장애내역";
  483. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  484. }
  485. //---------------------------------------------------------------------------
  486. void __fastcall TIHS00501::FormClose(TObject *Sender, TCloseAction &Action)
  487. {
  488. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  489. CommClose();
  490. //IHS00501 = NULL;
  491. }
  492. //---------------------------------------------------------------------------
  493. void __fastcall TIHS00501::FormDestroy(TObject *Sender)
  494. {
  495. CommClose();
  496. }
  497. //---------------------------------------------------------------------------
  498. void __fastcall TIHS00501::Column03CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  499. bool &ADone)
  500. {
  501. if (AViewInfo)
  502. {
  503. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  504. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column03->Index])) return;
  505. String sConn = AViewInfo->GridRecord->DisplayTexts[Column03->Index];
  506. if (sConn == FrmLang->lblCMS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  507. else if (sConn == FrmLang->lblCMS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  508. else if (sConn == "-") ACanvas->Canvas->Brush->Color = clSilver;
  509. else ACanvas->Canvas->Brush->Color = clSilver;
  510. }
  511. }
  512. //---------------------------------------------------------------------------
  513. void __fastcall TIHS00501::Column04CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  514. bool &ADone)
  515. {
  516. if (AViewInfo)
  517. {
  518. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  519. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column04->Index])) return;
  520. String sDoor = AViewInfo->GridRecord->DisplayTexts[Column04->Index];
  521. if (sDoor == FrmLang->lblCDS0->Caption) ACanvas->Canvas->Brush->Color = clLime;
  522. else if (sDoor == FrmLang->lblCDS1->Caption) ACanvas->Canvas->Brush->Color = clRed;
  523. else if (sDoor == "-") ACanvas->Canvas->Brush->Color = clSilver;
  524. else ACanvas->Canvas->Brush->Color = clSilver;
  525. }
  526. }
  527. //---------------------------------------------------------------------------
  528. void __fastcall TIHS00501::Column05CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  529. bool &ADone)
  530. {
  531. //if (Column05->Visible == false) return;
  532. if (AViewInfo)
  533. {
  534. if (AViewInfo->GridRecord->RecordIndex < 0) return;
  535. if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[Column05->Index])) return;
  536. String sValue = AViewInfo->GridRecord->DisplayTexts[Column05->Index];
  537. int nValue = 0;
  538. if (TryStrToInt(sValue, nValue))
  539. {
  540. if (nValue > g_AppCfg.Temp.AlarmValue)
  541. {
  542. ACanvas->Canvas->Brush->Color = clRed;
  543. //ACanvas->Canvas->Font->Color = clBlack;
  544. }
  545. else
  546. {
  547. ACanvas->Canvas->Brush->Color = clLime;
  548. }
  549. }
  550. }
  551. }
  552. //---------------------------------------------------------------------------