IFM0070MF.cpp 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883
  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. // 차량번호인식 카메라
  115. try
  116. {
  117. ADOQry->Connection = ITSDb_GetConnection();
  118. m_pGDC = TvList->DataController;
  119. TvList->BeginUpdate();
  120. lblFacility->Caption = CbType->Text.Trim();
  121. int nSelType = CbType->ItemIndex;
  122. if (nSelType == 3)
  123. {
  124. Column12->Visible = false; // IP Address
  125. Column13->Visible = true; // 교차로
  126. Column03->Visible = false; // 시설물명
  127. Column04->Visible = false;
  128. Column01->Visible = false;
  129. Column07->Visible = false;
  130. Column08->Visible = false;
  131. Column09->Visible = false;
  132. Column10->Visible = false;
  133. Column02->Caption = "교차로 ID";
  134. }
  135. else
  136. {
  137. Column12->Visible = true; // IP Address
  138. Column13->Visible = false; // 교차로
  139. Column04->Visible = true;
  140. Column03->Visible = true; // 시설물명
  141. Column01->Visible = true;
  142. Column07->Visible = true;
  143. Column08->Visible = true;
  144. Column09->Visible = true;
  145. Column10->Visible = true;
  146. Column02->Caption = "시설물 ID";
  147. Column01->Caption = "관리번호";
  148. }
  149. if (nSelType == 6)
  150. {
  151. Column01->Visible = false; // 관리번호
  152. Column13->Visible = true; // 교차로명
  153. }
  154. if (nSelType == 4)
  155. {
  156. //Column01->Visible = false; // 관리번호
  157. Column01->Caption = "교차로 ID";
  158. //Column02->Visible = true;
  159. }
  160. switch(nSelType)
  161. {
  162. case 0: SelCctv(); break; //CCTV
  163. case 1: SelVms(); break; //VMS
  164. case 2: SelWCam(); break; //웹카메라
  165. case 3: SelCrs(); break; //교차로교통량
  166. case 4: SelCrsCam(); break; //교차로교통량 카메라
  167. case 5: SelLprsCam(); break; //차량번호인식 카메라
  168. default: return;
  169. }
  170. }
  171. __finally
  172. {
  173. TvList->EndUpdate();
  174. TvList->ApplyBestFit(NULL, false, false);
  175. CxList->SetFocus();
  176. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  177. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  178. Application->MessageBox(sEnd.c_str(),
  179. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  180. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  181. }
  182. }
  183. //---------------------------------------------------------------------------
  184. void __fastcall TIFM0070M::SelCctv()
  185. {
  186. String sQry;
  187. TADOQuery *pADO = ADOQry;
  188. sQry = "SELECT X.CCTV_MNGM_NMBR AS FCLT_NMBR, \r\n"
  189. " X.CCTV_CTLR_ID AS FCLT_ID, \r\n"
  190. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  191. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  192. " X.X_CRDN AS X_CRDN, \r\n"
  193. " X.Y_CRDN AS Y_CRDN, \r\n"
  194. " 'CCTV' AS FCLT_TYPE_NM, \r\n"
  195. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  196. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  197. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  198. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  199. " X.CCTV_CTLR_IP AS IP_ADDR, \r\n"
  200. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  201. " FROM TB_CCTV_CTLR X, \r\n"
  202. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  203. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  204. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  205. " FROM TB_FCLT_INFR A \r\n"
  206. " )Y \r\n"
  207. " WHERE 1 = 1 \r\n"
  208. " AND Y.FCLT_TYPE = 'CCTV' \r\n"
  209. " AND X.DEL_YN = 'N' \r\n"
  210. " AND X.CCTV_CTLR_ID = Y.FCLT_ID(+) \r\n"
  211. " ORDER BY X.CCTV_MNGM_NMBR \r\n";
  212. int nRow = 0;
  213. try
  214. {
  215. ITSDb_SQLText(pADO, sQry);
  216. ITSDb_SQLOpen(pADO);
  217. m_pGDC->RecordCount = pADO->RecordCount;
  218. for( ; !pADO->Eof; pADO->Next(), nRow++)
  219. {
  220. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  221. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  222. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  223. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  224. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  225. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  226. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  227. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  228. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  229. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  230. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  231. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  232. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  233. }
  234. }
  235. catch(EDatabaseError &E)
  236. {
  237. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  238. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  239. throw Exception(String(E.ClassName()) + E.Message);
  240. }
  241. catch(Exception &e)
  242. {
  243. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  244. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  245. throw Exception(String(e.ClassName()) + e.Message);
  246. }
  247. }
  248. //---------------------------------------------------------------------------
  249. void __fastcall TIFM0070M::SelVms()
  250. {
  251. String sQry;
  252. TADOQuery *pADO = ADOQry;
  253. sQry = "SELECT X.VMS_CTLR_NMBR AS FCLT_NMBR, \r\n"
  254. " X.VMS_CTLR_ID AS FCLT_ID, \r\n"
  255. " X.VMS_NM AS LCTN_NM, \r\n"
  256. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  257. " X.X_CRDN AS X_CRDN, \r\n"
  258. " X.Y_CRDN AS Y_CRDN, \r\n"
  259. " 'VMS' AS FCLT_TYPE_NM, \r\n"
  260. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  261. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  262. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  263. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  264. " X.VMS_CTLR_IP AS IP_ADDR, \r\n"
  265. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  266. " FROM TB_VMS_CTLR X, \r\n"
  267. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  268. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  269. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  270. " FROM TB_FCLT_INFR A \r\n"
  271. " )Y \r\n"
  272. " WHERE 1 = 1 \r\n"
  273. " AND Y.FCLT_TYPE = 'VMS' \r\n"
  274. " AND X.DEL_YN = 'N' \r\n"
  275. " AND X.VMS_CTLR_ID = Y.FCLT_ID(+) \r\n"
  276. " ORDER BY X.VMS_CTLR_NMBR \r\n";
  277. int nRow = 0;
  278. try
  279. {
  280. ITSDb_SQLText(pADO, sQry);
  281. ITSDb_SQLOpen(pADO);
  282. m_pGDC->RecordCount = pADO->RecordCount;
  283. for( ; !pADO->Eof; pADO->Next(), nRow++)
  284. {
  285. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  286. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  287. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  288. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  289. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  290. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  291. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  292. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  293. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  294. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  295. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  296. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  297. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  298. }
  299. }
  300. catch(EDatabaseError &E)
  301. {
  302. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  303. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  304. throw Exception(String(E.ClassName()) + E.Message);
  305. }
  306. catch(Exception &e)
  307. {
  308. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  309. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  310. throw Exception(String(e.ClassName()) + e.Message);
  311. }
  312. }
  313. //---------------------------------------------------------------------------
  314. void __fastcall TIFM0070M::SelVds()
  315. {
  316. String sQry;
  317. TADOQuery *pADO = ADOQry;
  318. sQry = "SELECT X.VDS_CTLR_NMBR AS FCLT_NMBR, \r\n"
  319. " X.VDS_CTLR_ID AS FCLT_ID, \r\n"
  320. " X.VDS_NM AS LCTN_NM, \r\n"
  321. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  322. " X.X_CRDN AS X_CRDN, \r\n"
  323. " X.Y_CRDN AS Y_CRDN, \r\n"
  324. " 'VDS' AS FCLT_TYPE_NM, \r\n"
  325. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  326. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  327. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  328. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  329. " X.VDS_CTLR_IP AS IP_ADDR, \r\n"
  330. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  331. " FROM TB_VDS_CTLR X, \r\n"
  332. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  333. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  334. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  335. " FROM TB_FCLT_INFR A \r\n"
  336. " )Y \r\n"
  337. " WHERE 1 = 1 \r\n"
  338. " AND Y.FCLT_TYPE = 'VDS' \r\n"
  339. " AND X.DEL_YN = 'N' \r\n"
  340. " AND X.VDS_CTLR_ID = Y.FCLT_ID(+) \r\n"
  341. " ORDER BY X.VDS_CTLR_NMBR \r\n";
  342. int nRow = 0;
  343. try
  344. {
  345. ITSDb_SQLText(pADO, sQry);
  346. ITSDb_SQLOpen(pADO);
  347. m_pGDC->RecordCount = pADO->RecordCount;
  348. for( ; !pADO->Eof; pADO->Next(), nRow++)
  349. {
  350. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  351. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  352. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  353. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  354. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  355. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  356. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  357. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  358. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  359. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  360. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  361. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  362. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  363. }
  364. }
  365. catch(EDatabaseError &E)
  366. {
  367. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  368. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  369. throw Exception(String(E.ClassName()) + E.Message);
  370. }
  371. catch(Exception &e)
  372. {
  373. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  374. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  375. throw Exception(String(e.ClassName()) + e.Message);
  376. }
  377. }
  378. //---------------------------------------------------------------------------
  379. void __fastcall TIFM0070M::SelWCam()
  380. {
  381. String sQry;
  382. TADOQuery *pADO = ADOQry;
  383. #ifdef USE_WEB_CMRA
  384. sQry = "SELECT X.WEB_CMRA_NMBR AS FCLT_NMBR, \r\n"
  385. " X.WEB_CMRA_ID AS FCLT_ID, \r\n"
  386. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  387. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  388. " X.X_CRDN AS X_CRDN, \r\n"
  389. " X.Y_CRDN AS Y_CRDN, \r\n"
  390. " X.CMRA_IP AS IP_ADDR, \r\n"
  391. " '웹카메라' AS FCLT_TYPE_NM, \r\n"
  392. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  393. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  394. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  395. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  396. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  397. " FROM TB_WEB_CMRA X, \r\n"
  398. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  399. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  400. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  401. " FROM TB_FCLT_INFR A \r\n"
  402. " )Y \r\n"
  403. " WHERE 1 = 1 \r\n"
  404. " AND Y.FCLT_TYPE = 'WCAM' \r\n"
  405. " AND X.DEL_YN = 'N' \r\n"
  406. " AND X.WEB_CMRA_ID = Y.FCLT_ID(+) \r\n"
  407. " ORDER BY X.WEB_CMRA_NMBR \r\n";
  408. #else
  409. sQry = "SELECT X.WCAM_CTLR_NMBR AS FCLT_NMBR, \r\n"
  410. " X.WCAM_CTLR_ID AS FCLT_ID, \r\n"
  411. " X.WCAM_NM AS LCTN_NM, \r\n"
  412. " X.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  413. " X.X_CRDN AS X_CRDN, \r\n"
  414. " X.Y_CRDN AS Y_CRDN, \r\n"
  415. " X.WCAM_CTLR_IP AS IP_ADDR, \r\n"
  416. " (SELECT CMMN_CD_KOR_NM \r\n"
  417. " FROM TB_CMMN_CD \r\n"
  418. " WHERE CMMN_CLSF_CD = 'WCAM' \r\n"
  419. " AND CMMN_CD = X.WCAM_TYPE_CD) AS FCLT_TYPE_NM, \r\n"
  420. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  421. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  422. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  423. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  424. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  425. " FROM TB_WCAM_CTLR X, \r\n"
  426. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  427. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  428. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  429. " FROM TB_FCLT_INFR A \r\n"
  430. " )Y \r\n"
  431. " WHERE 1 = 1 \r\n"
  432. " AND Y.FCLT_TYPE = X.WCAM_TYPE_CD \r\n"
  433. " AND X.DEL_YN = 'N' \r\n"
  434. " AND X.WCAM_CTLR_ID = Y.FCLT_ID(+) \r\n"
  435. " ORDER BY X.WCAM_CTLR_NMBR \r\n";
  436. #endif
  437. int nRow = 0;
  438. try
  439. {
  440. ITSDb_SQLText(pADO, sQry);
  441. ITSDb_SQLOpen(pADO);
  442. m_pGDC->RecordCount = pADO->RecordCount;
  443. for( ; !pADO->Eof; pADO->Next(), nRow++)
  444. {
  445. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  446. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  447. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  448. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  449. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  450. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  451. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  452. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  453. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  454. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  455. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  456. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  457. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  458. }
  459. }
  460. catch(EDatabaseError &E)
  461. {
  462. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  463. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  464. throw Exception(String(E.ClassName()) + E.Message);
  465. }
  466. catch(Exception &e)
  467. {
  468. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  469. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  470. throw Exception(String(e.ClassName()) + e.Message);
  471. }
  472. }
  473. //---------------------------------------------------------------------------
  474. void __fastcall TIFM0070M::SelDsrc()
  475. {
  476. String sQry;
  477. TADOQuery *pADO = ADOQry;
  478. sQry = "SELECT X.ID AS FCLT_NMBR, \r\n"
  479. " X.RSE_ID AS FCLT_ID, \r\n"
  480. " X.ISTL_LCTN_NM AS LCTN_NM, \r\n"
  481. " Y.ISTL_LCTN_ADDR AS LCTN_ADDR, \r\n"
  482. " X.LCTN_X AS X_CRDN, \r\n"
  483. " X.LCTN_Y AS Y_CRDN, \r\n"
  484. " 'DSRC' AS FCLT_TYPE_NM, \r\n"
  485. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  486. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  487. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  488. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  489. " X.IP AS IP_ADDR, \r\n"
  490. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  491. " FROM TB_RSE_MSTR X, \r\n"
  492. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  493. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  494. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  495. " FROM TB_FCLT_INFR A \r\n"
  496. " )Y \r\n"
  497. " WHERE 1 = 1 \r\n"
  498. " AND Y.FCLT_TYPE = 'DSRC' \r\n"
  499. " AND X.DEL_YN = 'N' \r\n"
  500. " AND X.RSE_ID = Y.FCLT_ID(+) \r\n"
  501. " ORDER BY X.RSE_ID \r\n";
  502. int nRow = 0;
  503. try
  504. {
  505. ITSDb_SQLText(pADO, sQry);
  506. ITSDb_SQLOpen(pADO);
  507. m_pGDC->RecordCount = pADO->RecordCount;
  508. for( ; !pADO->Eof; pADO->Next(), nRow++)
  509. {
  510. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  511. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  512. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  513. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  514. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  515. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  516. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  517. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  518. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  519. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  520. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  521. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  522. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  523. }
  524. }
  525. catch(EDatabaseError &E)
  526. {
  527. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  528. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  529. throw Exception(String(E.ClassName()) + E.Message);
  530. }
  531. catch(Exception &e)
  532. {
  533. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  534. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  535. throw Exception(String(e.ClassName()) + e.Message);
  536. }
  537. }
  538. //---------------------------------------------------------------------------
  539. void __fastcall TIFM0070M::SelCrs()
  540. {
  541. String sQry;
  542. TADOQuery *pADO = ADOQry;
  543. #ifdef USE_SC_TBL
  544. sQry = "SELECT X.IXR_ID AS FCLT_NMBR, \r\n"
  545. " X.IXR_ID AS FCLT_ID, \r\n"
  546. " X.IXR_NM AS LCTN_NM, \r\n"
  547. " X.IXR_NM AS LCTN_ADDR, \r\n"
  548. " TO_NUMBER(NVL(TRIM(X.Y_CRDN), '0')) AS X_CRDN, \r\n"
  549. " TO_NUMBER(NVL(TRIM(X.X_CRDN), '0')) AS Y_CRDN, \r\n"
  550. " '교통량 교차로' AS FCLT_TYPE_NM \r\n"
  551. " FROM TB_SC_IXR_MNGM X \r\n"
  552. " WHERE 1=1 \r\n"
  553. " AND X.USE_EN = 1 \r\n"
  554. " ORDER BY X.IXR_ID \r\n";
  555. #else
  556. sQry = "SELECT X.CROSS_ID AS FCLT_NMBR, \r\n"
  557. " X.CROSS_ID AS FCLT_ID, \r\n"
  558. " X.NAME AS LCTN_NM, \r\n"
  559. " X.NAME AS LCTN_ADDR, \r\n"
  560. " X.X AS X_CRDN, \r\n"
  561. " X.Y AS Y_CRDN, \r\n"
  562. " '교통량 교차로' AS FCLT_TYPE_NM \r\n"
  563. " FROM TB_CRS X \r\n"
  564. " WHERE 1 = 1 \r\n"
  565. " AND X.DEL_YN = 'N' \r\n"
  566. " ORDER BY X.CROSS_ID \r\n";
  567. #endif
  568. int nRow = 0;
  569. try
  570. {
  571. ITSDb_SQLText(pADO, sQry);
  572. ITSDb_SQLOpen(pADO);
  573. m_pGDC->RecordCount = pADO->RecordCount;
  574. for( ; !pADO->Eof; pADO->Next(), nRow++)
  575. {
  576. //m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  577. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  578. m_pGDC->Values[nRow][Column13->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  579. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  580. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  581. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  582. }
  583. }
  584. catch(EDatabaseError &E)
  585. {
  586. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  587. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  588. throw Exception(String(E.ClassName()) + E.Message);
  589. }
  590. catch(Exception &e)
  591. {
  592. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  593. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  594. throw Exception(String(e.ClassName()) + e.Message);
  595. }
  596. }
  597. //---------------------------------------------------------------------------
  598. void __fastcall TIFM0070M::SelCrsCam()
  599. {
  600. String sQry;
  601. TADOQuery *pADO = ADOQry;
  602. #ifdef USE_SC_TBL
  603. sQry = "SELECT X.CROSS_ID AS FCLT_NMBR, \r\n"
  604. " X.CAM_ID AS FCLT_ID, \r\n"
  605. " X.CROSS_NM AS CROSS_NM, \r\n"
  606. " X.DRCT_LCTN AS CAM_NM, \r\n"
  607. " X.X_CRDN AS X_CRDN, \r\n"
  608. " X.Y_CRDN AS Y_CRDN, \r\n"
  609. " '교통량 카메라' AS FCLT_TYPE_NM, \r\n"
  610. " NVL(Y.ISTL_LCTN_ADDR, X.CAM_NM) AS FCLT_ISTL_LCTN_ADDR, \r\n"
  611. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  612. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  613. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  614. " X.IP AS IP_ADDR, \r\n"
  615. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  616. " FROM (SELECT A.IXR_ID AS CROSS_ID, A.IXR_NM AS CROSS_NM, \r\n"
  617. " B.CMRA_ID AS CAM_ID, B.ISTL_LCTN AS CAM_NM, B.CMRA_IP AS IP, \r\n"
  618. " TO_NUMBER(NVL(TRIM(B.CMRA_Y_CRDN), '0')) AS X_CRDN, \r\n"
  619. " TO_NUMBER(NVL(TRIM(B.CMRA_X_CRDN), '0')) AS Y_CRDN, \r\n"
  620. " C.DRCT_LCTN \r\n"
  621. " FROM TB_SC_IXR_MNGM A, TB_SC_CMRA_MNGM B, TB_SC_CMRA_DRCT_MNGM C \r\n"
  622. " WHERE A.USE_EN = 1 \r\n"
  623. " AND B.USE_EN = 1 \r\n"
  624. " AND A.IXR_ID = B.IXR_ID \r\n"
  625. " AND B.IXR_ID = C.IXR_ID \r\n"
  626. " AND B.CMRA_ID = C.CMRA_ID) X, \r\n"
  627. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  628. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  629. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  630. " FROM TB_FCLT_INFR A \r\n"
  631. " ) Y \r\n"
  632. " WHERE 1 = 1 \r\n"
  633. " AND Y.FCLT_TYPE = 'CRSCAM' \r\n"
  634. " AND X.CAM_ID = Y.FCLT_ID(+) \r\n"
  635. " ORDER BY X.CROSS_ID, X.CAM_ID \r\n";
  636. #else
  637. sQry = "SELECT X.CROSS_ID AS FCLT_NMBR, \r\n"
  638. " X.CAM_ID AS FCLT_ID, \r\n"
  639. " X.CROSS_NM AS CROSS_NM, \r\n"
  640. " X.CAM_NM AS CAM_NM, \r\n"
  641. " X.X_CRDN AS X_CRDN, \r\n"
  642. " X.Y_CRDN AS Y_CRDN, \r\n"
  643. " '교통량 카메라' AS FCLT_TYPE_NM, \r\n"
  644. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  645. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  646. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  647. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  648. " X.IP AS IP_ADDR, \r\n"
  649. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  650. " FROM (SELECT A.CROSS_ID, A.NAME AS CROSS_NM, \r\n"
  651. " B.CAM_ID, B.NAME AS CAM_NM, B.IP, \r\n"
  652. " C.X AS X_CRDN, C.Y AS Y_CRDN \r\n"
  653. " FROM TB_CRS A, TB_CRS_CMRA B, TB_CRS_CMRA_DIR C \r\n"
  654. " WHERE A.DEL_YN = 'N' \r\n"
  655. " AND B.DEL_YN = 'N' \r\n"
  656. " AND A.CROSS_ID = B.CROSS_ID \r\n"
  657. " AND B.CAM_ID = C.CAM_ID) X, \r\n"
  658. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  659. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  660. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  661. " FROM TB_FCLT_INFR A \r\n"
  662. " )Y \r\n"
  663. " WHERE 1 = 1 \r\n"
  664. " AND Y.FCLT_TYPE = 'CRSCAM' \r\n"
  665. " AND X.CAM_ID = Y.FCLT_ID(+) \r\n"
  666. " ORDER BY X.CROSS_ID, X.CAM_ID \r\n";
  667. #endif
  668. int nRow = 0;
  669. try
  670. {
  671. ITSDb_SQLText(pADO, sQry);
  672. ITSDb_SQLOpen(pADO);
  673. m_pGDC->RecordCount = pADO->RecordCount;
  674. for( ; !pADO->Eof; pADO->Next(), nRow++)
  675. {
  676. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  677. m_pGDC->Values[nRow][Column13->Index] = pADO->FieldByName("CROSS_NM")->AsString;
  678. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  679. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  680. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  681. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  682. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  683. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  684. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  685. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  686. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  687. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  688. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  689. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  690. }
  691. }
  692. catch(EDatabaseError &E)
  693. {
  694. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  695. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  696. throw Exception(String(E.ClassName()) + E.Message);
  697. }
  698. catch(Exception &e)
  699. {
  700. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  701. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  702. throw Exception(String(e.ClassName()) + e.Message);
  703. }
  704. }
  705. //---------------------------------------------------------------------------
  706. void __fastcall TIFM0070M::SelLprsCam()
  707. {
  708. String sQry;
  709. TADOQuery *pADO = ADOQry;
  710. #ifndef USE_LPRS
  711. return;
  712. #endif
  713. Column01->Visible = false;
  714. Column02->Caption = "카메라 ID";
  715. sQry = "SELECT X.NMBR_IDNT_CMRA_ID AS FCLT_NMBR, \r\n"
  716. " X.NMBR_IDNT_CMRA_ID AS FCLT_ID, \r\n"
  717. " X.ISTL_LCTN AS LCTN_NM, \r\n"
  718. " X.ISTL_LCTN AS LCTN_ADDR, \r\n"
  719. " 0 AS X_CRDN, \r\n"
  720. " 0 AS Y_CRDN, \r\n"
  721. " '차량번호인식 카메라' AS FCLT_TYPE_NM, \r\n"
  722. " Y.ISTL_LCTN_ADDR AS FCLT_ISTL_LCTN_ADDR, \r\n"
  723. " Y.ISTL_CMPY_NM AS FCLT_ISTL_CMPY_NM, \r\n"
  724. " Y.MNFC_CMPY_NM AS FCLT_MNFC_CMPY_NM, \r\n"
  725. " Y.MDL_NM AS FCLT_MDL_NM, \r\n"
  726. " X.CMRA_IP AS IP_ADDR, \r\n"
  727. " Y.ISTL_DT AS FCLT_ISTL_DT \r\n"
  728. " FROM TB_SC_NMBR_IDNT_CMRA_MNGM X, \r\n"
  729. " (SELECT A.FCLT_ID, A.FCLT_TYPE, A.FCLT_LCTN, A.MDL_NM, A.ISTL_DT, A.ISTL_LCTN_ADDR, \r\n"
  730. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = ISTL_CMPY_ID) AS ISTL_CMPY_NM, \r\n"
  731. " (SELECT CMPY_NM FROM TB_FCLT_CMPY WHERE CMPY_ID = MNFC_CMPY_ID) AS MNFC_CMPY_NM \r\n"
  732. " FROM TB_FCLT_INFR A \r\n"
  733. " )Y \r\n"
  734. " WHERE 1 = 1 \r\n"
  735. " AND Y.FCLT_TYPE = 'LPRS' \r\n"
  736. " AND X.NMBR_IDNT_CMRA_ID = Y.FCLT_ID(+) \r\n"
  737. " ORDER BY X.NMBR_IDNT_CMRA_ID \r\n";
  738. int nRow = 0;
  739. try
  740. {
  741. ITSDb_SQLText(pADO, sQry);
  742. ITSDb_SQLOpen(pADO);
  743. m_pGDC->RecordCount = pADO->RecordCount;
  744. for( ; !pADO->Eof; pADO->Next(), nRow++)
  745. {
  746. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("FCLT_NMBR")->AsString;
  747. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  748. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LCTN_NM")->AsString;
  749. m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("FCLT_ISTL_LCTN_ADDR")->AsString;
  750. m_pGDC->Values[nRow][Column05->Index] = FormatFloat("###.#######0", pADO->FieldByName("X_CRDN")->AsFloat);
  751. m_pGDC->Values[nRow][Column06->Index] = FormatFloat("###.#######0", pADO->FieldByName("Y_CRDN")->AsFloat);
  752. m_pGDC->Values[nRow][Column07->Index] = pADO->FieldByName("FCLT_MDL_NM")->AsString;
  753. String ISTL_DT = pADO->FieldByName("FCLT_ISTL_DT")->AsString;
  754. m_pGDC->Values[nRow][Column08->Index] = APP_FormatStr(ISTL_DT, STR_DATE);
  755. m_pGDC->Values[nRow][Column09->Index] = pADO->FieldByName("FCLT_MNFC_CMPY_NM")->AsString;
  756. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("FCLT_ISTL_CMPY_NM")->AsString;
  757. m_pGDC->Values[nRow][Column11->Index] = pADO->FieldByName("FCLT_TYPE_NM")->AsString;
  758. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("IP_ADDR")->AsString;
  759. }
  760. }
  761. catch(EDatabaseError &E)
  762. {
  763. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  764. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  765. throw Exception(String(E.ClassName()) + E.Message);
  766. }
  767. catch(Exception &e)
  768. {
  769. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  770. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  771. throw Exception(String(e.ClassName()) + e.Message);
  772. }
  773. }
  774. //---------------------------------------------------------------------------
  775. void __fastcall TIFM0070M::BtnCloseClick(TObject *Sender)
  776. {
  777. Close();
  778. }
  779. //---------------------------------------------------------------------------
  780. void __fastcall TIFM0070M::FormClose(TObject *Sender, TCloseAction &Action)
  781. {
  782. CommClose();
  783. IFM0070M = NULL;
  784. Action = caFree;
  785. }
  786. //---------------------------------------------------------------------------
  787. void __fastcall TIFM0070M::OnMessage(TMessage &Msg)
  788. {
  789. switch (Msg.Msg)
  790. {
  791. case WM_PARAM_DATABASE:
  792. if (WP_DB_SELECT_OK == Msg.WParam)
  793. {
  794. //ShowMessage("Select Ok");
  795. }
  796. break;
  797. }
  798. }
  799. //---------------------------------------------------------------------------
  800. void __fastcall TIFM0070M::TvListDataControllerFilterChanged(TObject *Sender)
  801. {
  802. CMM_SetFilterLike(TvList);
  803. }
  804. //---------------------------------------------------------------------------