IRP00101F.cpp 53 KB

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