IRP00101F.cpp 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108
  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 "CDSCodeF.h"
  9. #include "CDSNodeF.h"
  10. #include "CDSLinkF.h"
  11. #include "ITSLangTransF.h"
  12. #pragma hdrstop
  13. #include "IRP00101F.h"
  14. //---------------------------------------------------------------------------
  15. #pragma package(smart_init)
  16. #pragma link "cxButtons"
  17. #pragma link "cxClasses"
  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 "dxSkinBlack"
  35. #pragma link "dxSkinBlue"
  36. #pragma link "dxSkinsCore"
  37. #pragma link "dxSkinscxPCPainter"
  38. #pragma link "dxmdaset"
  39. #pragma link "cxContainer"
  40. #pragma resource "*.dfm"
  41. #define USE_MEMDATA 1
  42. TIRP00101 *IRP00101 = NULL;
  43. //---------------------------------------------------------------------------
  44. __fastcall TIRP00101::TIRP00101(TComponent* Owner, HWND hHandle, int ARptType, String sFrom, String sTo, String ATitle)
  45. : TForm(Owner)
  46. {
  47. LangTrans->Translate(this, ITSDb_GetConnection());
  48. ITSSkin_Load(this);
  49. CMM_LoadForm(g_sFormsDir, this);
  50. FParent = hHandle;
  51. FStDateTime = sFrom;
  52. FEdDateTime = sTo;
  53. FRptType = ARptType;
  54. FTitle = ATitle;
  55. TvList->OptionsView->Header = true;
  56. //Caption = "보고서";
  57. }
  58. //---------------------------------------------------------------------------
  59. __fastcall TIRP00101::~TIRP00101(void)
  60. {
  61. }
  62. //--------------------------------------------------------------------------
  63. void __fastcall TIRP00101::FormInit()
  64. {
  65. ADOQry->Connection = ITSDb_GetConnection();
  66. m_pGDC = TvList->DataController;
  67. TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<보고서 정보>";
  68. LblSearch->Caption = FTitle;
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TIRP00101::FormShow(TObject *Sender)
  72. {
  73. FormInit();
  74. Refresh();
  75. TmrShow->Enabled = true;
  76. }
  77. //---------------------------------------------------------------------------
  78. void __fastcall TIRP00101::CommClose()
  79. {
  80. CMM_SaveForm(g_sFormsDir, this);
  81. //IRP00101 = NULL;
  82. }
  83. //---------------------------------------------------------------------------
  84. void __fastcall TIRP00101::TmrShowTimer(TObject *Sender)
  85. {
  86. TmrShow->Enabled = false;
  87. CMM_ClearGridTableView(TvList);
  88. FRows = 0;
  89. Application->ProcessMessages();
  90. #if USE_MEMDATA
  91. try
  92. {
  93. TvList->BeginUpdate(lsimImmediate);
  94. #endif
  95. if (FRptType == 0)
  96. {
  97. SelReportFacility1();
  98. SelReportFacility2();
  99. }
  100. else
  101. {
  102. Column06->Visible = false;
  103. SelReportTraffic1();
  104. SelReportTraffic2();
  105. }
  106. #if USE_MEMDATA
  107. }
  108. __finally
  109. {
  110. TvList->EndUpdate();
  111. }
  112. #endif
  113. CMM_ExpandCollapseChk(TvList, true);
  114. }
  115. //---------------------------------------------------------------------------
  116. void __fastcall TIRP00101::SelReportFacility1()
  117. {
  118. TSqlCursor sqlCrs;
  119. String sQry;
  120. TADOQuery *pADO = ADOQry;
  121. sQry = "SELECT 0 AS FACSEQ, 'A' AS FACTYPE, 0 AS CMS0CNT, 0 AS CMS1CNT \r\n"
  122. " FROM DUAL WHERE 1 = 0 \r\n"
  123. #ifdef USE_VMS
  124. "UNION \r\n"
  125. "SELECT 1 as FACSEQ, 'VMS' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  126. " FROM (SELECT DECODE(CMNC_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  127. " DECODE(CMNC_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  128. " FROM TB_VMS_CTLR_STTS_HS \r\n"
  129. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  130. " ) \r\n"
  131. #endif
  132. #ifdef USE_CCTV
  133. "UNION \r\n"
  134. "SELECT 2 as FACSEQ, 'CCTV' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  135. " FROM (SELECT DECODE(CONN_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  136. " DECODE(CONN_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  137. " FROM TB_CCTV_STTS_HS \r\n"
  138. " WHERE CRTN_DT BETWEEN :p03 AND :p04 \r\n"
  139. " ) \r\n"
  140. #endif
  141. #ifdef USE_WCAM
  142. "UNION \r\n"
  143. "SELECT 3 as FACSEQ, '웹카메라' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  144. " FROM (SELECT DECODE(CMNC_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  145. " DECODE(CMNC_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  146. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  147. " WHERE CRTN_DT BETWEEN :p05 AND :p06 \r\n"
  148. " ) \r\n"
  149. #endif
  150. #ifdef USE_VDS
  151. "UNION \r\n"
  152. "SELECT 4 as FACSEQ, 'VDS' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  153. " FROM (SELECT DECODE(CMNC_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  154. " DECODE(CMNC_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  155. " FROM TB_VDS_CTLR_STTS_HS \r\n"
  156. " WHERE CRTN_DT BETWEEN :p07 AND :p08 \r\n"
  157. " ) \r\n"
  158. #endif
  159. #ifdef USE_DSRC
  160. "UNION \r\n"
  161. "SELECT 6 as FACSEQ, 'DSRC' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  162. " FROM (SELECT DECODE(CMNC_STTS, '0', 1, 0) AS CMS0CNT, \r\n"
  163. " DECODE(CMNC_STTS, '0', 0, 1) AS CMS1CNT \r\n"
  164. " FROM TB_RSE_STTS_HS \r\n"
  165. " WHERE CLCT_DT BETWEEN :p11 AND :p12 \r\n"
  166. " ) \r\n"
  167. #endif
  168. #ifdef USE_AVI
  169. "UNION \r\n"
  170. "SELECT 5 as FACSEQ, 'AVI' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  171. " FROM (SELECT DECODE(CONN_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  172. " DECODE(CONN_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  173. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  174. " WHERE CRTN_DT BETWEEN :p13 AND :p14 \r\n"
  175. " ) \r\n"
  176. #endif
  177. #ifdef USE_VDS
  178. "UNION \r\n"
  179. "SELECT 7 as FACSEQ, 'CCAM' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  180. " FROM (SELECT DECODE(CMNC_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  181. " DECODE(CMNC_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  182. " FROM TB_CCAM_CTLR_STTS_HS \r\n"
  183. " WHERE CRTN_DT BETWEEN :p15 AND :p16 \r\n"
  184. " ) \r\n"
  185. #endif
  186. #ifdef USE_PARK
  187. "UNION \r\n"
  188. "SELECT 8 as FACSEQ, '주차장' AS FACTYPE, NVL(SUM(CMS0CNT), 0) AS CMS0CNT, NVL(SUM(CMS1CNT), 0) AS CMS1CNT \r\n"
  189. " FROM (SELECT DECODE(CMNC_STTS_CD, 'CMS0', 1, 0) AS CMS0CNT, \r\n"
  190. " DECODE(CMNC_STTS_CD, 'CMS0', 0, 1) AS CMS1CNT \r\n"
  191. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  192. " WHERE CRTN_DT BETWEEN :p17 AND :p18 \r\n"
  193. " ) \r\n"
  194. #endif
  195. " ORDER BY FACSEQ \r\n";
  196. try
  197. {
  198. ITSDb_SQLText(pADO, sQry);
  199. #ifdef USE_VMS
  200. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  201. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  202. #endif
  203. #ifdef USE_CCTV
  204. ITSDb_SQLBind(pADO, "p03", FStDateTime);
  205. ITSDb_SQLBind(pADO, "p04", FEdDateTime);
  206. #endif
  207. #ifdef USE_WCAM
  208. ITSDb_SQLBind(pADO, "p05", FStDateTime);
  209. ITSDb_SQLBind(pADO, "p06", FEdDateTime);
  210. #endif
  211. #ifdef USE_VDS
  212. ITSDb_SQLBind(pADO, "p07", FStDateTime);
  213. ITSDb_SQLBind(pADO, "p08", FEdDateTime);
  214. #endif
  215. #ifdef USE_DSRC
  216. ITSDb_SQLBind(pADO, "p11", FStDateTime);
  217. ITSDb_SQLBind(pADO, "p12", FEdDateTime);
  218. #endif
  219. #ifdef USE_AVI
  220. ITSDb_SQLBind(pADO, "p13", FStDateTime);
  221. ITSDb_SQLBind(pADO, "p14", FEdDateTime);
  222. #endif
  223. #ifdef USE_CCAM
  224. ITSDb_SQLBind(pADO, "p15", FStDateTime);
  225. ITSDb_SQLBind(pADO, "p16", FEdDateTime);
  226. #endif
  227. #ifdef USE_PARK
  228. ITSDb_SQLBind(pADO, "p17", FStDateTime);
  229. ITSDb_SQLBind(pADO, "p18", FEdDateTime);
  230. #endif
  231. ITSDb_SQLOpen(pADO);
  232. #if USE_MEMDATA
  233. dxMemData1->DisableControls();
  234. dxMemData1->Close();
  235. dxMemData1->CreateFieldsFromDataSet(pADO);
  236. dxMemData1->LoadFromDataSet(pADO);
  237. dxMemData1->Open();
  238. dxMemData1->First();
  239. dxMemData1->EnableControls();
  240. pADO->Close();
  241. DspReportFacility1MemData();
  242. #else
  243. DspReportFacility1();
  244. #endif
  245. }
  246. catch(EDatabaseError &E)
  247. {
  248. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  249. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  250. throw Exception(String(E.ClassName()) + E.Message);
  251. }
  252. catch(Exception &exception)
  253. {
  254. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  255. DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry);
  256. throw Exception(String(exception.ClassName()) + exception.Message);
  257. }
  258. }
  259. //---------------------------------------------------------------------------
  260. void __fastcall TIRP00101::DspReportFacility1()
  261. {
  262. TADOQuery *pADO = ADOQry;
  263. try
  264. {
  265. try {
  266. TvList->BeginUpdate();
  267. FRows = m_pGDC->AppendRecord();
  268. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  269. m_pGDC->Values[FRows][Column02->Index] = cxLabel2->Caption;//"시설물 구분";
  270. m_pGDC->Values[FRows][Column03->Index] = cxLabel3->Caption;//"정상";
  271. m_pGDC->Values[FRows][Column04->Index] = cxLabel4->Caption;//"장애";
  272. m_pGDC->Values[FRows][Column90->Index] = "1";
  273. for( ; !pADO->Eof; pADO->Next())
  274. {
  275. FRows = m_pGDC->AppendRecord();
  276. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  277. m_pGDC->Values[FRows][Column02->Index] = pADO->FieldByName("FACTYPE")->AsString;
  278. m_pGDC->Values[FRows][Column03->Index] = pADO->FieldByName("CMS0CNT")->AsString;
  279. m_pGDC->Values[FRows][Column04->Index] = pADO->FieldByName("CMS1CNT")->AsString;
  280. m_pGDC->Values[FRows][Column90->Index] = "0";
  281. }
  282. FRows = m_pGDC->AppendRecord();
  283. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  284. }
  285. __finally
  286. {
  287. if (pADO)
  288. {
  289. pADO->Close();
  290. }
  291. TvList->EndUpdate();
  292. }
  293. }
  294. catch(EDatabaseError &E)
  295. {
  296. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  297. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  298. throw Exception(String(E.ClassName()) + E.Message);
  299. }
  300. catch(Exception &e)
  301. {
  302. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  303. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  304. throw Exception(String(e.ClassName()) + e.Message);
  305. }
  306. }
  307. //---------------------------------------------------------------------------
  308. void __fastcall TIRP00101::DspReportFacility1MemData()
  309. {
  310. try
  311. {
  312. FRows = m_pGDC->AppendRecord();
  313. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  314. m_pGDC->Values[FRows][Column02->Index] = cxLabel2->Caption;//"시설물 구분";
  315. m_pGDC->Values[FRows][Column03->Index] = cxLabel3->Caption;//"정상";
  316. m_pGDC->Values[FRows][Column04->Index] = cxLabel4->Caption;//"장애";
  317. m_pGDC->Values[FRows][Column90->Index] = "1";
  318. while(!dxMemData1->Eof)
  319. {
  320. FRows = m_pGDC->AppendRecord();
  321. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  322. m_pGDC->Values[FRows][Column02->Index] = dxMemData1->Fields->FieldByName("FACTYPE")->AsString;
  323. m_pGDC->Values[FRows][Column03->Index] = dxMemData1->Fields->FieldByName("CMS0CNT")->AsString;
  324. m_pGDC->Values[FRows][Column04->Index] = dxMemData1->Fields->FieldByName("CMS1CNT")->AsString;
  325. m_pGDC->Values[FRows][Column90->Index] = "0";
  326. dxMemData1->Next();
  327. }
  328. FRows = m_pGDC->AppendRecord();
  329. m_pGDC->Values[FRows][Column01->Index] = cxLabel1->Caption;//"시설물 현황";
  330. dxMemData1->Close();
  331. }
  332. catch(EDatabaseError &E)
  333. {
  334. throw Exception(String(E.ClassName()) + E.Message);
  335. }
  336. catch(...)
  337. {
  338. throw Exception(FrmLang->lblDbErr->Caption);//"알수없는 오류가 발생하였습니다.");
  339. }
  340. }
  341. //---------------------------------------------------------------------------
  342. void __fastcall TIRP00101::SelReportFacility2()
  343. {
  344. TSqlCursor sqlCrs;
  345. String sQry;
  346. TADOQuery *pADO = ADOQry;
  347. sQry = "SELECT 0 AS FACSEQ, 'A' AS FCLT_TYPE, NULL AS FCLT_ID, NULL AS FCLT_NM, NULL AS RGST_DT \r\n"
  348. " FROM DUAL WHERE 1 = 0 \r\n"
  349. #ifdef USE_CCTV
  350. "UNION \r\n"
  351. "SELECT 1 as FACSEQ, 'CCTV' FCLT_TYPE, A.CCTV_CTLR_ID AS FCLT_ID, A.CCTV_NM AS FCLT_NM, \r\n"
  352. " CRTN_DT AS RGST_DT \r\n"
  353. " FROM TB_CCTV_CTLR A, \r\n"
  354. " (SELECT CCTV_CTLR_NMBR, CRTN_DT \r\n"
  355. " FROM TB_CCTV_STTS_HS \r\n"
  356. " WHERE CRTN_DT BETWEEN :p01 AND :p02 \r\n"
  357. " AND CONN_STTS_CD = 'CMS1') B \r\n"
  358. " WHERE A.CCTV_CTLR_NMBR = B.CCTV_CTLR_NMBR \r\n"
  359. #endif
  360. #ifdef USE_VMS
  361. "UNION \r\n"
  362. "SELECT 2 as FACSEQ, 'VMS' FCLT_TYPE, A.VMS_CTLR_ID AS FCLT_ID, A.VMS_NM AS FCLT_NM, \r\n"
  363. " CRTN_DT AS RGST_DT \r\n"
  364. " FROM TB_VMS_CTLR A, \r\n"
  365. " (SELECT VMS_CTLR_NMBR, CRTN_DT \r\n"
  366. " FROM TB_VMS_CTLR_STTS_HS \r\n"
  367. " WHERE CRTN_DT BETWEEN :p03 AND :p04 \r\n"
  368. " AND CMNC_STTS_CD = 'CMS1') B \r\n"
  369. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n"
  370. #endif
  371. #ifdef USE_WCAM
  372. "UNION \r\n"
  373. "SELECT 3 as FACSEQ, '웹카메라' FCLT_TYPE, A.WCAM_CTLR_ID AS FCLT_ID, A.WCAM_NM AS FCLT_NM, \r\n"
  374. " CRTN_DT AS RGST_DT \r\n"
  375. " FROM TB_WCAM_CTLR A, \r\n"
  376. " (SELECT WCAM_CTLR_NMBR, CRTN_DT \r\n"
  377. " FROM TB_WCAM_CTLR_STTS_HS \r\n"
  378. " WHERE CRTN_DT BETWEEN :p05 AND :p06 \r\n"
  379. " AND CMNC_STTS_CD = 'CMS1') B \r\n"
  380. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n"
  381. #endif
  382. #ifdef USE_VDS
  383. "UNION \r\n"
  384. "SELECT 4 as FACSEQ, 'VDS' FCLT_TYPE, A.VDS_CTLR_ID AS FCLT_ID, A.VDS_NM AS FCLT_NM, \r\n"
  385. " CRTN_DT AS RGST_DT \r\n"
  386. " FROM TB_VDS_CTLR A, \r\n"
  387. " (SELECT VDS_CTLR_NMBR, CRTN_DT \r\n"
  388. " FROM TB_VDS_CTLR_STTS_HS \r\n"
  389. " WHERE CRTN_DT BETWEEN :p07 AND :p08 \r\n"
  390. " AND CMNC_STTS_CD = 'CMS1') B \r\n"
  391. " WHERE A.VDS_CTLR_NMBR = B.VDS_CTLR_NMBR \r\n"
  392. #endif
  393. #ifdef USE_AVI
  394. "UNION \r\n"
  395. "SELECT 5 as FACSEQ, 'AVI' FCLT_TYPE, A.AVI_CTLR_MNGM_NMBR AS FCLT_ID, A.AVI_LCTN_NM AS FCLT_NM,\r\n"
  396. " CRTN_DT AS RGST_DT \r\n"
  397. " FROM TB_AVI_CTLR A, \r\n"
  398. " (SELECT AVI_CTLR_MNGM_NMBR, CRTN_DT \r\n"
  399. " FROM TB_AVI_CTLR_STTS_HS \r\n"
  400. " WHERE CRTN_DT BETWEEN :p13 AND :p14 \r\n"
  401. " AND CONN_STTS_CD = 'CMS1') B \r\n"
  402. " WHERE A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n"
  403. #endif
  404. #ifdef USE_DSRC
  405. "UNION \r\n"
  406. "SELECT 6 as FACSEQ, 'DSRC' FCLT_TYPE, A.ID AS FCLT_ID, A.ISTL_LCTN_NM AS FCLT_NM, \r\n"
  407. " CLCT_DT AS RGST_DT \r\n"
  408. " FROM TB_RSE_MSTR A, \r\n"
  409. " (SELECT ID, CLCT_DT \r\n"
  410. " FROM TB_RSE_STTS_HS \r\n"
  411. " WHERE CLCT_DT BETWEEN :p11 AND :p12 \r\n"
  412. " AND CMNC_STTS = '1') B \r\n"
  413. " WHERE A.ID = B.ID \r\n"
  414. #endif
  415. #ifdef USE_PARK
  416. "UNION \r\n"
  417. "SELECT 7 as FACSEQ, '주차장' FCLT_TYPE, A.PRLT_CTLR_ID AS FCLT_ID, A.PRLT_NM AS FCLT_NM, \r\n"
  418. " CRTN_DT AS RGST_DT \r\n"
  419. " FROM TB_PRLT_CTLR A, \r\n"
  420. " (SELECT PRLT_CTLR_NMBR, CRTN_DT \r\n"
  421. " FROM TB_PRLT_CTLR_STTS_HS \r\n"
  422. " WHERE CRTN_DT BETWEEN :p15 AND :p16 \r\n"
  423. " AND CMNC_STTS_CD = 'CMS1') B \r\n"
  424. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  425. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n"
  426. #endif
  427. " ORDER BY FACSEQ, FCLT_ID, RGST_DT \r\n";
  428. try
  429. {
  430. ITSDb_SQLText(pADO, sQry);
  431. #ifdef USE_CCTV
  432. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  433. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  434. #endif
  435. #ifdef USE_VMS
  436. ITSDb_SQLBind(pADO, "p03", FStDateTime);
  437. ITSDb_SQLBind(pADO, "p04", FEdDateTime);
  438. #endif
  439. #ifdef USE_WCAM
  440. ITSDb_SQLBind(pADO, "p05", FStDateTime);
  441. ITSDb_SQLBind(pADO, "p06", FEdDateTime);
  442. #endif
  443. #ifdef USE_VDS
  444. ITSDb_SQLBind(pADO, "p07", FStDateTime);
  445. ITSDb_SQLBind(pADO, "p08", FEdDateTime);
  446. #endif
  447. #ifdef USE_AVI
  448. ITSDb_SQLBind(pADO, "p13", FStDateTime);
  449. ITSDb_SQLBind(pADO, "p14", FEdDateTime);
  450. #endif
  451. #ifdef USE_DSRC
  452. ITSDb_SQLBind(pADO, "p11", FStDateTime);
  453. ITSDb_SQLBind(pADO, "p12", FEdDateTime);
  454. #endif
  455. #ifdef USE_DSRC
  456. ITSDb_SQLBind(pADO, "p15", FStDateTime);
  457. ITSDb_SQLBind(pADO, "p16", FEdDateTime);
  458. #endif
  459. ITSDb_SQLOpen(pADO);
  460. #if USE_MEMDATA
  461. dxMemData1->DisableControls();
  462. dxMemData1->Close();
  463. dxMemData1->CreateFieldsFromDataSet(pADO);
  464. dxMemData1->LoadFromDataSet(pADO);
  465. dxMemData1->Open();
  466. dxMemData1->First();
  467. dxMemData1->EnableControls();
  468. pADO->Close();
  469. DspReportFacility2MemData();
  470. #else
  471. DspReportFacility2();
  472. #endif
  473. }
  474. catch(EDatabaseError &E)
  475. {
  476. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  477. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  478. throw Exception(String(E.ClassName()) + E.Message);
  479. }
  480. catch(Exception &e)
  481. {
  482. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  483. DBERRORMSG(Caption, String(e.ClassName()), e.Message, sQry);
  484. throw Exception(FrmLang->lblDbErr->Caption);//"알수없는 오류가 발생하였습니다.");
  485. }
  486. }
  487. //---------------------------------------------------------------------------
  488. void __fastcall TIRP00101::DspReportFacility2()
  489. {
  490. TADOQuery *pADO = ADOQry;
  491. try
  492. {
  493. try {
  494. TvList->BeginUpdate();
  495. FRows = m_pGDC->AppendRecord();
  496. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  497. m_pGDC->Values[FRows][Column02->Index] = cxLabel6->Caption;//"장애일시";
  498. m_pGDC->Values[FRows][Column03->Index] = cxLabel7->Caption;//"장비유형";
  499. m_pGDC->Values[FRows][Column04->Index] = cxLabel8->Caption;//"아이디";
  500. m_pGDC->Values[FRows][Column05->Index] = cxLabel9->Caption;//"명칭";
  501. m_pGDC->Values[FRows][Column06->Index] = cxLabel10->Caption;//"통신장애";
  502. m_pGDC->Values[FRows][Column90->Index] = "1";
  503. for( ; !pADO->Eof; pADO->Next())
  504. {
  505. FRows = m_pGDC->AppendRecord();
  506. String sRgstDt = pADO->FieldByName("RGST_DT")->AsString;
  507. sRgstDt.Insert(":", 13);
  508. sRgstDt.Insert(":", 11);
  509. sRgstDt.Insert(" ", 9);
  510. sRgstDt.Insert("-", 7);
  511. sRgstDt.Insert("-", 5);
  512. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  513. m_pGDC->Values[FRows][Column02->Index] = sRgstDt;
  514. m_pGDC->Values[FRows][Column03->Index] = pADO->FieldByName("FCLT_TYPE")->AsString;
  515. m_pGDC->Values[FRows][Column04->Index] = pADO->FieldByName("FCLT_ID")->AsString;
  516. m_pGDC->Values[FRows][Column05->Index] = pADO->FieldByName("FCLT_NM")->AsString;
  517. m_pGDC->Values[FRows][Column06->Index] = cxLabel11->Caption;//"통신두절";
  518. m_pGDC->Values[FRows][Column90->Index] = "0";
  519. }
  520. FRows = m_pGDC->AppendRecord();
  521. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  522. }
  523. __finally
  524. {
  525. if (pADO)
  526. {
  527. pADO->Close();
  528. }
  529. TvList->EndUpdate();
  530. }
  531. }
  532. catch(EDatabaseError &E)
  533. {
  534. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  535. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  536. throw Exception(String(E.ClassName()) + E.Message);
  537. }
  538. catch(Exception &e)
  539. {
  540. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  541. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  542. throw Exception(String(e.ClassName()) + e.Message);
  543. }
  544. }
  545. //---------------------------------------------------------------------------
  546. void __fastcall TIRP00101::DspReportFacility2MemData()
  547. {
  548. try
  549. {
  550. FRows = m_pGDC->AppendRecord();
  551. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  552. m_pGDC->Values[FRows][Column02->Index] = cxLabel6->Caption;//"장애일시";
  553. m_pGDC->Values[FRows][Column03->Index] = cxLabel7->Caption;//"장비유형";
  554. m_pGDC->Values[FRows][Column04->Index] = cxLabel8->Caption;//"아이디";
  555. m_pGDC->Values[FRows][Column05->Index] = cxLabel9->Caption;//"명칭";
  556. m_pGDC->Values[FRows][Column06->Index] = cxLabel10->Caption;//"통신장애";
  557. m_pGDC->Values[FRows][Column90->Index] = "1";
  558. while(!dxMemData1->Eof)
  559. {
  560. FRows = m_pGDC->AppendRecord();
  561. String sRgstDt = dxMemData1->Fields->FieldByName("RGST_DT")->AsString;
  562. sRgstDt.Insert(":", 13);
  563. sRgstDt.Insert(":", 11);
  564. sRgstDt.Insert(" ", 9);
  565. sRgstDt.Insert("-", 7);
  566. sRgstDt.Insert("-", 5);
  567. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  568. m_pGDC->Values[FRows][Column02->Index] = sRgstDt;
  569. m_pGDC->Values[FRows][Column03->Index] = dxMemData1->Fields->FieldByName("FCLT_TYPE")->AsString;
  570. m_pGDC->Values[FRows][Column04->Index] = dxMemData1->Fields->FieldByName("FCLT_ID")->AsString;
  571. m_pGDC->Values[FRows][Column05->Index] = dxMemData1->Fields->FieldByName("FCLT_NM")->AsString;
  572. m_pGDC->Values[FRows][Column06->Index] = cxLabel11->Caption;//"통신두절";
  573. m_pGDC->Values[FRows][Column90->Index] = "0";
  574. dxMemData1->Next();
  575. }
  576. FRows = m_pGDC->AppendRecord();
  577. m_pGDC->Values[FRows][Column01->Index] = cxLabel5->Caption;//"장애 현황";
  578. dxMemData1->Close();
  579. }
  580. catch(EDatabaseError &E)
  581. {
  582. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  583. //DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  584. throw Exception(String(E.ClassName()) + E.Message);
  585. }
  586. catch(Exception &e)
  587. {
  588. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  589. //DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  590. throw Exception(String(e.ClassName()) + e.Message);
  591. }
  592. }
  593. //---------------------------------------------------------------------------
  594. void __fastcall TIRP00101::SelReportTraffic1()
  595. {
  596. TSqlCursor sqlCrs;
  597. String sQry;
  598. TADOQuery *pADO = ADOQry;
  599. sQry = "SELECT INCD_STRT_DT, B.CMMN_CD_KOR_NM, LINK_ID, INCD_TITL \r\n"
  600. " FROM TB_INCD_OCRR A, \r\n"
  601. " (SELECT CMMN_CD, CMMN_CD_KOR_NM \r\n"
  602. " FROM TB_CMMN_CD \r\n"
  603. " WHERE CMMN_CLSF_CD = 'IDTU' \r\n"
  604. " ) B \r\n"
  605. " WHERE INCD_STRT_DT BETWEEN :p01 AND :p02 \r\n"
  606. " AND INCD_PRGR_STEP_CD = 'ISS2' \r\n"
  607. " AND A.INCD_TYPE_CLSF_CD = B.CMMN_CD \r\n";
  608. try
  609. {
  610. ITSDb_SQLText(pADO, sQry);
  611. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  612. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  613. ITSDb_SQLOpen(pADO);
  614. #if USE_MEMDATA
  615. dxMemData1->DisableControls();
  616. dxMemData1->Close();
  617. dxMemData1->CreateFieldsFromDataSet(pADO);
  618. dxMemData1->LoadFromDataSet(pADO);
  619. dxMemData1->Open();
  620. dxMemData1->First();
  621. dxMemData1->EnableControls();
  622. pADO->Close();
  623. DspReportTraffic1MemData();
  624. #else
  625. DspReportTraffic1();
  626. #endif
  627. }
  628. catch(EDatabaseError &E)
  629. {
  630. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  631. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  632. throw Exception(String(E.ClassName()) + E.Message);
  633. }
  634. catch(Exception &e)
  635. {
  636. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  637. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  638. throw Exception(FrmLang->lblDbErr->Caption);//"알수없는 오류가 발생하였습니다.");
  639. }
  640. }
  641. //---------------------------------------------------------------------------
  642. void __fastcall TIRP00101::DspReportTraffic1()
  643. {
  644. TADOQuery *pADO = ADOQry;
  645. try
  646. {
  647. try {
  648. TvList->BeginUpdate();
  649. FRows = m_pGDC->AppendRecord();
  650. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  651. m_pGDC->Values[FRows][Column02->Index] = cxLabel13->Caption;//"시작일시";
  652. m_pGDC->Values[FRows][Column03->Index] = cxLabel14->Caption;//"돌발유형";
  653. m_pGDC->Values[FRows][Column04->Index] = cxLabel15->Caption;//"도로명";
  654. m_pGDC->Values[FRows][Column05->Index] = cxLabel16->Caption;//"돌발내용";
  655. m_pGDC->Values[FRows][Column90->Index] = "1";
  656. TItsLink *pLink;
  657. for( ; !pADO->Eof; pADO->Next())
  658. {
  659. FRows = m_pGDC->AppendRecord();
  660. String sLinkId = pADO->FieldByName("LINK_ID")->AsString;
  661. pLink = ItsLinkManager->FLists.Find(sLinkId);
  662. if (pLink)
  663. {
  664. sLinkId = pLink->ROAD_NAME;
  665. }
  666. String sStrtDt = pADO->FieldByName("INCD_STRT_DT")->AsString;
  667. sStrtDt.Insert(":", 13);
  668. sStrtDt.Insert(":", 11);
  669. sStrtDt.Insert(" ", 9);
  670. sStrtDt.Insert("-", 7);
  671. sStrtDt.Insert("-", 5);
  672. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  673. m_pGDC->Values[FRows][Column02->Index] = sStrtDt;
  674. m_pGDC->Values[FRows][Column03->Index] = pADO->FieldByName("CMMN_CD_KOR_NM")->AsString;
  675. m_pGDC->Values[FRows][Column04->Index] = sLinkId;
  676. m_pGDC->Values[FRows][Column05->Index] = pADO->FieldByName("INCD_TITL")->AsString;
  677. m_pGDC->Values[FRows][Column90->Index] = "0";
  678. }
  679. FRows = m_pGDC->AppendRecord();
  680. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  681. }
  682. __finally
  683. {
  684. if (pADO)
  685. {
  686. pADO->Close();
  687. }
  688. TvList->EndUpdate();
  689. }
  690. }
  691. catch(EDatabaseError &E)
  692. {
  693. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  694. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  695. throw Exception(String(E.ClassName()) + E.Message);
  696. }
  697. catch(Exception &e)
  698. {
  699. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  700. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  701. throw Exception(String(e.ClassName()) + e.Message);
  702. }
  703. }
  704. //---------------------------------------------------------------------------
  705. void __fastcall TIRP00101::DspReportTraffic1MemData()
  706. {
  707. try
  708. {
  709. FRows = m_pGDC->AppendRecord();
  710. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  711. m_pGDC->Values[FRows][Column02->Index] = cxLabel13->Caption;//"시작일시";
  712. m_pGDC->Values[FRows][Column03->Index] = cxLabel14->Caption;//"돌발유형";
  713. m_pGDC->Values[FRows][Column04->Index] = cxLabel15->Caption;//"도로명";
  714. m_pGDC->Values[FRows][Column05->Index] = cxLabel16->Caption;//"돌발내용";
  715. m_pGDC->Values[FRows][Column90->Index] = "1";
  716. TItsLink *pLink;
  717. while(!dxMemData1->Eof)
  718. {
  719. FRows = m_pGDC->AppendRecord();
  720. String sLinkId = dxMemData1->Fields->FieldByName("LINK_ID")->AsString;
  721. pLink = ItsLinkManager->FLists.Find(sLinkId);
  722. if (pLink)
  723. {
  724. sLinkId = pLink->ROAD_NAME;
  725. }
  726. String sStrtDt = dxMemData1->Fields->FieldByName("INCD_STRT_DT")->AsString;
  727. sStrtDt.Insert(":", 13);
  728. sStrtDt.Insert(":", 11);
  729. sStrtDt.Insert(" ", 9);
  730. sStrtDt.Insert("-", 7);
  731. sStrtDt.Insert("-", 5);
  732. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  733. m_pGDC->Values[FRows][Column02->Index] = sStrtDt;
  734. m_pGDC->Values[FRows][Column03->Index] = dxMemData1->Fields->FieldByName("CMMN_CD_KOR_NM")->AsString;
  735. m_pGDC->Values[FRows][Column04->Index] = sLinkId;
  736. m_pGDC->Values[FRows][Column05->Index] = dxMemData1->Fields->FieldByName("INCD_TITL")->AsString;
  737. m_pGDC->Values[FRows][Column90->Index] = "0";
  738. dxMemData1->Next();
  739. }
  740. FRows = m_pGDC->AppendRecord();
  741. m_pGDC->Values[FRows][Column01->Index] = cxLabel12->Caption;//"돌발 현황";
  742. dxMemData1->Close();
  743. }
  744. catch(EDatabaseError &E)
  745. {
  746. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  747. //DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  748. throw Exception(String(E.ClassName()) + E.Message);
  749. }
  750. catch(Exception &e)
  751. {
  752. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  753. //DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  754. throw Exception(String(e.ClassName()) + e.Message);
  755. }
  756. }
  757. //---------------------------------------------------------------------------
  758. void __fastcall TIRP00101::SelReportTraffic2()
  759. {
  760. TSqlCursor sqlCrs;
  761. String sQry;
  762. TADOQuery *pADO = ADOQry;
  763. sQry = "SELECT A.LINK_ID, B.PRCN_DT, A.CMTR_GRAD_CD, A.SPED \r\n"
  764. " FROM TB_LINK_TRAF_HS A, \r\n"
  765. " (SELECT LINK_ID, MAX(PRCN_DT) PRCN_DT \r\n"
  766. " FROM TB_LINK_TRAF_HS \r\n"
  767. " WHERE PRCN_DT BETWEEN :p01 AND :p02 \r\n"
  768. " AND CMTR_GRAD_CD <> 'LTC1' \r\n"
  769. " GROUP BY LINK_ID \r\n"
  770. " ) B \r\n"
  771. " WHERE A.LINK_ID = B.LINK_ID \r\n"
  772. " AND A.PRCN_DT = B.PRCN_DT \r\n"
  773. " ORDER BY 3 DESC \r\n";
  774. try
  775. {
  776. ITSDb_SQLText(pADO, sQry);
  777. ITSDb_SQLBind(pADO, "p01", FStDateTime);
  778. ITSDb_SQLBind(pADO, "p02", FEdDateTime);
  779. ITSDb_SQLOpen(pADO);
  780. #if USE_MEMDATA
  781. dxMemData1->DisableControls();
  782. dxMemData1->Close();
  783. dxMemData1->CreateFieldsFromDataSet(pADO);
  784. dxMemData1->LoadFromDataSet(pADO);
  785. dxMemData1->Open();
  786. dxMemData1->First();
  787. dxMemData1->EnableControls();
  788. pADO->Close();
  789. DspReportTraffic2MemData();
  790. #else
  791. DspReportTraffic2();
  792. #endif
  793. }
  794. catch(EDatabaseError &E)
  795. {
  796. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  797. DBERRORMSG(Caption, String(E.ClassName()), E.Message, "");
  798. throw Exception(String(E.ClassName()) + E.Message);
  799. }
  800. catch(Exception &e)
  801. {
  802. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  803. DBERRORMSG(Caption, String(e.ClassName()), e.Message, "");
  804. throw Exception(FrmLang->lblDbErr->Caption);//"알수없는 오류가 발생하였습니다.");
  805. }
  806. }
  807. //---------------------------------------------------------------------------
  808. void __fastcall TIRP00101::DspReportTraffic2()
  809. {
  810. TADOQuery *pADO = ADOQry;
  811. try
  812. {
  813. try {
  814. TvList->BeginUpdate();
  815. FRows = m_pGDC->AppendRecord();
  816. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  817. m_pGDC->Values[FRows][Column02->Index] = FrmLang->lblPrcsTm->Caption;//"가공시각";
  818. m_pGDC->Values[FRows][Column03->Index] = cxLabel18->Caption;//"속도";
  819. m_pGDC->Values[FRows][Column04->Index] = cxLabel15->Caption;//"도로명";
  820. m_pGDC->Values[FRows][Column05->Index] = cxLabel19->Caption;//"구간명";
  821. m_pGDC->Values[FRows][Column90->Index] = "1";
  822. TItsNode *pNode;
  823. TItsLink *pLink;
  824. for( ; !pADO->Eof; pADO->Next())
  825. {
  826. FRows = m_pGDC->AppendRecord();
  827. String sFNode, sTNode;
  828. sFNode = sTNode = "";
  829. String sLinkId = pADO->FieldByName("LINK_ID")->AsString;
  830. pLink = ItsLinkManager->FLists.Find(sLinkId);
  831. if (pLink)
  832. {
  833. sLinkId = pLink->ROAD_NAME;
  834. sFNode = pLink->F_NODE_ID;
  835. pNode = ItsNodeManager->FLists.Find(pLink->F_NODE_ID);
  836. if (pNode) sFNode = pNode->NODE_NAME;
  837. sTNode = pLink->T_NODE_ID;
  838. pNode = ItsNodeManager->FLists.Find(pLink->T_NODE_ID);
  839. if (pNode) sTNode = pNode->NODE_NAME;
  840. }
  841. String sPrcnDt = pADO->FieldByName("PRCN_DT")->AsString;
  842. sPrcnDt.Insert(":", 13);
  843. sPrcnDt.Insert(":", 11);
  844. sPrcnDt.Insert(" ", 9);
  845. sPrcnDt.Insert("-", 7);
  846. sPrcnDt.Insert("-", 5);
  847. String sGrade = pADO->FieldByName("CMTR_GRAD_CD")->AsString;
  848. if (sGrade == "LTC2")
  849. sGrade = FrmLang->lblLTC2->Caption + "(" + pADO->FieldByName("SPED")->AsString + ")";
  850. else
  851. sGrade = FrmLang->lblLTC3->Caption + "(" + pADO->FieldByName("SPED")->AsString + ")";
  852. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  853. m_pGDC->Values[FRows][Column02->Index] = sPrcnDt;
  854. m_pGDC->Values[FRows][Column03->Index] = sGrade;
  855. m_pGDC->Values[FRows][Column04->Index] = sLinkId;
  856. m_pGDC->Values[FRows][Column05->Index] = sFNode + "→" + sTNode;
  857. m_pGDC->Values[FRows][Column90->Index] = "0";
  858. }
  859. FRows = m_pGDC->AppendRecord();
  860. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  861. }
  862. __finally
  863. {
  864. if (pADO)
  865. {
  866. pADO->Close();
  867. }
  868. TvList->EndUpdate();
  869. }
  870. }
  871. catch(EDatabaseError &E)
  872. {
  873. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  874. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  875. throw Exception(String(E.ClassName()) + E.Message);
  876. }
  877. catch(Exception &e)
  878. {
  879. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  880. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  881. throw Exception(String(e.ClassName()) + e.Message);
  882. }
  883. }
  884. //---------------------------------------------------------------------------
  885. void __fastcall TIRP00101::DspReportTraffic2MemData()
  886. {
  887. try
  888. {
  889. FRows = m_pGDC->AppendRecord();
  890. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  891. m_pGDC->Values[FRows][Column02->Index] = FrmLang->lblPrcsTm->Caption;//"가공시각";
  892. m_pGDC->Values[FRows][Column03->Index] = cxLabel18->Caption;//"속도";
  893. m_pGDC->Values[FRows][Column04->Index] = cxLabel15->Caption;//"도로명";
  894. m_pGDC->Values[FRows][Column05->Index] = cxLabel19->Caption;//"구간명";
  895. m_pGDC->Values[FRows][Column90->Index] = "1";
  896. TItsNode *pNode;
  897. TItsLink *pLink;
  898. while(!dxMemData1->Eof)
  899. {
  900. FRows = m_pGDC->AppendRecord();
  901. String sFNode, sTNode;
  902. sFNode = sTNode = "";
  903. String sLinkId = dxMemData1->Fields->FieldByName("LINK_ID")->AsString;
  904. pLink = ItsLinkManager->FLists.Find(sLinkId);
  905. if (pLink)
  906. {
  907. sLinkId = pLink->ROAD_NAME;
  908. sFNode = pLink->F_NODE_ID;
  909. pNode = ItsNodeManager->FLists.Find(pLink->F_NODE_ID);
  910. if (pNode) sFNode = pNode->NODE_NAME;
  911. sTNode = pLink->T_NODE_ID;
  912. pNode = ItsNodeManager->FLists.Find(pLink->T_NODE_ID);
  913. if (pNode) sTNode = pNode->NODE_NAME;
  914. }
  915. String sPrcnDt = dxMemData1->Fields->FieldByName("PRCN_DT")->AsString;
  916. sPrcnDt.Insert(":", 13);
  917. sPrcnDt.Insert(":", 11);
  918. sPrcnDt.Insert(" ", 9);
  919. sPrcnDt.Insert("-", 7);
  920. sPrcnDt.Insert("-", 5);
  921. String sGrade = dxMemData1->Fields->FieldByName("CMTR_GRAD_CD")->AsString;
  922. if (sGrade == "LTC2")
  923. sGrade = FrmLang->lblLTC2->Caption + "(" + dxMemData1->Fields->FieldByName("SPED")->AsString + ")";//"지체(" + dxMemData1->Fields->FieldByName("SPED")->AsString + ")";
  924. else
  925. sGrade = FrmLang->lblLTC3->Caption + "(" + dxMemData1->Fields->FieldByName("SPED")->AsString + ")";//"정체(" + dxMemData1->Fields->FieldByName("SPED")->AsString + ")";
  926. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  927. m_pGDC->Values[FRows][Column02->Index] = sPrcnDt;
  928. m_pGDC->Values[FRows][Column03->Index] = sGrade;
  929. m_pGDC->Values[FRows][Column04->Index] = sLinkId;
  930. m_pGDC->Values[FRows][Column05->Index] = sFNode + "→" + sTNode;
  931. m_pGDC->Values[FRows][Column90->Index] = "0";
  932. dxMemData1->Next();
  933. }
  934. FRows = m_pGDC->AppendRecord();
  935. m_pGDC->Values[FRows][Column01->Index] = cxLabel17->Caption;//"지/정체 현황";
  936. dxMemData1->Close();
  937. }
  938. catch(EDatabaseError &E)
  939. {
  940. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  941. //DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  942. throw Exception(String(E.ClassName()) + E.Message);
  943. }
  944. catch(Exception &e)
  945. {
  946. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  947. //DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  948. throw Exception(String(e.ClassName()) + e.Message);
  949. }
  950. }
  951. //---------------------------------------------------------------------------
  952. void __fastcall TIRP00101::OnMessage(TMessage &Msg)
  953. {
  954. switch (Msg.Msg)
  955. {
  956. case WM_PARAM_DATABASE:
  957. if (WP_DB_SELECT_OK == Msg.WParam)
  958. {
  959. //ShowMessage("Select Ok");
  960. }
  961. break;
  962. }
  963. }
  964. //---------------------------------------------------------------------------
  965. void __fastcall TIRP00101::BtnExlSaveClick(TObject *Sender)
  966. {
  967. TcxGrid *pGrid = CxList;
  968. TcxGridTableView *pView = TvList;
  969. String sTitle;
  970. if (FRptType == 1)
  971. sTitle = lblType1->Caption;//"교통보고서";
  972. else
  973. sTitle = lblType2->Caption;//"시설물보고서";
  974. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  975. }
  976. //---------------------------------------------------------------------------
  977. void __fastcall TIRP00101::FormClose(TObject *Sender, TCloseAction &Action)
  978. {
  979. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  980. CommClose();
  981. //IRP00101 = NULL;
  982. }
  983. //---------------------------------------------------------------------------
  984. void __fastcall TIRP00101::TvListCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  985. bool &ADone)
  986. {
  987. if (AViewInfo)
  988. {
  989. String sType = AViewInfo->GridRecord->DisplayTexts[Column90->Index];
  990. if (sType == "1")
  991. ACanvas->Brush->Color = clOlive; //컬럼소제목
  992. }
  993. }
  994. //---------------------------------------------------------------------------
  995. void __fastcall TIRP00101::FormDestroy(TObject *Sender)
  996. {
  997. CommClose();
  998. }
  999. //---------------------------------------------------------------------------