FrmCrsTrafVolDirSubF.cpp 82 KB

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