IFM0070MF.cpp 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  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 "IFM0070MF.h"
  12. //---------------------------------------------------------------------------
  13. #pragma package(smart_init)
  14. #pragma link "cxButtons"
  15. #pragma link "cxCalendar"
  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 "cxDropDownEdit"
  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 "cxMaskEdit"
  35. #pragma link "cxPC"
  36. #pragma link "cxPCdxBarPopupMenu"
  37. #pragma link "cxSpinEdit"
  38. #pragma link "cxStyles"
  39. #pragma link "cxTextEdit"
  40. #pragma link "cxTimeEdit"
  41. #pragma link "dxSkinBlack"
  42. #pragma link "dxSkinBlue"
  43. #pragma link "dxSkinsCore"
  44. #pragma link "dxSkinscxPCPainter"
  45. #pragma link "dxSkinMcSkin"
  46. #pragma resource "*.dfm"
  47. TIFM0070M *IFM0070M = NULL;
  48. //---------------------------------------------------------------------------
  49. __fastcall TIFM0070M::TIFM0070M(TComponent* Owner)
  50. : TForm(Owner)
  51. {
  52. LangTrans->Translate(this, ITSDb_GetConnection());
  53. ITSSkin_Load(this);
  54. CMM_LoadForm(g_sFormsDir, this);
  55. FTitle = Caption;//"운영자 접속 이력조회";
  56. CbType->ItemIndex = 0;
  57. }
  58. //---------------------------------------------------------------------------
  59. void __fastcall TIFM0070M::FormShow(TObject *Sender)
  60. {
  61. PgList->ActivePageIndex = 0;
  62. // form 초기화
  63. FormInit();
  64. }
  65. //---------------------------------------------------------------------------
  66. void __fastcall TIFM0070M::FormInit()
  67. {
  68. ADOQry->Connection = ITSDb_GetConnection();
  69. m_pGDC = TvList->DataController;
  70. TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<운영자 접속 이력 정보>";
  71. if (BtnSearch->Enabled)
  72. BtnSearch->SetFocus();
  73. }
  74. //---------------------------------------------------------------------------
  75. void __fastcall TIFM0070M::CommClose()
  76. {
  77. try
  78. {
  79. CMM_SaveForm(g_sFormsDir, this);
  80. }
  81. catch(...)
  82. {
  83. }
  84. }
  85. //---------------------------------------------------------------------------
  86. void __fastcall TIFM0070M::TmrRefreshTimer(TObject *Sender)
  87. {
  88. TmrRefresh->Enabled = false;
  89. }
  90. //---------------------------------------------------------------------------
  91. void __fastcall TIFM0070M::BtnExlSaveClick(TObject *Sender)
  92. {
  93. TcxGrid *pGrid = CxList;
  94. TcxGridTableView *pView = TvList;
  95. String sTitle= lblFacility->Caption;
  96. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  97. }
  98. //---------------------------------------------------------------------------
  99. void __fastcall TIFM0070M::BtnSearchClick(TObject *Sender)
  100. {
  101. Application->ProcessMessages();
  102. TSqlCursor sqlCrs((TControl*)BtnSearch);
  103. RefreshData();
  104. }
  105. //---------------------------------------------------------------------------
  106. void __fastcall TIFM0070M::RefreshData()
  107. {
  108. CMM_ClearGridTableView(TvList);
  109. // CCTV
  110. // VMS
  111. // 웹카메라
  112. // 교차로교통량 교차로
  113. // 교차로교통량 카메라
  114. try
  115. {
  116. ADOQry->Connection = ITSDb_GetConnection();
  117. m_pGDC = TvList->DataController;
  118. TvList->BeginUpdate();
  119. lblFacility->Caption = CbType->Text.Trim();
  120. int nSelType = CbType->ItemIndex;
  121. if (nSelType == 3)
  122. {
  123. Column12->Visible = false; // IP Address
  124. Column13->Visible = true; // 교차로
  125. Column03->Visible = false; // 시설물명
  126. Column04->Visible = false;
  127. Column01->Visible = false;
  128. Column07->Visible = false;
  129. Column08->Visible = false;
  130. Column09->Visible = false;
  131. Column10->Visible = false;
  132. Column02->Caption = "교차로 ID";
  133. }
  134. else
  135. {
  136. Column12->Visible = true; // IP Address
  137. Column13->Visible = false; // 교차로
  138. Column04->Visible = true;
  139. Column03->Visible = true; // 시설물명
  140. Column01->Visible = true;
  141. Column07->Visible = true;
  142. Column08->Visible = true;
  143. Column09->Visible = true;
  144. Column10->Visible = true;
  145. Column02->Caption = "시설물 ID";
  146. }
  147. if (nSelType == 6)
  148. {
  149. Column01->Visible = false; // 관리번호
  150. Column13->Visible = true; // 교차로명
  151. }
  152. switch(nSelType)
  153. {
  154. case 0: SelCctv(); break; //CCTV
  155. case 1: SelVms(); break; //VMS
  156. case 2: SelWCam(); break; //웹카메라
  157. case 3: SelCrs(); break; //교차로
  158. case 4: SelCrsCam(); break; //교차로 교통량 cctv
  159. default: return;
  160. }
  161. }
  162. __finally
  163. {
  164. TvList->EndUpdate();
  165. TvList->ApplyBestFit(NULL, false, false);
  166. CxList->SetFocus();
  167. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  168. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  169. Application->MessageBox(sEnd.c_str(),
  170. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  171. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  172. }
  173. }
  174. //---------------------------------------------------------------------------
  175. void __fastcall TIFM0070M::SelCctv()
  176. {
  177. String sQry;
  178. TADOQuery *pADO = ADOQry;
  179. sQry = "SELECT X.CCTV_MNGM_NMBR AS FCLT_NMBR, \r\n"
  180. " X.CCTV_CTLR_ID AS FCLT_ID, \r\n"
  181. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  182. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  183. " X.X_CRDN AS X_CRDN, \r\n"
  184. " X.Y_CRDN AS Y_CRDN, \r\n"
  185. " 'CCTV' AS FCLT_TYPE_NM, \r\n"
  186. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  187. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  188. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  189. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  190. " X.CCTV_CTLR_IP AS IP_ADDR, \r\n"
  191. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  192. " FROM TB_CCTV_CTLR X, \r\n"
  193. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  194. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  195. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  196. " FROM TB_FCLT_INFR A \r\n"
  197. " )Y \r\n"
  198. " WHERE 1 = 1 \r\n"
  199. " AND Y.FCLT_TYPE = 'CCTV' \r\n"
  200. " AND X.DEL_YN = 'N' \r\n"
  201. " AND X.CCTV_CTLR_ID = Y.FCLT_ID(+) \r\n"
  202. " ORDER BY X.CCTV_MNGM_NMBR \r\n";
  203. int nRow = 0;
  204. try
  205. {
  206. ITSDb_SQLText(pADO, sQry);
  207. ITSDb_SQLOpen(pADO);
  208. m_pGDC->RecordCount = pADO->RecordCount;
  209. for( ; !pADO->Eof; pADO->Next(), nRow++)
  210. {
  211. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  212. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  213. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  214. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  215. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  216. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  217. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  218. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  219. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  220. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  221. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  222. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  223. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  224. }
  225. }
  226. catch(EDatabaseError &E)
  227. {
  228. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  229. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  230. throw Exception(String(E.ClassName()) + E.Message);
  231. }
  232. catch(Exception &e)
  233. {
  234. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  235. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  236. throw Exception(String(e.ClassName()) + e.Message);
  237. }
  238. }
  239. //---------------------------------------------------------------------------
  240. void __fastcall TIFM0070M::SelVms()
  241. {
  242. String sQry;
  243. TADOQuery *pADO = ADOQry;
  244. sQry = "SELECT X.VMS_CTLR_NMBR AS FCLT_NMBR, \r\n"
  245. " X.VMS_CTLR_ID AS FCLT_ID, \r\n"
  246. " X.VMS_NM AS LCTN_NM, \r\n"
  247. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  248. " X.X_CRDN AS X_CRDN, \r\n"
  249. " X.Y_CRDN AS Y_CRDN, \r\n"
  250. " 'VMS' AS FCLT_TYPE_NM, \r\n"
  251. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  252. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  253. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  254. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  255. " X.VMS_CTLR_IP AS IP_ADDR, \r\n"
  256. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  257. " FROM TB_VMS_CTLR X, \r\n"
  258. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  259. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  260. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  261. " FROM TB_FCLT_INFR A \r\n"
  262. " )Y \r\n"
  263. " WHERE 1 = 1 \r\n"
  264. " AND Y.FCLT_TYPE = 'VMS' \r\n"
  265. " AND X.DEL_YN = 'N' \r\n"
  266. " AND X.VMS_CTLR_ID = Y.FCLT_ID(+) \r\n"
  267. " ORDER BY X.VMS_CTLR_NMBR \r\n";
  268. int nRow = 0;
  269. try
  270. {
  271. ITSDb_SQLText(pADO, sQry);
  272. ITSDb_SQLOpen(pADO);
  273. m_pGDC->RecordCount = pADO->RecordCount;
  274. for( ; !pADO->Eof; pADO->Next(), nRow++)
  275. {
  276. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  277. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  278. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  279. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  280. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  281. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  282. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  283. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  284. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  285. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  286. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  287. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  288. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  289. }
  290. }
  291. catch(EDatabaseError &E)
  292. {
  293. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  294. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  295. throw Exception(String(E.ClassName()) + E.Message);
  296. }
  297. catch(Exception &e)
  298. {
  299. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  300. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  301. throw Exception(String(e.ClassName()) + e.Message);
  302. }
  303. }
  304. //---------------------------------------------------------------------------
  305. void __fastcall TIFM0070M::SelVds()
  306. {
  307. String sQry;
  308. TADOQuery *pADO = ADOQry;
  309. sQry = "SELECT X.VDS_CTLR_NMBR AS FCLT_NMBR, \r\n"
  310. " X.VDS_CTLR_ID AS FCLT_ID, \r\n"
  311. " X.VDS_NM AS LCTN_NM, \r\n"
  312. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  313. " X.X_CRDN AS X_CRDN, \r\n"
  314. " X.Y_CRDN AS Y_CRDN, \r\n"
  315. " 'VDS' AS FCLT_TYPE_NM, \r\n"
  316. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  317. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  318. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  319. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  320. " X.VDS_CTLR_IP AS IP_ADDR, \r\n"
  321. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  322. " FROM TB_VDS_CTLR X, \r\n"
  323. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  324. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  325. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  326. " FROM TB_FCLT_INFR A \r\n"
  327. " )Y \r\n"
  328. " WHERE 1 = 1 \r\n"
  329. " AND Y.FCLT_TYPE = 'VDS' \r\n"
  330. " AND X.DEL_YN = 'N' \r\n"
  331. " AND X.VDS_CTLR_ID = Y.FCLT_ID(+) \r\n"
  332. " ORDER BY X.VDS_CTLR_NMBR \r\n";
  333. int nRow = 0;
  334. try
  335. {
  336. ITSDb_SQLText(pADO, sQry);
  337. ITSDb_SQLOpen(pADO);
  338. m_pGDC->RecordCount = pADO->RecordCount;
  339. for( ; !pADO->Eof; pADO->Next(), nRow++)
  340. {
  341. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  342. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  343. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  344. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  345. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  346. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  347. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  348. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  349. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  350. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  351. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  352. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  353. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  354. }
  355. }
  356. catch(EDatabaseError &E)
  357. {
  358. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  359. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  360. throw Exception(String(E.ClassName()) + E.Message);
  361. }
  362. catch(Exception &e)
  363. {
  364. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  365. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  366. throw Exception(String(e.ClassName()) + e.Message);
  367. }
  368. }
  369. //---------------------------------------------------------------------------
  370. void __fastcall TIFM0070M::SelWCam()
  371. {
  372. String sQry;
  373. TADOQuery *pADO = ADOQry;
  374. #ifdef USE_WEB_CMRA
  375. sQry = "SELECT X.WEB_CMRA_NMBR AS FCLT_NMBR, \r\n"
  376. " X.WEB_CMRA_ID AS FCLT_ID, \r\n"
  377. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  378. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  379. " X.X_CRDN AS X_CRDN, \r\n"
  380. " X.Y_CRDN AS Y_CRDN, \r\n"
  381. " X.CMRA_IP AS IP_ADDR, \r\n"
  382. " '웹카메라' AS FCLT_TYPE_NM, \r\n"
  383. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  384. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  385. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  386. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  387. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  388. " FROM TB_WEB_CMRA X, \r\n"
  389. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  390. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  391. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  392. " FROM TB_FCLT_INFR A \r\n"
  393. " )Y \r\n"
  394. " WHERE 1 = 1 \r\n"
  395. " AND Y.FCLT_TYPE = 'WCAM' \r\n"
  396. " AND X.DEL_YN = 'N' \r\n"
  397. " AND X.WEB_CMRA_ID = Y.FCLT_ID(+) \r\n"
  398. " ORDER BY X.WEB_CMRA_NMBR \r\n";
  399. #else
  400. sQry = "SELECT X.WCAM_CTLR_NMBR AS FCLT_NMBR, \r\n"
  401. " X.WCAM_CTLR_ID AS FCLT_ID, \r\n"
  402. " X.WCAM_NM AS LCTN_NM, \r\n"
  403. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  404. " X.X_CRDN AS X_CRDN, \r\n"
  405. " X.Y_CRDN AS Y_CRDN, \r\n"
  406. " X.WCAM_CTLR_IP AS IP_ADDR, \r\n"
  407. " (SELECT CMMN_CD_KOR_NM \r\n"
  408. " FROM TB_CMMN_CD \r\n"
  409. " WHERE CMMN_CLSF_CD = 'WCAM' \r\n"
  410. " AND CMMN_CD = X.WCAM_TYPE_CD) AS FCLT_TYPE_NM, \r\n"
  411. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  412. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  413. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  414. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  415. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  416. " FROM TB_WCAM_CTLR X, \r\n"
  417. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  418. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  419. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  420. " FROM TB_FCLT_INFR A \r\n"
  421. " )Y \r\n"
  422. " WHERE 1 = 1 \r\n"
  423. " AND Y.FCLT_TYPE = X.WCAM_TYPE_CD \r\n"
  424. " AND X.DEL_YN = 'N' \r\n"
  425. " AND X.WCAM_CTLR_ID = Y.FCLT_ID(+) \r\n"
  426. " ORDER BY X.WCAM_CTLR_NMBR \r\n";
  427. #endif
  428. int nRow = 0;
  429. try
  430. {
  431. ITSDb_SQLText(pADO, sQry);
  432. ITSDb_SQLOpen(pADO);
  433. m_pGDC->RecordCount = pADO->RecordCount;
  434. for( ; !pADO->Eof; pADO->Next(), nRow++)
  435. {
  436. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  437. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  438. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  439. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  440. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  441. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  442. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  443. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  444. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  445. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  446. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  447. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  448. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  449. }
  450. }
  451. catch(EDatabaseError &E)
  452. {
  453. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  454. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  455. throw Exception(String(E.ClassName()) + E.Message);
  456. }
  457. catch(Exception &e)
  458. {
  459. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  460. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  461. throw Exception(String(e.ClassName()) + e.Message);
  462. }
  463. }
  464. //---------------------------------------------------------------------------
  465. void __fastcall TIFM0070M::SelDsrc()
  466. {
  467. String sQry;
  468. TADOQuery *pADO = ADOQry;
  469. sQry = "SELECT X.ID AS FCLT_NMBR, \r\n"
  470. " X.RSE_ID AS FCLT_ID, \r\n"
  471. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  472. " Y.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  473. " X.LCTN_X AS X_CRDN, \r\n"
  474. " X.LCTN_Y AS Y_CRDN, \r\n"
  475. " 'DSRC' AS FCLT_TYPE_NM, \r\n"
  476. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  477. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  478. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  479. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  480. " X.IP AS IP_ADDR, \r\n"
  481. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  482. " FROM TB_RSE_MSTR X, \r\n"
  483. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  484. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  485. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  486. " FROM TB_FCLT_INFR A \r\n"
  487. " )Y \r\n"
  488. " WHERE 1 = 1 \r\n"
  489. " AND Y.FCLT_TYPE = 'DSRC' \r\n"
  490. " AND X.DEL_YN = 'N' \r\n"
  491. " AND X.RSE_ID = Y.FCLT_ID(+) \r\n"
  492. " ORDER BY X.RSE_ID \r\n";
  493. int nRow = 0;
  494. try
  495. {
  496. ITSDb_SQLText(pADO, sQry);
  497. ITSDb_SQLOpen(pADO);
  498. m_pGDC->RecordCount = pADO->RecordCount;
  499. for( ; !pADO->Eof; pADO->Next(), nRow++)
  500. {
  501. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  502. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  503. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  504. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  505. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  506. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  507. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  508. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  509. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  510. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  511. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  512. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  513. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  514. }
  515. }
  516. catch(EDatabaseError &E)
  517. {
  518. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  519. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  520. throw Exception(String(E.ClassName()) + E.Message);
  521. }
  522. catch(Exception &e)
  523. {
  524. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  525. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  526. throw Exception(String(e.ClassName()) + e.Message);
  527. }
  528. }
  529. //---------------------------------------------------------------------------
  530. void __fastcall TIFM0070M::SelCrs()
  531. {
  532. String sQry;
  533. TADOQuery *pADO = ADOQry;
  534. sQry = "SELECT X.CROSS_ID AS FCLT_NMBR, \r\n"
  535. " X.CROSS_ID AS FCLT_ID, \r\n"
  536. " X.NAME AS LCTN_NM, \r\n"
  537. " X.NAME AS LCTN_ADDR, \r\n"
  538. " X.X AS X_CRDN, \r\n"
  539. " X.Y AS Y_CRDN, \r\n"
  540. " '교통량 교차로' AS FCLT_TYPE_NM \r\n"
  541. " FROM TB_CRS X \r\n"
  542. " WHERE 1 = 1 \r\n"
  543. " AND X.DEL_YN = 'N' \r\n"
  544. " ORDER BY X.CROSS_ID \r\n";
  545. int nRow = 0;
  546. try
  547. {
  548. ITSDb_SQLText(pADO, sQry);
  549. ITSDb_SQLOpen(pADO);
  550. m_pGDC->RecordCount = pADO->RecordCount;
  551. for( ; !pADO->Eof; pADO->Next(), nRow++)
  552. {
  553. //m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  554. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  555. m_pGDC->Values[nRow][Column13->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  556. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  557. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  558. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  559. }
  560. }
  561. catch(EDatabaseError &E)
  562. {
  563. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  564. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  565. throw Exception(String(E.ClassName()) + E.Message);
  566. }
  567. catch(Exception &e)
  568. {
  569. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  570. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  571. throw Exception(String(e.ClassName()) + e.Message);
  572. }
  573. }
  574. //---------------------------------------------------------------------------
  575. void __fastcall TIFM0070M::SelCrsCam()
  576. {
  577. String sQry;
  578. TADOQuery *pADO = ADOQry;
  579. sQry = "SELECT X.CROSS_ID AS FCLT_NMBR, \r\n"
  580. " X.CAM_ID AS FCLT_ID, \r\n"
  581. " X.CROSS_NM AS CROSS_NM, \r\n"
  582. " X.CAM_NM AS CAM_NM, \r\n"
  583. " X.X_CRDN AS X_CRDN, \r\n"
  584. " X.Y_CRDN AS Y_CRDN, \r\n"
  585. " '교통량 카메라' AS FCLT_TYPE_NM, \r\n"
  586. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  587. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  588. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  589. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  590. " X.IP AS IP_ADDR, \r\n"
  591. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  592. " FROM (SELECT A.CROSS_ID, A.NAME AS CROSS_NM, \r\n"
  593. " B.CAM_ID, B.NAME AS CAM_NM, B.IP, \r\n"
  594. " C.X AS X_CRDN, C.Y AS Y_CRDN \r\n"
  595. " FROM TB_CRS A, TB_CRS_CMRA B, TB_CRS_CMRA_DIR C \r\n"
  596. " WHERE A.DEL_YN = 'N' \r\n"
  597. " AND B.DEL_YN = 'N' \r\n"
  598. " AND A.CROSS_ID = B.CROSS_ID \r\n"
  599. " AND B.CAM_ID = C.CAM_ID) X, \r\n"
  600. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  601. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  602. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  603. " FROM TB_FCLT_INFR A \r\n"
  604. " )Y \r\n"
  605. " WHERE 1 = 1 \r\n"
  606. " AND Y.FCLT_TYPE = 'CRSCAM' \r\n"
  607. " AND X.CAM_ID = Y.FCLT_ID(+) \r\n"
  608. " ORDER BY X.CROSS_ID, X.CAM_ID \r\n";
  609. int nRow = 0;
  610. try
  611. {
  612. ITSDb_SQLText(pADO, sQry);
  613. ITSDb_SQLOpen(pADO);
  614. m_pGDC->RecordCount = pADO->RecordCount;
  615. for( ; !pADO->Eof; pADO->Next(), nRow++)
  616. {
  617. //m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  618. m_pGDC->Values[nRow][Column13->Index] = pADO->FieldByName("CROSS_NM")->AsString;
  619. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  620. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  621. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  622. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  623. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  624. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  625. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  626. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  627. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  628. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  629. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  630. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  631. }
  632. }
  633. catch(EDatabaseError &E)
  634. {
  635. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  636. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  637. throw Exception(String(E.ClassName()) + E.Message);
  638. }
  639. catch(Exception &e)
  640. {
  641. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  642. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  643. throw Exception(String(e.ClassName()) + e.Message);
  644. }
  645. }
  646. //---------------------------------------------------------------------------
  647. void __fastcall TIFM0070M::BtnCloseClick(TObject *Sender)
  648. {
  649. Close();
  650. }
  651. //---------------------------------------------------------------------------
  652. void __fastcall TIFM0070M::FormClose(TObject *Sender, TCloseAction &Action)
  653. {
  654. CommClose();
  655. IFM0070M = NULL;
  656. Action = caFree;
  657. }
  658. //---------------------------------------------------------------------------
  659. void __fastcall TIFM0070M::OnMessage(TMessage &Msg)
  660. {
  661. switch (Msg.Msg)
  662. {
  663. case WM_PARAM_DATABASE:
  664. if (WP_DB_SELECT_OK == Msg.WParam)
  665. {
  666. //ShowMessage("Select Ok");
  667. }
  668. break;
  669. }
  670. }
  671. //---------------------------------------------------------------------------
  672. void __fastcall TIFM0070M::TvListDataControllerFilterChanged(TObject *Sender)
  673. {
  674. CMM_SetFilterLike(TvList);
  675. }
  676. //---------------------------------------------------------------------------