IRP00101F.cpp 52 KB

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