FrmCrsTrafVolDirSubF.cpp 91 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575
  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) {
  1139. LANE = pADO->FieldByName("LANE")->AsString;
  1140. }
  1141. TLaneVol *pLaneVol = pDspVol->FLists.Find(LANE);
  1142. if (!pLaneVol)
  1143. {
  1144. pLaneVol = new TLaneVol();
  1145. if (!pLaneVol) continue;
  1146. pLaneVol->LANE = LANE;
  1147. pLaneVol->VOL = 0;
  1148. pDspVol->FLists.Push(LANE, pLaneVol);
  1149. }
  1150. TCamVol *pCamVol = new TCamVol();
  1151. if (!pLaneVol)
  1152. {
  1153. continue;
  1154. }
  1155. String CAM_ID = pADO->FieldByName("CAM_ID")->AsString;
  1156. pCamVol->CAM_ID = CAM_ID;
  1157. pLaneVol->FLists.Push(CAM_ID, pCamVol);
  1158. int G1 = pADO->FieldByName("GO_SMALL")->AsInteger;
  1159. int G2 = pADO->FieldByName("GO_LARGE")->AsInteger;
  1160. int G3 = pADO->FieldByName("GO_BUS")->AsInteger;
  1161. pCamVol->G = G1+G2+G3;
  1162. int L1 = pADO->FieldByName("LEFT_SMALL")->AsInteger;
  1163. int L2 = pADO->FieldByName("LEFT_LARGE")->AsInteger;
  1164. int L3 = pADO->FieldByName("LEFT_BUS")->AsInteger;
  1165. pCamVol->L = L1+L2+L3;
  1166. int R1 = pADO->FieldByName("RIGHT_SMALL")->AsInteger;
  1167. int R2 = pADO->FieldByName("RIGHT_LARGE")->AsInteger;
  1168. int R3 = pADO->FieldByName("RIGHT_BUS")->AsInteger;
  1169. pCamVol->R = R1+R2+R3;
  1170. int U1 = pADO->FieldByName("UTURN_SMALL")->AsInteger;
  1171. int U2 = pADO->FieldByName("UTURN_LARGE")->AsInteger;
  1172. int U3 = pADO->FieldByName("UTURN_BUS")->AsInteger;
  1173. pCamVol->U = U1+U2+U3;
  1174. pLaneVol->VOL += pCamVol->Total();
  1175. #if 0
  1176. m_pGDC->Values[nRow][Col03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  1177. m_pGDC->Values[nRow][Col06->Index] = pADO->FieldByName("OCC")->AsInteger;
  1178. m_pGDC->Values[nRow][Col07->Index] = pADO->FieldByName("VOL")->AsInteger;
  1179. m_pGDC->Values[nRow][Col08->Index] = pADO->FieldByName("SPD")->AsInteger;
  1180. m_pGDC->Values[nRow][Col09->Index] = pADO->FieldByName("QUEUE")->AsInteger;
  1181. m_pGDC->Values[nRow][Col10->Index] = pADO->FieldByName("WALK")->AsInteger;
  1182. #endif
  1183. }
  1184. }
  1185. __finally
  1186. {
  1187. if (pADO)
  1188. {
  1189. pADO->Close();
  1190. }
  1191. DspHistory();
  1192. }
  1193. }
  1194. catch(EDatabaseError &E)
  1195. {
  1196. DBERRORMSG("History Results", String(E.ClassName()), E.Message, pADO->SQL->Text);
  1197. throw Exception(String(E.ClassName()) + E.Message);
  1198. }
  1199. catch(Exception &e)
  1200. {
  1201. DBERRORMSG("History Results", String(e.ClassName()), e.Message, pADO->SQL->Text);
  1202. throw Exception(String(e.ClassName()) + e.Message);
  1203. }
  1204. }
  1205. //---------------------------------------------------------------------------
  1206. void __fastcall TFrmCrsTrafVolDirSub::DspHistory()
  1207. {
  1208. TADOQuery *pADO = ADOQry;
  1209. try
  1210. {
  1211. CMM_ClearGridTableView(TvList);
  1212. int nRow = 0;
  1213. int nDataCnt = 0;
  1214. try {
  1215. TvList->BeginUpdate(lsimImmediate);
  1216. FOR_STL(TCrossVol*, pCrossVol, FLists)
  1217. {
  1218. FOR_STL(TDspVol*, pDspVol, pCrossVol->FLists)
  1219. {
  1220. FOR_STL(TLaneVol*, pLaneVol, pDspVol->FLists)
  1221. {
  1222. nRow = m_pGDC->AppendRecord();
  1223. m_pGDC->Values[nRow][ColCrossId->Index] = pCrossVol->CROSS_ID;
  1224. m_pGDC->Values[nRow][Col01->Index] = nRow+1;
  1225. m_pGDC->Values[nRow][Col02->Index] = pCrossVol->CROSS_NM;
  1226. m_pGDC->Values[nRow][Col04->Index] = pDspVol->DSP_DATE;
  1227. m_pGDC->Values[nRow][Col05->Index] = pLaneVol->LANE;
  1228. m_pGDC->Values[nRow][Col07->Index] = pLaneVol->VOL;
  1229. int dirIdx = ColD10->Index;
  1230. int volIdx = ColD1G->Index;
  1231. FOR_STL(TCrossCam*, pCam, FCrossObj->FLists)
  1232. {
  1233. TCamVol *pCamVol = pLaneVol->FLists.Find(pCam->CAM_ID);
  1234. if (pCamVol)
  1235. {
  1236. m_pGDC->Values[nRow][dirIdx] = pCamVol->Total();
  1237. m_pGDC->Values[nRow][volIdx++] = pCamVol->G;
  1238. m_pGDC->Values[nRow][volIdx++] = pCamVol->L;
  1239. m_pGDC->Values[nRow][volIdx++] = pCamVol->R;
  1240. m_pGDC->Values[nRow][volIdx++] = pCamVol->U;
  1241. }
  1242. else
  1243. {
  1244. m_pGDC->Values[nRow][dirIdx] = 0;
  1245. m_pGDC->Values[nRow][volIdx++] = 0;
  1246. m_pGDC->Values[nRow][volIdx++] = 0;
  1247. m_pGDC->Values[nRow][volIdx++] = 0;
  1248. m_pGDC->Values[nRow][volIdx++] = 0;
  1249. }
  1250. dirIdx++;
  1251. if (volIdx >= ColD10U->Index) {
  1252. break;
  1253. }
  1254. }
  1255. }
  1256. }
  1257. #if 0
  1258. m_pGDC->Values[nRow][Col03->Index] = pADO->FieldByName("CAM_NM")->AsString;
  1259. m_pGDC->Values[nRow][Col06->Index] = pADO->FieldByName("OCC")->AsInteger;
  1260. m_pGDC->Values[nRow][Col08->Index] = pADO->FieldByName("SPD")->AsInteger;
  1261. m_pGDC->Values[nRow][Col09->Index] = pADO->FieldByName("QUEUE")->AsInteger;
  1262. m_pGDC->Values[nRow][Col10->Index] = pADO->FieldByName("WALK")->AsInteger;
  1263. m_pGDC->Values[nRow][ColCamId->Index] = pADO->FieldByName("CAM_ID")->AsString;
  1264. #endif
  1265. }
  1266. }
  1267. __finally
  1268. {
  1269. if (pADO)
  1270. {
  1271. pADO->Close();
  1272. }
  1273. TvList->EndUpdate();
  1274. if (!FLane)
  1275. {
  1276. DspChart();
  1277. }
  1278. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + lblCnt->Caption;//" 건";
  1279. String sEnd = "데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  1280. Application->MessageBox(sEnd.c_str(), L"데이터 조회 완료", MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  1281. }
  1282. }
  1283. catch(EDatabaseError &E)
  1284. {
  1285. DBERRORMSG("History Results", String(E.ClassName()), E.Message, pADO->SQL->Text);
  1286. throw Exception(String(E.ClassName()) + E.Message);
  1287. }
  1288. catch(Exception &e)
  1289. {
  1290. DBERRORMSG("History Results", String(e.ClassName()), e.Message, pADO->SQL->Text);
  1291. throw Exception(String(e.ClassName()) + e.Message);
  1292. }
  1293. }
  1294. //---------------------------------------------------------------------------
  1295. void __fastcall TFrmCrsTrafVolDirSub::DspChart()
  1296. {
  1297. FRAMEChart1->ChartValueDisplay(FRAMEChart1->ChkDisplayVal->Checked);
  1298. TcxGridChartView *TvChart = FRAMEChart1->TvChart;
  1299. try
  1300. {
  1301. TvChart->ClearSeries();
  1302. TvChart->DataController->RecordCount = 0;
  1303. //String sSelCamId = APP_GetCode(FRAMEChart1->CbOption);
  1304. //if (sSelCamId == "") return;
  1305. TcxGridChartSeries *pChart[10];
  1306. for (int ii = 0; ii < 10; ii++)
  1307. {
  1308. pChart[ii] = NULL;
  1309. }
  1310. int nRow = 0;
  1311. int nDataCnt = 0;
  1312. try {
  1313. TvList->BeginUpdate(lsimImmediate);
  1314. TvChart->BeginUpdate();
  1315. int idx = 0;
  1316. FOR_STL(TCrossCam*, pCam, FCrossObj->FLists)
  1317. {
  1318. pChart[idx] = TvChart->CreateSeries();
  1319. pChart[idx]->DataBinding->ValueType = "Integer";
  1320. pChart[idx]->DisplayText = pCam->CAM_NM;
  1321. idx++;
  1322. if (idx == 10) break;
  1323. }
  1324. int nRowCnt = TvList->DataController->RecordCount;
  1325. for (int ii = 0; ii < nRowCnt; ii++)
  1326. {
  1327. String sCrossId = TvList->DataController->Values[ii][ColCrossId->Index];
  1328. if (FCrossId != sCrossId) continue;
  1329. nRow = TvChart->DataController->AppendRecord();
  1330. if (TvList->Columns[ColD10->Index]->Visible)
  1331. {
  1332. pChart[0]->Values[nRow] = TvList->DataController->Values[ii][ColD10->Index];
  1333. }
  1334. if (TvList->Columns[ColD20->Index]->Visible)
  1335. {
  1336. pChart[1]->Values[nRow] = TvList->DataController->Values[ii][ColD20->Index];
  1337. }
  1338. if (TvList->Columns[ColD30->Index]->Visible)
  1339. {
  1340. pChart[2]->Values[nRow] = TvList->DataController->Values[ii][ColD30->Index];
  1341. }
  1342. if (TvList->Columns[ColD40->Index]->Visible)
  1343. {
  1344. pChart[3]->Values[nRow] = TvList->DataController->Values[ii][ColD40->Index];
  1345. }
  1346. if (TvList->Columns[ColD50->Index]->Visible)
  1347. {
  1348. pChart[4]->Values[nRow] = TvList->DataController->Values[ii][ColD50->Index];
  1349. }
  1350. if (TvList->Columns[ColD60->Index]->Visible)
  1351. {
  1352. pChart[5]->Values[nRow] = TvList->DataController->Values[ii][ColD60->Index];
  1353. }
  1354. if (TvList->Columns[ColD70->Index]->Visible)
  1355. {
  1356. pChart[6]->Values[nRow] = TvList->DataController->Values[ii][ColD70->Index];
  1357. }
  1358. if (TvList->Columns[ColD80->Index]->Visible)
  1359. {
  1360. pChart[7]->Values[nRow] = TvList->DataController->Values[ii][ColD80->Index];
  1361. }
  1362. if (TvList->Columns[ColD90->Index]->Visible)
  1363. {
  1364. pChart[8]->Values[nRow] = TvList->DataController->Values[ii][ColD90->Index];
  1365. }
  1366. if (TvList->Columns[ColD100->Index]->Visible)
  1367. {
  1368. pChart[9]->Values[nRow] = TvList->DataController->Values[ii][ColD100->Index];
  1369. }
  1370. String sCltTm = TvList->DataController->Values[ii][Col04->Index];
  1371. TvChart->Categories->Values[nRow] = sCltTm;//sCltTm.SubString(12, 5);
  1372. }
  1373. }
  1374. __finally
  1375. {
  1376. TvChart->EndUpdate();
  1377. TvList->EndUpdate();
  1378. }
  1379. }
  1380. catch(EDatabaseError &E)
  1381. {
  1382. throw Exception(String(E.ClassName()) + E.Message);
  1383. }
  1384. catch(Exception &e)
  1385. {
  1386. throw Exception(String(e.ClassName()) + e.Message);
  1387. }
  1388. }
  1389. //---------------------------------------------------------------------------
  1390. void __fastcall TFrmCrsTrafVolDirSub::BtnExlSaveClick(TObject *Sender)
  1391. {
  1392. TcxGrid *pGrid = CxList;
  1393. TcxGridTableView *pView = TvList;
  1394. String sTitle= Caption;
  1395. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  1396. //CMM_ExportToExcelFile(String pTitle, TcxGrid *pGrid, TcxGridTableView *pView, TForm *pOwner, bool bExpand=true, bool bSaveAll=true, bool bUseNativeFormat=true);
  1397. }
  1398. //---------------------------------------------------------------------------
  1399. void __fastcall TFrmCrsTrafVolDirSub::FormClose(TObject *Sender, TCloseAction &Action)
  1400. {
  1401. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  1402. CommClose();
  1403. }
  1404. //---------------------------------------------------------------------------
  1405. void __fastcall TFrmCrsTrafVolDirSub::FormDestroy(TObject *Sender)
  1406. {
  1407. //
  1408. }
  1409. //---------------------------------------------------------------------------
  1410. void __fastcall TFrmCrsTrafVolDirSub::CbOptionPropertiesChange(TObject *Sender)
  1411. {
  1412. //TcxComboBox *pCombo = (TcxComboBox*)Sender;
  1413. DspChart();
  1414. FRAMEChart1->EdFocus->SetFocus();
  1415. }
  1416. //---------------------------------------------------------------------------
  1417. void __fastcall TFrmCrsTrafVolDirSub::Col07CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  1418. bool &ADone)
  1419. {
  1420. TColor tColor = ACanvas->Brush->Color;
  1421. TColor tFont = clBlack;
  1422. try
  1423. {
  1424. if (!VarIsNull(AViewInfo->Value))
  1425. {
  1426. int value = AViewInfo->Value;
  1427. if (value == 0)
  1428. {
  1429. tColor = clSilver;
  1430. }
  1431. else
  1432. {
  1433. tColor = clLime;
  1434. }
  1435. }
  1436. else
  1437. {
  1438. tColor = clSilver;
  1439. }
  1440. //if (tColor == clSilver) tFont = tColor;
  1441. ACanvas->Font->Color = tFont;
  1442. ACanvas->SetBrushColor(tColor);
  1443. }
  1444. catch(...)
  1445. {
  1446. }
  1447. }
  1448. //---------------------------------------------------------------------------