FrmCrsTrafVolDirSubF.cpp 91 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "AppGlobalF.h"
  4. #include "ITSSkinF.h"
  5. #include "ITSUtilF.h"
  6. #include "ITSDbF.h"
  7. #include "ITSLogF.h"
  8. #include "ITSLangTransF.h"
  9. #pragma hdrstop
  10. #include "FrmCrsTrafVolDirSubF.h"
  11. //---------------------------------------------------------------------------
  12. #pragma package(smart_init)
  13. #pragma link "cxButtons"
  14. #pragma link "cxCalc"
  15. #pragma link "cxCheckBox"
  16. #pragma link "cxClasses"
  17. #pragma link "cxContainer"
  18. #pragma link "cxControls"
  19. #pragma link "cxCustomData"
  20. #pragma link "cxData"
  21. #pragma link "cxDataStorage"
  22. #pragma link "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 "cxLookAndFeelPainters"
  31. #pragma link "cxLookAndFeels"
  32. #pragma link "cxSplitter"
  33. #pragma link "cxStyles"
  34. #pragma link "cxTextEdit"
  35. #pragma link "dxSkinBlack"
  36. #pragma link "dxSkinBlue"
  37. #pragma link "dxSkinCaramel"
  38. #pragma link "dxSkinCoffee"
  39. #pragma link "dxSkinDarkRoom"
  40. #pragma link "dxSkinDarkSide"
  41. #pragma link "dxSkinFoggy"
  42. #pragma link "dxSkinGlassOceans"
  43. #pragma link "dxSkiniMaginary"
  44. #pragma link "dxSkinLilian"
  45. #pragma link "dxSkinLiquidSky"
  46. #pragma link "dxSkinLondonLiquidSky"
  47. #pragma link "dxSkinMcSkin"
  48. #pragma link "dxSkinMoneyTwins"
  49. #pragma link "dxSkinOffice2007Black"
  50. #pragma link "dxSkinOffice2007Blue"
  51. #pragma link "dxSkinOffice2007Green"
  52. #pragma link "dxSkinOffice2007Pink"
  53. #pragma link "dxSkinOffice2007Silver"
  54. #pragma link "dxSkinOffice2010Black"
  55. #pragma link "dxSkinOffice2010Blue"
  56. #pragma link "dxSkinOffice2010Silver"
  57. #pragma link "dxSkinsCore"
  58. #pragma link "dxSkinscxPCPainter"
  59. #pragma link "dxSkinSeven"
  60. #pragma link "dxSkinSharp"
  61. #pragma link "dxSkinSilver"
  62. #pragma link "dxSkinStardust"
  63. #pragma link "cxLabel"
  64. #pragma link "cxGridBandedTableView"
  65. #pragma link "cxSpinEdit"
  66. #pragma link "FRAME_ChartF"
  67. #pragma link "cxDropDownEdit"
  68. #pragma link "cxMaskEdit"
  69. #pragma resource "*.dfm"
  70. //TFrmCrsTrafVolDirSub *FrmCrsTrafVolDirSub = NULL;
  71. //---------------------------------------------------------------------------
  72. __fastcall TFrmCrsTrafVolDirSub::TFrmCrsTrafVolDirSub(TComponent* Owner, HWND hHandle, String sFrom, String sTo, String sCrossId, String sCamId, int nStatType, bool isLane, TCross *pObj)
  73. : TForm(Owner)
  74. {
  75. LangTrans->Translate(this, ITSDb_GetConnection());
  76. ITSSkin_Load(this);
  77. //CMM_LoadForm(g_sFormsDir, this);
  78. FParent = hHandle;
  79. FStDateTime = sFrom;
  80. FEdDateTime = sTo;
  81. FCrossId = sCrossId;
  82. FCamId = sCamId;
  83. FStatType = nStatType;
  84. FLane = isLane;
  85. FCrossObj = pObj;
  86. FCrossNm = FCrossObj->CROSS_NM;
  87. FCamNm = "";
  88. Col05->Visible = FLane;
  89. int bandIdx = 1;
  90. int colIdx = ColD10->Index;
  91. for (int ii = bandIdx; ii <= 10; ii++)
  92. {
  93. TvList->Bands->Items[ii]->Visible = false;
  94. TvList->Bands->Items[ii]->VisibleForCustomization = false;
  95. TvList->Columns[colIdx]->Visible = false;
  96. TvList->Columns[colIdx]->VisibleForCustomization = false;
  97. colIdx++;
  98. }
  99. bandIdx = 1;
  100. colIdx = ColD10->Index;
  101. FOR_STL(TCrossCam*, pCam, FCrossObj->FLists)
  102. {
  103. TvList->Bands->Items[bandIdx]->Caption = pCam->CAM_NM;
  104. TvList->Bands->Items[bandIdx]->Visible = true;
  105. TvList->Bands->Items[bandIdx]->VisibleForCustomization = true;
  106. TvList->Columns[colIdx]->Visible = true;
  107. TvList->Columns[colIdx]->VisibleForCustomization = true;
  108. bandIdx++;
  109. colIdx++;
  110. if (bandIdx >=11) {
  111. break;
  112. }
  113. }
  114. if (FLane)
  115. {
  116. //차선별 이력일 경우 차트를 그리지 않는다
  117. PnlChart->Visible = false;
  118. spltChart->Visible = false;
  119. }
  120. else
  121. {
  122. FRAMEChart1->LblOptionName->Caption = "카메라";
  123. FRAMEChart1->LblOptionName->Visible = true;
  124. FRAMEChart1->CbOption->Visible = true;
  125. }
  126. FRAMEChart1->LblOptionName->Visible = false;
  127. FRAMEChart1->CbOption->Visible = false;
  128. }
  129. //---------------------------------------------------------------------------
  130. void __fastcall TFrmCrsTrafVolDirSub::FormInit()
  131. {
  132. ADOQry->Connection = ITSDb_GetConnection();
  133. m_pGDC = TvList->DataController;
  134. TvList->OptionsView->NoDataToDisplayInfoText = Caption + ": " + lblText1->Caption;//조회결과가 없습니다.";
  135. FRAMEChart1->FTitle = Caption;//"시설물 통신단절통계";
  136. FRAMEChart1->SetChartLegend("시간", "교통량");
  137. FRAMEChart1->ChartValueDisplay(FRAMEChart1->ChkDisplayVal->Checked);
  138. FRAMEChart1->TvChart->ToolBox->CustomizeButton = true;
  139. FRAMEChart1->TvChart->Legend->Position = cppDefault;
  140. FRAMEChart1->TvChart->DiagramStackedBar->Enabled = true;
  141. FRAMEChart1->TvChart->DiagramStackedColumn->Enabled = true;
  142. FRAMEChart1->TvChart->DiagramStackedColumn->Active = true;
  143. //FRAMEChart1->TvChart->DiagramColumn->Active = true;
  144. if (!FLane) FillChartOptions();
  145. LblSearch->Caption = lblText2->Caption + FStDateTime.SubString(1, 12) + " ~ " + FEdDateTime.SubString(1, 12);
  146. }
  147. //---------------------------------------------------------------------------
  148. void __fastcall TFrmCrsTrafVolDirSub::FillChartOptions()
  149. {
  150. #if 0
  151. FRAMEChart1->CbOption->Properties->OnChange = NULL;
  152. FRAMEChart1->CbOption->Properties->Items->Clear();
  153. TCross* pCross = CrossManager->FLists.Find(FCrossId);
  154. if (pCross)
  155. {
  156. if (FCamNm == "*ALL*")
  157. {
  158. FOR_STL(TCrossCam*, pCam, pCross->FLists)
  159. {
  160. FRAMEChart1->CbOption->Properties->Items->Add("[" + pCam->CAM_ID + "] " + pCam->CAM_NM);
  161. }
  162. }
  163. else
  164. {
  165. String sCamId = StringReplace(FCamId, "'", "", TReplaceFlags() << rfReplaceAll);
  166. FRAMEChart1->CbOption->Properties->Items->Add("[" + sCamId + "] " + FCamNm);
  167. }
  168. }
  169. FRAMEChart1->CbOption->ItemIndex = 0;
  170. FRAMEChart1->CbOption->Properties->OnChange = CbOptionPropertiesChange;
  171. #endif
  172. }
  173. //---------------------------------------------------------------------------
  174. void __fastcall TFrmCrsTrafVolDirSub::FormShow(TObject *Sender)
  175. {
  176. FormInit();
  177. Refresh();
  178. TmrShow->Enabled = true;
  179. }
  180. //---------------------------------------------------------------------------
  181. void __fastcall TFrmCrsTrafVolDirSub::CommClose()
  182. {
  183. //CMM_SaveForm(g_sFormsDir, this);
  184. //FrmVmsLogSub = NULL;
  185. }
  186. //---------------------------------------------------------------------------
  187. void __fastcall TFrmCrsTrafVolDirSub::TmrShowTimer(TObject *Sender)
  188. {
  189. TmrShow->Enabled = false;
  190. if (FLane)
  191. {
  192. switch(FStatType)
  193. {
  194. case 0: Sel05M_Lane(); break; //5분
  195. case 1: Sel15M_Lane(); break; //15분
  196. case 2: Sel30M_Lane(); break; //30분
  197. case 3: Sel60M_Lane(); break; //1시간
  198. case 4: SelDay_Lane(); break; //일
  199. }
  200. }
  201. else
  202. {
  203. switch(FStatType)
  204. {
  205. case 0: Sel05M(); break; //5분
  206. case 1: Sel15M(); break; //15분
  207. case 2: Sel30M(); break; //30분
  208. case 3: Sel60M(); break; //1시간
  209. case 4: SelDay(); break; //일
  210. }
  211. }
  212. }
  213. //---------------------------------------------------------------------------
  214. void __fastcall TFrmCrsTrafVolDirSub::ChkExpandClick(TObject *Sender)
  215. {
  216. CMM_ExpandCollapseChk(TvList, ChkExpand->Checked);
  217. }
  218. //---------------------------------------------------------------------------
  219. void __fastcall TFrmCrsTrafVolDirSub::SelHistoryLane()
  220. {
  221. TSqlCursor sqlCrs;
  222. String sQry;
  223. TADOQuery *pADO = ADOQry;
  224. sQry = "SELECT B.CROSS_ID, \r\n"
  225. " B.CROSS_NM AS CROSS_NM, \r\n"
  226. " B.CAM_NM AS CAM_NM, \r\n"
  227. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24MISS') AS COL_DATE, \r\n"
  228. " TO_CHAR(A.CAP_DATE, 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  229. " A.CAP_DATE, \r\n"
  230. " A.CAM_ID, \r\n"
  231. " A.DIRECTION, \r\n"
  232. " A.LANE, \r\n"
  233. " A.OCC, \r\n"
  234. " A.VOL, \r\n"
  235. " A.SPD, \r\n"
  236. " A.QUEUE, \r\n"
  237. " A.WALK, \r\n"
  238. " A.WALK_ILLEGAL, \r\n"
  239. " A.GO_SMALL, \r\n"
  240. " A.GO_LARGE, \r\n"
  241. " A.GO_BUS, \r\n"
  242. " A.LEFT_SMALL, \r\n"
  243. " A.LEFT_LARGE, \r\n"
  244. " A.LEFT_BUS, \r\n"
  245. " A.RIGHT_SMALL, \r\n"
  246. " A.RIGHT_LARGE, \r\n"
  247. " A.RIGHT_BUS, \r\n"
  248. " A.UTURN_SMALL, \r\n"
  249. " A.UTURN_LARGE, \r\n"
  250. " A.UTURN_BUS \r\n"
  251. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  252. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  253. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  254. " FROM MST_CROSS X, \r\n"
  255. " MST_CCAM Y \r\n"
  256. " WHERE X.CROSS_ID = :p01 \r\n"
  257. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  258. " ) B \r\n"
  259. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  260. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  261. " ORDER BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE, A.DIRECTION, A.LANE \r\n";
  262. try
  263. {
  264. ITSDb_SQLText(pADO, sQry);
  265. ITSDb_SQLBind(pADO, "p01", FCrossId);
  266. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  267. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  268. ITSDb_SQLOpen(pADO);
  269. }
  270. catch(EDatabaseError &E)
  271. {
  272. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  273. throw Exception(String(E.ClassName()) + E.Message);
  274. }
  275. catch(Exception &e)
  276. {
  277. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  278. throw Exception(String(e.ClassName()) + e.Message);
  279. }
  280. SelHistory();
  281. }
  282. //---------------------------------------------------------------------------
  283. void __fastcall TFrmCrsTrafVolDirSub::SelHistorySum()
  284. {
  285. TSqlCursor sqlCrs;
  286. String sQry;
  287. TADOQuery *pADO = ADOQry;
  288. sQry = "SELECT B.CROSS_ID, \r\n"
  289. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  290. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  291. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24MISS') AS COL_DATE, \r\n"
  292. " TO_CHAR(A.CAP_DATE, 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  293. " A.CAP_DATE AS CAP_DATE, \r\n"
  294. " A.CAM_ID AS CAM_ID, \r\n"
  295. " MAX(A.DIRECTION) AS DIRECTION, \r\n"
  296. " MAX(A.LANE) AS LANE, \r\n"
  297. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  298. " SUM(A.VOL) AS VOL, \r\n"
  299. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  300. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  301. " SUM(A.WALK) AS WALK, \r\n"
  302. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  303. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  304. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  305. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  306. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  307. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  308. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  309. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  310. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  311. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  312. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  313. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  314. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  315. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  316. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  317. " FROM MST_CROSS X, \r\n"
  318. " MST_CCAM Y \r\n"
  319. " WHERE X.CROSS_ID = :p01 \r\n"
  320. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  321. " ) B \r\n"
  322. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  323. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  324. " GROUP BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE \r\n"
  325. " ORDER BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE \r\n";
  326. try
  327. {
  328. ITSDb_SQLText(pADO, sQry);
  329. ITSDb_SQLBind(pADO, "p01", FCrossId);
  330. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  331. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  332. ITSDb_SQLOpen(pADO);
  333. ITSDb_SQLOpen(pADO);
  334. }
  335. catch(EDatabaseError &E)
  336. {
  337. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  338. throw Exception(String(E.ClassName()) + E.Message);
  339. }
  340. catch(Exception &e)
  341. {
  342. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  343. throw Exception(String(e.ClassName()) + e.Message);
  344. }
  345. SelHistory();
  346. }
  347. //---------------------------------------------------------------------------
  348. void __fastcall TFrmCrsTrafVolDirSub::SelHistoryLaneHour()
  349. {
  350. TSqlCursor sqlCrs;
  351. String sQry;
  352. TADOQuery *pADO = ADOQry;
  353. sQry = "SELECT B.CROSS_ID, \r\n"
  354. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  355. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  356. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24') AS COL_DATE, \r\n"
  357. " TO_CHAR(MIN(A.CAP_DATE), 'YYYY-MM-DD HH24') AS DSP_DATE, \r\n"
  358. " A.CAM_ID AS CAM_ID, \r\n"
  359. " A.LANE AS LANE, \r\n"
  360. " MAX(A.DIRECTION) AS DIRECTION, \r\n"
  361. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  362. " SUM(A.VOL) AS VOL, \r\n"
  363. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  364. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  365. " SUM(A.WALK) AS WALK, \r\n"
  366. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  367. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  368. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  369. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  370. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  371. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  372. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  373. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  374. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  375. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  376. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  377. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  378. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  379. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  380. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  381. " FROM MST_CROSS X, \r\n"
  382. " MST_CCAM Y \r\n"
  383. " WHERE X.CROSS_ID = :p01 \r\n"
  384. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  385. " ) B \r\n"
  386. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  387. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  388. " GROUP BY B.CROSS_ID, A.CAM_ID, TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24'), LANE \r\n"
  389. " ORDER BY B.CROSS_ID, A.CAM_ID, TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24'), LANE \r\n";
  390. try
  391. {
  392. ITSDb_SQLText(pADO, sQry);
  393. ITSDb_SQLBind(pADO, "p01", FCrossId);
  394. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  395. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  396. ITSDb_SQLOpen(pADO);
  397. }
  398. catch(EDatabaseError &E)
  399. {
  400. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  401. throw Exception(String(E.ClassName()) + E.Message);
  402. }
  403. catch(Exception &e)
  404. {
  405. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  406. throw Exception(String(e.ClassName()) + e.Message);
  407. }
  408. SelHistory();
  409. }
  410. //---------------------------------------------------------------------------
  411. void __fastcall TFrmCrsTrafVolDirSub::SelHistorySumHour()
  412. {
  413. TSqlCursor sqlCrs;
  414. String sQry;
  415. TADOQuery *pADO = ADOQry;
  416. sQry = "SELECT B.CROSS_ID, \r\n"
  417. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  418. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  419. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24') AS COL_DATE, \r\n"
  420. " TO_CHAR(MIN(A.CAP_DATE), 'YYYY-MM-DD HH24') AS DSP_DATE, \r\n"
  421. " A.CAM_ID AS CAM_ID, \r\n"
  422. " MAX(A.DIRECTION) AS DIRECTION, \r\n"
  423. " MAX(A.LANE) AS LANE, \r\n"
  424. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  425. " SUM(A.VOL) AS VOL, \r\n"
  426. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  427. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  428. " SUM(A.WALK) AS WALK, \r\n"
  429. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  430. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  431. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  432. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  433. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  434. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  435. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  436. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  437. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  438. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  439. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  440. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  441. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  442. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  443. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  444. " FROM MST_CROSS X, \r\n"
  445. " MST_CCAM Y \r\n"
  446. " WHERE X.CROSS_ID = :p01 \r\n"
  447. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  448. " ) B \r\n"
  449. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  450. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  451. " GROUP BY B.CROSS_ID, A.CAM_ID, TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24') \r\n"
  452. " ORDER BY B.CROSS_ID, A.CAM_ID, TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24') \r\n";
  453. try
  454. {
  455. ITSDb_SQLText(pADO, sQry);
  456. ITSDb_SQLBind(pADO, "p01", FCrossId);
  457. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  458. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  459. ITSDb_SQLOpen(pADO);
  460. ITSDb_SQLOpen(pADO);
  461. }
  462. catch(EDatabaseError &E)
  463. {
  464. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  465. throw Exception(String(E.ClassName()) + E.Message);
  466. }
  467. catch(Exception &e)
  468. {
  469. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  470. throw Exception(String(e.ClassName()) + e.Message);
  471. }
  472. SelHistory();
  473. }
  474. //---------------------------------------------------------------------------
  475. void __fastcall TFrmCrsTrafVolDirSub::Sel05M()
  476. {
  477. TSqlCursor sqlCrs;
  478. String sQry;
  479. TADOQuery *pADO = ADOQry;
  480. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  481. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  482. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  483. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24MISS') AS COL_DATE, \r\n"
  484. " TO_CHAR(A.CAP_DATE, 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  485. " A.CAM_ID AS CAM_ID, \r\n"
  486. " MAX(A.LANE) AS LANE, \r\n"
  487. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  488. " SUM(A.VOL) AS VOL, \r\n"
  489. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  490. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  491. " SUM(A.WALK) AS WALK, \r\n"
  492. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  493. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  494. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  495. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  496. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  497. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  498. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  499. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  500. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  501. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  502. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  503. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  504. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  505. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  506. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  507. " FROM MST_CROSS X, \r\n"
  508. " MST_CCAM Y \r\n"
  509. " WHERE X.CROSS_ID = :p01 \r\n"
  510. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  511. " ) B \r\n"
  512. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  513. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  514. " GROUP BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE \r\n"
  515. " ORDER BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE \r\n";
  516. try
  517. {
  518. ITSDb_SQLText(pADO, sQry);
  519. //ITSDb_SQLBind(pADO, "p01", FCamId);
  520. ITSDb_SQLBind(pADO, "p01", FCrossId);
  521. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  522. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  523. ITSDb_SQLOpen(pADO);
  524. ITSDb_SQLOpen(pADO);
  525. }
  526. catch(EDatabaseError &E)
  527. {
  528. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  529. throw Exception(String(E.ClassName()) + E.Message);
  530. }
  531. catch(Exception &e)
  532. {
  533. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  534. throw Exception(String(e.ClassName()) + e.Message);
  535. }
  536. SelHistory();
  537. }
  538. //---------------------------------------------------------------------------
  539. void __fastcall TFrmCrsTrafVolDirSub::Sel05M_Lane()
  540. {
  541. TSqlCursor sqlCrs;
  542. String sQry;
  543. TADOQuery *pADO = ADOQry;
  544. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  545. " B.CROSS_NM AS CROSS_NM, \r\n"
  546. " B.CAM_NM AS CAM_NM, \r\n"
  547. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24MISS') AS COL_DATE, \r\n"
  548. " TO_CHAR(A.CAP_DATE, 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  549. " A.CAM_ID, \r\n"
  550. " A.LANE, \r\n"
  551. " A.OCC, \r\n"
  552. " A.VOL, \r\n"
  553. " A.SPD, \r\n"
  554. " A.QUEUE, \r\n"
  555. " A.WALK, \r\n"
  556. " A.GO_SMALL, \r\n"
  557. " A.GO_LARGE, \r\n"
  558. " A.GO_BUS, \r\n"
  559. " A.LEFT_SMALL, \r\n"
  560. " A.LEFT_LARGE, \r\n"
  561. " A.LEFT_BUS, \r\n"
  562. " A.RIGHT_SMALL, \r\n"
  563. " A.RIGHT_LARGE, \r\n"
  564. " A.RIGHT_BUS, \r\n"
  565. " A.UTURN_SMALL, \r\n"
  566. " A.UTURN_LARGE, \r\n"
  567. " A.UTURN_BUS \r\n"
  568. " FROM TRI_CCAM_5MIN_LOG A, \r\n"
  569. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  570. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  571. " FROM MST_CROSS X, \r\n"
  572. " MST_CCAM Y \r\n"
  573. " WHERE X.CROSS_ID = :p01 \r\n"
  574. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  575. " ) B \r\n"
  576. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  577. " AND A.CAP_DATE BETWEEN TO_DATE(:p02, 'YYYYMMDDHH24MISS') AND TO_DATE(:p03, 'YYYYMMDDHH24MISS') \r\n"
  578. " ORDER BY B.CROSS_ID, A.CAM_ID, A.CAP_DATE, A.LANE \r\n";
  579. try
  580. {
  581. ITSDb_SQLText(pADO, sQry);
  582. //ITSDb_SQLBind(pADO, "p01", FCamId);
  583. ITSDb_SQLBind(pADO, "p01", FCrossId);
  584. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  585. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  586. ITSDb_SQLOpen(pADO);
  587. }
  588. catch(EDatabaseError &E)
  589. {
  590. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  591. throw Exception(String(E.ClassName()) + E.Message);
  592. }
  593. catch(Exception &e)
  594. {
  595. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  596. throw Exception(String(e.ClassName()) + e.Message);
  597. }
  598. SelHistory();
  599. }
  600. //---------------------------------------------------------------------------
  601. void __fastcall TFrmCrsTrafVolDirSub::Sel15M()
  602. {
  603. TSqlCursor sqlCrs;
  604. String sQry;
  605. TADOQuery *pADO = ADOQry;
  606. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  607. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  608. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  609. " A.STAT_DT AS COL_DATE, \r\n"
  610. " TO_CHAR(TO_DATE(A.STAT_DT, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  611. " A.CAM_ID AS CAM_ID, \r\n"
  612. " MAX(A.LANE) AS LANE, \r\n"
  613. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  614. " SUM(A.VOL) AS VOL, \r\n"
  615. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  616. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  617. " SUM(A.WALK) AS WALK, \r\n"
  618. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  619. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  620. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  621. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  622. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  623. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  624. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  625. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  626. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  627. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  628. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  629. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  630. " FROM TB_CCAM_VOL_15M_STAT A, \r\n"
  631. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  632. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  633. " FROM MST_CROSS X, \r\n"
  634. " MST_CCAM Y \r\n"
  635. " WHERE X.CROSS_ID = :p01 \r\n"
  636. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  637. " ) B \r\n"
  638. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  639. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  640. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_DT \r\n"
  641. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DT \r\n";
  642. try
  643. {
  644. ITSDb_SQLText(pADO, sQry);
  645. //ITSDb_SQLBind(pADO, "p01", FCamId);
  646. ITSDb_SQLBind(pADO, "p01", FCrossId);
  647. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  648. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  649. ITSDb_SQLOpen(pADO);
  650. ITSDb_SQLOpen(pADO);
  651. }
  652. catch(EDatabaseError &E)
  653. {
  654. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  655. throw Exception(String(E.ClassName()) + E.Message);
  656. }
  657. catch(Exception &e)
  658. {
  659. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  660. throw Exception(String(e.ClassName()) + e.Message);
  661. }
  662. SelHistory();
  663. }
  664. //---------------------------------------------------------------------------
  665. void __fastcall TFrmCrsTrafVolDirSub::Sel15M_Lane()
  666. {
  667. TSqlCursor sqlCrs;
  668. String sQry;
  669. TADOQuery *pADO = ADOQry;
  670. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  671. " B.CROSS_NM AS CROSS_NM, \r\n"
  672. " B.CAM_NM AS CAM_NM, \r\n"
  673. " A.STAT_DT AS COL_DATE, \r\n"
  674. " TO_CHAR(TO_DATE(A.STAT_DT, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  675. " A.CAM_ID, \r\n"
  676. " A.LANE, \r\n"
  677. " A.OCC, \r\n"
  678. " A.VOL, \r\n"
  679. " A.SPD, \r\n"
  680. " A.QUEUE, \r\n"
  681. " A.WALK, \r\n"
  682. " A.GO_SMALL, \r\n"
  683. " A.GO_LARGE, \r\n"
  684. " A.GO_BUS, \r\n"
  685. " A.LEFT_SMALL, \r\n"
  686. " A.LEFT_LARGE, \r\n"
  687. " A.LEFT_BUS, \r\n"
  688. " A.RIGHT_SMALL, \r\n"
  689. " A.RIGHT_LARGE, \r\n"
  690. " A.RIGHT_BUS, \r\n"
  691. " A.UTURN_SMALL, \r\n"
  692. " A.UTURN_LARGE, \r\n"
  693. " A.UTURN_BUS \r\n"
  694. " FROM TB_CCAM_VOL_15M_STAT A, \r\n"
  695. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  696. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  697. " FROM MST_CROSS X, \r\n"
  698. " MST_CCAM Y \r\n"
  699. " WHERE X.CROSS_ID = :p01 \r\n"
  700. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  701. " ) B \r\n"
  702. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  703. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  704. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DT, A.LANE \r\n";
  705. try
  706. {
  707. ITSDb_SQLText(pADO, sQry);
  708. //ITSDb_SQLBind(pADO, "p01", FCamId);
  709. ITSDb_SQLBind(pADO, "p01", FCrossId);
  710. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  711. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  712. ITSDb_SQLOpen(pADO);
  713. }
  714. catch(EDatabaseError &E)
  715. {
  716. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  717. throw Exception(String(E.ClassName()) + E.Message);
  718. }
  719. catch(Exception &e)
  720. {
  721. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  722. throw Exception(String(e.ClassName()) + e.Message);
  723. }
  724. SelHistory();
  725. }
  726. //---------------------------------------------------------------------------
  727. void __fastcall TFrmCrsTrafVolDirSub::Sel30M()
  728. {
  729. TSqlCursor sqlCrs;
  730. String sQry;
  731. TADOQuery *pADO = ADOQry;
  732. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  733. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  734. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  735. " A.STAT_30M AS COL_DATE, \r\n"
  736. " TO_CHAR(TO_DATE(A.STAT_30M, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  737. " A.CAM_ID AS CAM_ID, \r\n"
  738. " MAX(A.LANE) AS LANE, \r\n"
  739. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  740. " SUM(A.VOL) AS VOL, \r\n"
  741. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  742. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  743. " SUM(A.WALK) AS WALK, \r\n"
  744. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  745. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  746. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  747. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  748. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  749. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  750. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  751. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  752. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  753. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  754. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  755. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  756. " FROM TB_CCAM_VOL_15M_STAT A, \r\n"
  757. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  758. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  759. " FROM MST_CROSS X, \r\n"
  760. " MST_CCAM Y \r\n"
  761. " WHERE X.CROSS_ID = :p01 \r\n"
  762. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  763. " ) B \r\n"
  764. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  765. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  766. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_30M \r\n"
  767. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_30M \r\n";
  768. try
  769. {
  770. ITSDb_SQLText(pADO, sQry);
  771. //ITSDb_SQLBind(pADO, "p01", FCamId);
  772. ITSDb_SQLBind(pADO, "p01", FCrossId);
  773. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  774. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  775. ITSDb_SQLOpen(pADO);
  776. ITSDb_SQLOpen(pADO);
  777. }
  778. catch(EDatabaseError &E)
  779. {
  780. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  781. throw Exception(String(E.ClassName()) + E.Message);
  782. }
  783. catch(Exception &e)
  784. {
  785. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  786. throw Exception(String(e.ClassName()) + e.Message);
  787. }
  788. SelHistory();
  789. }
  790. //---------------------------------------------------------------------------
  791. void __fastcall TFrmCrsTrafVolDirSub::Sel30M_Lane()
  792. {
  793. TSqlCursor sqlCrs;
  794. String sQry;
  795. TADOQuery *pADO = ADOQry;
  796. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  797. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  798. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  799. " A.STAT_30M AS COL_DATE, \r\n"
  800. " TO_CHAR(TO_DATE(A.STAT_30M, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS DSP_DATE, \r\n"
  801. " A.CAM_ID AS CAM_ID, \r\n"
  802. " A.LANE AS LANE, \r\n"
  803. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  804. " SUM(A.VOL) AS VOL, \r\n"
  805. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  806. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  807. " SUM(A.WALK) AS WALK, \r\n"
  808. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  809. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  810. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  811. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  812. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  813. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  814. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  815. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  816. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  817. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  818. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  819. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  820. " FROM TB_CCAM_VOL_15M_STAT A, \r\n"
  821. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  822. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  823. " FROM MST_CROSS X, \r\n"
  824. " MST_CCAM Y \r\n"
  825. " WHERE X.CROSS_ID = :p01 \r\n"
  826. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  827. " ) B \r\n"
  828. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  829. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  830. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_30M, A.LANE \r\n"
  831. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_30M, A.LANE \r\n";
  832. try
  833. {
  834. ITSDb_SQLText(pADO, sQry);
  835. //ITSDb_SQLBind(pADO, "p01", FCamId);
  836. ITSDb_SQLBind(pADO, "p01", FCrossId);
  837. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  838. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  839. ITSDb_SQLOpen(pADO);
  840. }
  841. catch(EDatabaseError &E)
  842. {
  843. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  844. throw Exception(String(E.ClassName()) + E.Message);
  845. }
  846. catch(Exception &e)
  847. {
  848. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  849. throw Exception(String(e.ClassName()) + e.Message);
  850. }
  851. SelHistory();
  852. }
  853. //---------------------------------------------------------------------------
  854. void __fastcall TFrmCrsTrafVolDirSub::Sel60M()
  855. {
  856. TSqlCursor sqlCrs;
  857. String sQry;
  858. TADOQuery *pADO = ADOQry;
  859. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  860. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  861. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  862. " A.STAT_DT AS COL_DATE, \r\n"
  863. " TO_CHAR(TO_DATE(A.STAT_DT, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24') AS DSP_DATE, \r\n"
  864. " A.CAM_ID AS CAM_ID, \r\n"
  865. " MAX(A.LANE) AS LANE, \r\n"
  866. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  867. " SUM(A.VOL) AS VOL, \r\n"
  868. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  869. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  870. " SUM(A.WALK) AS WALK, \r\n"
  871. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  872. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  873. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  874. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  875. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  876. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  877. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  878. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  879. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  880. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  881. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  882. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  883. " FROM TB_CCAM_VOL_HH_STAT A, \r\n"
  884. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  885. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  886. " FROM MST_CROSS X, \r\n"
  887. " MST_CCAM Y \r\n"
  888. " WHERE X.CROSS_ID = :p01 \r\n"
  889. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  890. " ) B \r\n"
  891. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  892. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  893. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_DT \r\n"
  894. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DT \r\n";
  895. try
  896. {
  897. ITSDb_SQLText(pADO, sQry);
  898. //ITSDb_SQLBind(pADO, "p01", FCamId);
  899. ITSDb_SQLBind(pADO, "p01", FCrossId);
  900. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  901. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  902. ITSDb_SQLOpen(pADO);
  903. ITSDb_SQLOpen(pADO);
  904. }
  905. catch(EDatabaseError &E)
  906. {
  907. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  908. throw Exception(String(E.ClassName()) + E.Message);
  909. }
  910. catch(Exception &e)
  911. {
  912. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  913. throw Exception(String(e.ClassName()) + e.Message);
  914. }
  915. SelHistory();
  916. }
  917. //---------------------------------------------------------------------------
  918. void __fastcall TFrmCrsTrafVolDirSub::Sel60M_Lane()
  919. {
  920. TSqlCursor sqlCrs;
  921. String sQry;
  922. TADOQuery *pADO = ADOQry;
  923. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  924. " B.CROSS_NM AS CROSS_NM, \r\n"
  925. " B.CAM_NM AS CAM_NM, \r\n"
  926. " A.STAT_DT AS COL_DATE, \r\n"
  927. " TO_CHAR(TO_DATE(A.STAT_DT, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24') AS DSP_DATE, \r\n"
  928. " A.CAM_ID, \r\n"
  929. " A.LANE, \r\n"
  930. " A.OCC, \r\n"
  931. " A.VOL, \r\n"
  932. " A.SPD, \r\n"
  933. " A.QUEUE, \r\n"
  934. " A.WALK, \r\n"
  935. " A.GO_SMALL, \r\n"
  936. " A.GO_LARGE, \r\n"
  937. " A.GO_BUS, \r\n"
  938. " A.LEFT_SMALL, \r\n"
  939. " A.LEFT_LARGE, \r\n"
  940. " A.LEFT_BUS, \r\n"
  941. " A.RIGHT_SMALL, \r\n"
  942. " A.RIGHT_LARGE, \r\n"
  943. " A.RIGHT_BUS, \r\n"
  944. " A.UTURN_SMALL, \r\n"
  945. " A.UTURN_LARGE, \r\n"
  946. " A.UTURN_BUS \r\n"
  947. " FROM TB_CCAM_VOL_HH_STAT A, \r\n"
  948. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  949. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  950. " FROM MST_CROSS X, \r\n"
  951. " MST_CCAM Y \r\n"
  952. " WHERE X.CROSS_ID = :p01 \r\n"
  953. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  954. " ) B \r\n"
  955. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  956. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  957. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DT, A.LANE \r\n";
  958. try
  959. {
  960. ITSDb_SQLText(pADO, sQry);
  961. //ITSDb_SQLBind(pADO, "p01", FCamId);
  962. ITSDb_SQLBind(pADO, "p01", FCrossId);
  963. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  964. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  965. ITSDb_SQLOpen(pADO);
  966. }
  967. catch(EDatabaseError &E)
  968. {
  969. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  970. throw Exception(String(E.ClassName()) + E.Message);
  971. }
  972. catch(Exception &e)
  973. {
  974. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  975. throw Exception(String(e.ClassName()) + e.Message);
  976. }
  977. SelHistory();
  978. }
  979. //---------------------------------------------------------------------------
  980. void __fastcall TFrmCrsTrafVolDirSub::SelDay()
  981. {
  982. TSqlCursor sqlCrs;
  983. String sQry;
  984. TADOQuery *pADO = ADOQry;
  985. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  986. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  987. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  988. " A.STAT_DAY AS COL_DATE, \r\n"
  989. " TO_CHAR(TO_DATE(A.STAT_DAY, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD') AS DSP_DATE, \r\n"
  990. " A.CAM_ID AS CAM_ID, \r\n"
  991. " MAX(A.LANE) AS LANE, \r\n"
  992. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  993. " SUM(A.VOL) AS VOL, \r\n"
  994. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  995. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  996. " SUM(A.WALK) AS WALK, \r\n"
  997. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  998. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  999. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  1000. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  1001. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  1002. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  1003. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  1004. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  1005. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  1006. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  1007. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  1008. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  1009. " FROM TB_CCAM_VOL_HH_STAT A, \r\n"
  1010. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  1011. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  1012. " FROM MST_CROSS X, \r\n"
  1013. " MST_CCAM Y \r\n"
  1014. " WHERE X.CROSS_ID = :p01 \r\n"
  1015. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  1016. " ) B \r\n"
  1017. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  1018. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  1019. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_DAY \r\n"
  1020. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DAY \r\n";
  1021. try
  1022. {
  1023. ITSDb_SQLText(pADO, sQry);
  1024. //ITSDb_SQLBind(pADO, "p01", FCamId);
  1025. ITSDb_SQLBind(pADO, "p01", FCrossId);
  1026. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  1027. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  1028. ITSDb_SQLOpen(pADO);
  1029. ITSDb_SQLOpen(pADO);
  1030. }
  1031. catch(EDatabaseError &E)
  1032. {
  1033. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  1034. throw Exception(String(E.ClassName()) + E.Message);
  1035. }
  1036. catch(Exception &e)
  1037. {
  1038. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  1039. throw Exception(String(e.ClassName()) + e.Message);
  1040. }
  1041. SelHistory();
  1042. }
  1043. //---------------------------------------------------------------------------
  1044. void __fastcall TFrmCrsTrafVolDirSub::SelDay_Lane()
  1045. {
  1046. TSqlCursor sqlCrs;
  1047. String sQry;
  1048. TADOQuery *pADO = ADOQry;
  1049. sQry = "SELECT B.CROSS_ID AS CROSS_ID, \r\n"
  1050. " MIN(B.CROSS_NM) AS CROSS_NM, \r\n"
  1051. " MIN(B.CAM_NM) AS CAM_NM, \r\n"
  1052. " A.STAT_DAY AS COL_DATE, \r\n"
  1053. " TO_CHAR(TO_DATE(A.STAT_DAY, 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD') AS DSP_DATE, \r\n"
  1054. " A.CAM_ID AS CAM_ID, \r\n"
  1055. " A.LANE AS LANE, \r\n"
  1056. " ROUND(AVG(A.OCC), 0) AS OCC, \r\n"
  1057. " SUM(A.VOL) AS VOL, \r\n"
  1058. " ROUND(AVG(A.SPD), 0) AS SPD, \r\n"
  1059. " ROUND(AVG(A.QUEUE), 0) AS QUEUE, \r\n"
  1060. " SUM(A.WALK) AS WALK, \r\n"
  1061. " SUM(A.GO_SMALL) AS GO_SMALL, \r\n"
  1062. " SUM(A.GO_LARGE) AS GO_LARGE, \r\n"
  1063. " SUM(A.GO_BUS) AS GO_BUS, \r\n"
  1064. " SUM(A.LEFT_SMALL) AS LEFT_SMALL, \r\n"
  1065. " SUM(A.LEFT_LARGE) AS LEFT_LARGE, \r\n"
  1066. " SUM(A.LEFT_BUS) AS LEFT_BUS, \r\n"
  1067. " SUM(A.RIGHT_SMALL) AS RIGHT_SMALL, \r\n"
  1068. " SUM(A.RIGHT_LARGE) AS RIGHT_LARGE, \r\n"
  1069. " SUM(A.RIGHT_BUS) AS RIGHT_BUS, \r\n"
  1070. " SUM(A.UTURN_SMALL) AS UTURN_SMALL, \r\n"
  1071. " SUM(A.UTURN_LARGE) AS UTURN_LARGE, \r\n"
  1072. " SUM(A.UTURN_BUS) AS UTURN_BUS \r\n"
  1073. " FROM TB_CCAM_VOL_HH_STAT A, \r\n"
  1074. " (SELECT X.CROSS_ID, X.NAME AS CROSS_NM, \r\n"
  1075. " Y.CAM_ID, Y.NAME AS CAM_NM \r\n"
  1076. " FROM MST_CROSS X, \r\n"
  1077. " MST_CCAM Y \r\n"
  1078. " WHERE X.CROSS_ID = :p01 \r\n"
  1079. " AND X.CROSS_ID = Y.CROSS_ID \r\n"
  1080. " ) B \r\n"
  1081. " WHERE A.CAM_ID = B.CAM_ID \r\n"
  1082. " AND A.STAT_DT BETWEEN :p02 AND :p03 \r\n"
  1083. " GROUP BY B.CROSS_ID, A.CAM_ID, A.STAT_DAY, A.LANE \r\n"
  1084. " ORDER BY B.CROSS_ID, A.CAM_ID, A.STAT_DAY, A.LANE \r\n";
  1085. try
  1086. {
  1087. ITSDb_SQLText(pADO, sQry);
  1088. //ITSDb_SQLBind(pADO, "p01", FCamId);
  1089. ITSDb_SQLBind(pADO, "p01", FCrossId);
  1090. ITSDb_SQLBind(pADO, "p02", FStDateTime);
  1091. ITSDb_SQLBind(pADO, "p03", FEdDateTime);
  1092. ITSDb_SQLOpen(pADO);
  1093. }
  1094. catch(EDatabaseError &E)
  1095. {
  1096. DBERRORMSG("History Qeury", String(E.ClassName()), E.Message, sQry);
  1097. throw Exception(String(E.ClassName()) + E.Message);
  1098. }
  1099. catch(Exception &e)
  1100. {
  1101. DBERRORMSG("History Qeury", String(e.ClassName()), e.Message, sQry);
  1102. throw Exception(String(e.ClassName()) + e.Message);
  1103. }
  1104. SelHistory();
  1105. }
  1106. //---------------------------------------------------------------------------
  1107. void __fastcall TFrmCrsTrafVolDirSub::SelHistory()
  1108. {
  1109. TADOQuery *pADO = ADOQry;
  1110. try
  1111. {
  1112. int nRow = 0;
  1113. int nDataCnt = 0;
  1114. try {
  1115. nDataCnt = pADO->RecordCount;
  1116. for( ; !pADO->Eof; pADO->Next(), nRow++)
  1117. {
  1118. String CROSS_ID = pADO->FieldByName("CROSS_ID")->AsString;
  1119. TCrossVol *pCrossVol = FLists.Find(CROSS_ID);
  1120. if (!pCrossVol)
  1121. {
  1122. pCrossVol = new TCrossVol();
  1123. if (!pCrossVol) continue;
  1124. pCrossVol->CROSS_ID = CROSS_ID;
  1125. pCrossVol->CROSS_NM = pADO->FieldByName("CROSS_NM")->AsString;
  1126. FLists.Push(CROSS_ID, pCrossVol);
  1127. }
  1128. String DSP_DATE = pADO->FieldByName("DSP_DATE")->AsString;
  1129. TDspVol *pDspVol = pCrossVol->FLists.Find(DSP_DATE);
  1130. if (!pDspVol)
  1131. {
  1132. pDspVol = new TDspVol();
  1133. if (!pDspVol) continue;
  1134. pDspVol->DSP_DATE = DSP_DATE;
  1135. pCrossVol->FLists.Push(DSP_DATE, pDspVol);
  1136. }
  1137. String LANE = "0";
  1138. if (FLane) LANE = pADO->FieldByName("LANE")->AsString;
  1139. TLaneVol *pLaneVol = pDspVol->FLists.Find(LANE);
  1140. if (!pLaneVol)
  1141. {
  1142. pLaneVol = new TLaneVol();
  1143. if (!pLaneVol) continue;
  1144. pLaneVol->LANE = LANE;
  1145. pLaneVol->VOL = 0;
  1146. pDspVol->FLists.Push(LANE, pLaneVol);
  1147. }
  1148. TCamVol *pCamVol = new TCamVol();
  1149. if (!pLaneVol)
  1150. {
  1151. continue;
  1152. }
  1153. String CAM_ID = pADO->FieldByName("CAM_ID")->AsString;
  1154. pCamVol->CAM_ID = CAM_ID;
  1155. pLaneVol->FLists.Push(CAM_ID, pCamVol);
  1156. int G1 = pADO->FieldByName("GO_SMALL")->AsInteger;
  1157. int G2 = pADO->FieldByName("GO_LARGE")->AsInteger;
  1158. int G3 = pADO->FieldByName("GO_BUS")->AsInteger;
  1159. pCamVol->G = G1+G2+G3;
  1160. int L1 = pADO->FieldByName("LEFT_SMALL")->AsInteger;
  1161. int L2 = pADO->FieldByName("LEFT_LARGE")->AsInteger;
  1162. int L3 = pADO->FieldByName("LEFT_BUS")->AsInteger;
  1163. pCamVol->L = L1+L2+L3;
  1164. int R1 = pADO->FieldByName("RIGHT_SMALL")->AsInteger;
  1165. int R2 = pADO->FieldByName("RIGHT_LARGE")->AsInteger;
  1166. int R3 = pADO->FieldByName("RIGHT_BUS")->AsInteger;
  1167. pCamVol->R = R1+R2+R3;
  1168. int U1 = pADO->FieldByName("UTURN_SMALL")->AsInteger;
  1169. int U2 = pADO->FieldByName("UTURN_LARGE")->AsInteger;
  1170. int U3 = pADO->FieldByName("UTURN_BUS")->AsInteger;
  1171. pCamVol->U = U1+U2+U3;
  1172. pLaneVol->VOL += pCamVol->Total();
  1173. #if 0
  1174. m_pGDC->Values[nRow][Col03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  1175. m_pGDC->Values[nRow][Col06->Index] = pADO->FieldByName("OCC")->AsInteger;
  1176. m_pGDC->Values[nRow][Col07->Index] = pADO->FieldByName("VOL")->AsInteger;
  1177. m_pGDC->Values[nRow][Col08->Index] = pADO->FieldByName("SPD")->AsInteger;
  1178. m_pGDC->Values[nRow][Col09->Index] = pADO->FieldByName("QUEUE")->AsInteger;
  1179. m_pGDC->Values[nRow][Col10->Index] = pADO->FieldByName("WALK")->AsInteger;
  1180. #endif
  1181. }
  1182. }
  1183. __finally
  1184. {
  1185. if (pADO)
  1186. {
  1187. pADO->Close();
  1188. }
  1189. DspHistory();
  1190. }
  1191. }
  1192. catch(EDatabaseError &E)
  1193. {
  1194. DBERRORMSG("History Results", String(E.ClassName()), E.Message, pADO->SQL->Text);
  1195. throw Exception(String(E.ClassName()) + E.Message);
  1196. }
  1197. catch(Exception &e)
  1198. {
  1199. DBERRORMSG("History Results", String(e.ClassName()), e.Message, pADO->SQL->Text);
  1200. throw Exception(String(e.ClassName()) + e.Message);
  1201. }
  1202. }
  1203. //---------------------------------------------------------------------------
  1204. void __fastcall TFrmCrsTrafVolDirSub::DspHistory()
  1205. {
  1206. TADOQuery *pADO = ADOQry;
  1207. try
  1208. {
  1209. CMM_ClearGridTableView(TvList);
  1210. int nRow = 0;
  1211. int nDataCnt = 0;
  1212. try {
  1213. TvList->BeginUpdate(lsimImmediate);
  1214. FOR_STL(TCrossVol*, pCrossVol, FLists)
  1215. {
  1216. FOR_STL(TDspVol*, pDspVol, pCrossVol->FLists)
  1217. {
  1218. FOR_STL(TLaneVol*, pLaneVol, pDspVol->FLists)
  1219. {
  1220. nRow = m_pGDC->AppendRecord();
  1221. m_pGDC->Values[nRow][ColCrossId->Index] = pCrossVol->CROSS_ID;
  1222. m_pGDC->Values[nRow][Col01->Index] = nRow+1;
  1223. m_pGDC->Values[nRow][Col02->Index] = pCrossVol->CROSS_NM;
  1224. m_pGDC->Values[nRow][Col04->Index] = pDspVol->DSP_DATE;
  1225. m_pGDC->Values[nRow][Col05->Index] = pLaneVol->LANE;
  1226. m_pGDC->Values[nRow][Col07->Index] = pLaneVol->VOL;
  1227. int dirIdx = ColD10->Index;
  1228. int volIdx = ColD1G->Index;
  1229. FOR_STL(TCrossCam*, pCam, FCrossObj->FLists)
  1230. {
  1231. TCamVol *pCamVol = pLaneVol->FLists.Find(pCam->CAM_ID);
  1232. if (pCamVol)
  1233. {
  1234. m_pGDC->Values[nRow][dirIdx] = pCamVol->Total();
  1235. m_pGDC->Values[nRow][volIdx++] = pCamVol->G;
  1236. m_pGDC->Values[nRow][volIdx++] = pCamVol->L;
  1237. m_pGDC->Values[nRow][volIdx++] = pCamVol->R;
  1238. m_pGDC->Values[nRow][volIdx++] = pCamVol->U;
  1239. }
  1240. else
  1241. {
  1242. m_pGDC->Values[nRow][dirIdx] = 0;
  1243. m_pGDC->Values[nRow][volIdx++] = 0;
  1244. m_pGDC->Values[nRow][volIdx++] = 0;
  1245. m_pGDC->Values[nRow][volIdx++] = 0;
  1246. m_pGDC->Values[nRow][volIdx++] = 0;
  1247. }
  1248. dirIdx++;
  1249. }
  1250. }
  1251. }
  1252. #if 0
  1253. m_pGDC->Values[nRow][Col03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  1254. m_pGDC->Values[nRow][Col06->Index] = pADO->FieldByName("OCC")->AsInteger;
  1255. m_pGDC->Values[nRow][Col08->Index] = pADO->FieldByName("SPD")->AsInteger;
  1256. m_pGDC->Values[nRow][Col09->Index] = pADO->FieldByName("QUEUE")->AsInteger;
  1257. m_pGDC->Values[nRow][Col10->Index] = pADO->FieldByName("WALK")->AsInteger;
  1258. m_pGDC->Values[nRow][ColCamId->Index] = pADO->FieldByName("CAM_ID")->AsString;
  1259. #endif
  1260. }
  1261. }
  1262. __finally
  1263. {
  1264. if (pADO)
  1265. {
  1266. pADO->Close();
  1267. }
  1268. TvList->EndUpdate();
  1269. if (!FLane)
  1270. {
  1271. DspChart();
  1272. }
  1273. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + lblCnt->Caption;//" 건";
  1274. String sEnd = "데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  1275. Application->MessageBox(sEnd.c_str(), L"데이터 조회 완료", MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  1276. }
  1277. }
  1278. catch(EDatabaseError &E)
  1279. {
  1280. DBERRORMSG("History Results", String(E.ClassName()), E.Message, pADO->SQL->Text);
  1281. throw Exception(String(E.ClassName()) + E.Message);
  1282. }
  1283. catch(Exception &e)
  1284. {
  1285. DBERRORMSG("History Results", String(e.ClassName()), e.Message, pADO->SQL->Text);
  1286. throw Exception(String(e.ClassName()) + e.Message);
  1287. }
  1288. }
  1289. //---------------------------------------------------------------------------
  1290. void __fastcall TFrmCrsTrafVolDirSub::DspChart()
  1291. {
  1292. FRAMEChart1->ChartValueDisplay(FRAMEChart1->ChkDisplayVal->Checked);
  1293. TcxGridChartView *TvChart = FRAMEChart1->TvChart;
  1294. try
  1295. {
  1296. TvChart->ClearSeries();
  1297. TvChart->DataController->RecordCount = 0;
  1298. //String sSelCamId = APP_GetCode(FRAMEChart1->CbOption);
  1299. //if (sSelCamId == "") return;
  1300. TcxGridChartSeries *pChart[10];
  1301. for (int ii = 0; ii < 10; ii++)
  1302. {
  1303. pChart[ii] = NULL;
  1304. }
  1305. int nRow = 0;
  1306. int nDataCnt = 0;
  1307. try {
  1308. TvList->BeginUpdate(lsimImmediate);
  1309. TvChart->BeginUpdate();
  1310. int idx = 0;
  1311. FOR_STL(TCrossCam*, pCam, FCrossObj->FLists)
  1312. {
  1313. pChart[idx] = TvChart->CreateSeries();
  1314. pChart[idx]->DataBinding->ValueType = "Integer";
  1315. pChart[idx]->DisplayText = pCam->CAM_NM;
  1316. idx++;
  1317. if (idx == 10) break;
  1318. }
  1319. int nRowCnt = TvList->DataController->RecordCount;
  1320. for (int ii = 0; ii < nRowCnt; ii++)
  1321. {
  1322. String sCrossId = TvList->DataController->Values[ii][ColCrossId->Index];
  1323. if (FCrossId != sCrossId) continue;
  1324. nRow = TvChart->DataController->AppendRecord();
  1325. if (TvList->Columns[ColD10->Index]->Visible)
  1326. {
  1327. pChart[0]->Values[nRow] = TvList->DataController->Values[ii][ColD10->Index];
  1328. }
  1329. if (TvList->Columns[ColD20->Index]->Visible)
  1330. {
  1331. pChart[1]->Values[nRow] = TvList->DataController->Values[ii][ColD20->Index];
  1332. }
  1333. if (TvList->Columns[ColD30->Index]->Visible)
  1334. {
  1335. pChart[2]->Values[nRow] = TvList->DataController->Values[ii][ColD30->Index];
  1336. }
  1337. if (TvList->Columns[ColD40->Index]->Visible)
  1338. {
  1339. pChart[3]->Values[nRow] = TvList->DataController->Values[ii][ColD40->Index];
  1340. }
  1341. if (TvList->Columns[ColD50->Index]->Visible)
  1342. {
  1343. pChart[4]->Values[nRow] = TvList->DataController->Values[ii][ColD50->Index];
  1344. }
  1345. if (TvList->Columns[ColD60->Index]->Visible)
  1346. {
  1347. pChart[5]->Values[nRow] = TvList->DataController->Values[ii][ColD60->Index];
  1348. }
  1349. if (TvList->Columns[ColD70->Index]->Visible)
  1350. {
  1351. pChart[6]->Values[nRow] = TvList->DataController->Values[ii][ColD70->Index];
  1352. }
  1353. if (TvList->Columns[ColD80->Index]->Visible)
  1354. {
  1355. pChart[7]->Values[nRow] = TvList->DataController->Values[ii][ColD80->Index];
  1356. }
  1357. if (TvList->Columns[ColD90->Index]->Visible)
  1358. {
  1359. pChart[8]->Values[nRow] = TvList->DataController->Values[ii][ColD90->Index];
  1360. }
  1361. if (TvList->Columns[ColD100->Index]->Visible)
  1362. {
  1363. pChart[9]->Values[nRow] = TvList->DataController->Values[ii][ColD100->Index];
  1364. }
  1365. String sCltTm = TvList->DataController->Values[ii][Col04->Index];
  1366. TvChart->Categories->Values[nRow] = sCltTm;//sCltTm.SubString(12, 5);
  1367. }
  1368. }
  1369. __finally
  1370. {
  1371. TvChart->EndUpdate();
  1372. TvList->EndUpdate();
  1373. }
  1374. }
  1375. catch(EDatabaseError &E)
  1376. {
  1377. throw Exception(String(E.ClassName()) + E.Message);
  1378. }
  1379. catch(Exception &e)
  1380. {
  1381. throw Exception(String(e.ClassName()) + e.Message);
  1382. }
  1383. }
  1384. //---------------------------------------------------------------------------
  1385. void __fastcall TFrmCrsTrafVolDirSub::BtnExlSaveClick(TObject *Sender)
  1386. {
  1387. TcxGrid *pGrid = CxList;
  1388. TcxGridTableView *pView = TvList;
  1389. String sTitle= Caption;
  1390. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  1391. //CMM_ExportToExcelFile(String pTitle, TcxGrid *pGrid, TcxGridTableView *pView, TForm *pOwner, bool bExpand=true, bool bSaveAll=true, bool bUseNativeFormat=true);
  1392. }
  1393. //---------------------------------------------------------------------------
  1394. void __fastcall TFrmCrsTrafVolDirSub::FormClose(TObject *Sender, TCloseAction &Action)
  1395. {
  1396. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  1397. CommClose();
  1398. }
  1399. //---------------------------------------------------------------------------
  1400. void __fastcall TFrmCrsTrafVolDirSub::FormDestroy(TObject *Sender)
  1401. {
  1402. //
  1403. }
  1404. //---------------------------------------------------------------------------
  1405. void __fastcall TFrmCrsTrafVolDirSub::CbOptionPropertiesChange(TObject *Sender)
  1406. {
  1407. //TcxComboBox *pCombo = (TcxComboBox*)Sender;
  1408. DspChart();
  1409. FRAMEChart1->EdFocus->SetFocus();
  1410. }
  1411. //---------------------------------------------------------------------------
  1412. void __fastcall TFrmCrsTrafVolDirSub::Col07CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  1413. bool &ADone)
  1414. {
  1415. TColor tColor = ACanvas->Brush->Color;
  1416. TColor tFont = clBlack;
  1417. try
  1418. {
  1419. if (!VarIsNull(AViewInfo->Value))
  1420. {
  1421. int value = AViewInfo->Value;
  1422. if (value == 0)
  1423. {
  1424. tColor = clSilver;
  1425. }
  1426. else
  1427. {
  1428. tColor = clLime;
  1429. }
  1430. }
  1431. else
  1432. {
  1433. tColor = clSilver;
  1434. }
  1435. //if (tColor == clSilver) tFont = tColor;
  1436. ACanvas->Font->Color = tFont;
  1437. ACanvas->SetBrushColor(tColor);
  1438. }
  1439. catch(...)
  1440. {
  1441. }
  1442. }
  1443. //---------------------------------------------------------------------------