IAN00501F.cpp 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "ITSDbF.h"
  6. #include "AppGlobalF.h"
  7. #include "WindowMsgF.h"
  8. #include "ITSLangTransF.h"
  9. #include "ITS_OPLibF.h"
  10. #pragma hdrstop
  11. #include "IAN00501F.h"
  12. //---------------------------------------------------------------------------
  13. #pragma package(smart_init)
  14. #pragma link "FRAME_ChartF"
  15. #pragma link "cxButtons"
  16. #pragma link "cxCalc"
  17. #pragma link "cxCheckBox"
  18. #pragma link "cxClasses"
  19. #pragma link "cxContainer"
  20. #pragma link "cxControls"
  21. #pragma link "cxCustomData"
  22. #pragma link "cxData"
  23. #pragma link "cxDataStorage"
  24. #pragma link "cxEdit"
  25. #pragma link "cxFilter"
  26. #pragma link "cxGraphics"
  27. #pragma link "cxGrid"
  28. #pragma link "cxGridBandedTableView"
  29. #pragma link "cxGridCustomTableView"
  30. #pragma link "cxGridCustomView"
  31. #pragma link "cxGridLevel"
  32. #pragma link "cxGridTableView"
  33. #pragma link "cxLookAndFeelPainters"
  34. #pragma link "cxLookAndFeels"
  35. #pragma link "cxSplitter"
  36. #pragma link "cxStyles"
  37. #pragma link "cxTextEdit"
  38. #pragma link "dxSkinBlack"
  39. #pragma link "dxSkinBlue"
  40. #pragma link "dxSkinsCore"
  41. #pragma link "dxSkinscxPCPainter"
  42. #pragma link "cxLabel"
  43. #pragma link "dxSkinMcSkin"
  44. #pragma resource "*.dfm"
  45. TIAN00501 *IAN00501 = NULL;
  46. //---------------------------------------------------------------------------
  47. __fastcall TIAN00501::TIAN00501(TComponent* Owner, HWND hHandle,
  48. String ALinkId, String ABaseMon, String ADiffMon, String AStTime, String AEdTime,
  49. int ALinkLevel, int APatternType, String APattrernWeek, String AWeekName)
  50. : TForm(Owner)
  51. {
  52. LangTrans->Translate(this, ITSDb_GetConnection());
  53. ITSSkin_Load(this);
  54. CMM_LoadForm(g_sFormsDir, this);
  55. FParent = hHandle;
  56. FLinkId = ALinkId;
  57. FBaseMon = ABaseMon,
  58. FDiffMon = ADiffMon;
  59. FStTime = AStTime,
  60. FEdTime = AEdTime;
  61. FLinkLevel = ALinkLevel;
  62. FPatternType = APatternType;
  63. FPatternWeek = APattrernWeek;
  64. FWeekName = AWeekName;
  65. //Caption = "패턴데이터 분석";
  66. }
  67. //---------------------------------------------------------------------------
  68. __fastcall TIAN00501::~TIAN00501(void)
  69. {
  70. }
  71. //--------------------------------------------------------------------------
  72. void __fastcall TIAN00501::FormInit()
  73. {
  74. ADOQry->Connection = ITSDb_GetConnection();
  75. m_pGDC = TvList->DataController;
  76. TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<패턴데이터 분석 정보>";
  77. FRAMEChart1->FTitle = Caption;//"패턴데이터 분석";
  78. //FRAMEChart1->SetChartLegend("패턴시각", "속도(Km)");
  79. FRAMEChart1->SetChartLegend(lblText1->Caption, "");//"패턴시각", "");
  80. FRAMEChart1->ChartValueDisplay(FRAMEChart1->ChkDisplayVal->Checked);
  81. FRAMEChart1->TvChart->ToolBox->CustomizeButton = true;
  82. FRAMEChart1->TvChart->Legend->Position = cppDefault;
  83. LblSearch->Caption = FrmLang->lblQryCond->Caption + FLinkId + " " + FWeekName ;
  84. }
  85. //---------------------------------------------------------------------------
  86. void __fastcall TIAN00501::FormShow(TObject *Sender)
  87. {
  88. FormInit();
  89. Refresh();
  90. TmrShow->Enabled = true;
  91. }
  92. //---------------------------------------------------------------------------
  93. void __fastcall TIAN00501::CommClose()
  94. {
  95. CMM_SaveForm(g_sFormsDir, this);
  96. //IAN00501 = NULL;
  97. }
  98. //---------------------------------------------------------------------------
  99. void __fastcall TIAN00501::TmrShowTimer(TObject *Sender)
  100. {
  101. TmrShow->Enabled = false;
  102. Application->ProcessMessages();
  103. SelHistory();
  104. }
  105. //---------------------------------------------------------------------------
  106. void __fastcall TIAN00501::ChkExpandClick(TObject *Sender)
  107. {
  108. CMM_ExpandCollapseChk(TvList, ChkExpand->Checked);
  109. }
  110. //---------------------------------------------------------------------------
  111. void __fastcall TIAN00501::SelHistory()
  112. {
  113. TSqlCursor sqlCrs;
  114. String sQry;
  115. TADOQuery *pADO = ADOQry;
  116. String sPatternTable;
  117. if (FLinkLevel == 0)
  118. sPatternTable = FPatternType == 0 ? "TB_LINK_5M_PTRN" : "TB_LINK_15M_PTRN";
  119. else
  120. if (FLinkLevel == 1)
  121. sPatternTable = FPatternType == 0 ? "TB_IFSC_5M_PTRN" : "TB_IFSC_15M_PTRN";
  122. else
  123. sPatternTable = FPatternType == 0 ? "TB_ROAD_5M_PTRN" : "TB_ROAD_15M_PTRN";
  124. if (FLinkLevel == 0)
  125. {
  126. #if 0
  127. sQry = "SELECT MAX(LINK_ID) LINK_ID, MAX(SECT_NAME) LINK_NAME, MAX(LINK_LENG) LINK_LENG, \r\n"
  128. " MAX(DAY_TYPE_CD) DAY_TYPE_CD, MAX(STAT_HM) STAT_HM, \r\n"
  129. " MAX(DECODE(STAT_YM, :p01, TFVL, 0)) TFVL_A, MAX(DECODE(STAT_YM, :p02, SPED, 0)) SPED_A, \r\n"
  130. " MAX(DECODE(STAT_YM, :p03, OCPY_RATE, 0)) OCPYRATE_A, MAX(DECODE(STAT_YM, :p04, TRVL_HH, 0)) TRVLHH_A, \r\n"
  131. " MAX(DECODE(STAT_YM, :p05, TFVL, 0)) TFVL_B, MAX(DECODE(STAT_YM, :p06, SPED, 0)) SPED_B, \r\n"
  132. " MAX(DECODE(STAT_YM, :p07, OCPY_RATE, 0)) OCPYRATE_B, MAX(DECODE(STAT_YM, :p08, TRVL_HH, 0)) TRVLHH_B \r\n"
  133. " FROM (SELECT B.STAT_YM, A.LINK_ID LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG, \r\n"
  134. " B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH \r\n"
  135. " FROM (SELECT T2.LINK_ID, T2.F_NODE_ID, T2.T_NODE_ID, T2.LINK_LENG, T3.NODE_NAME||'-'||T4.NODE_NAME SECT_NAME, \r\n"
  136. " T2.SECT_GRAD_CD \r\n"
  137. " FROM TB_LINK T2, TB_NODE T3, TB_NODE T4 \r\n"
  138. " WHERE T2.LINK_ID = :p09 \r\n"
  139. " AND T2.F_NODE_ID = T3.NODE_ID \r\n"
  140. " AND T2.T_NODE_ID = T4.NODE_ID \r\n"
  141. " ) A, \r\n"
  142. " (SELECT STAT_YM, LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH \r\n"
  143. " FROM " + sPatternTable + " \r\n"
  144. " WHERE LINK_ID = :p10 \r\n"
  145. " AND STAT_YM IN(:p11, :p12) \r\n"
  146. " AND STAT_HM BETWEEN :p13 AND :p14 \r\n"
  147. " AND DAY_TYPE_CD = :p15 \r\n"
  148. " ) B \r\n"
  149. " WHERE A.LINK_ID = B.LINK_ID \r\n"
  150. " ) \r\n"
  151. " GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM \r\n"
  152. " ORDER BY STAT_HM \r\n";
  153. #else
  154. sQry = "SELECT MAX(LINK_ID) LINK_ID, MAX(SECT_NAME) LINK_NAME, MAX(LINK_LENG) LINK_LENG, \r\n"
  155. " MAX(DAY_TYPE_CD) DAY_TYPE_CD, MAX(STAT_HM) STAT_HM, \r\n"
  156. " MAX(DECODE(STAT_YM, :p01, TFVL, 0)) TFVL_A, MAX(DECODE(STAT_YM, :p02, SPED, 0)) SPED_A, \r\n"
  157. " MAX(DECODE(STAT_YM, :p03, OCPY_RATE, 0)) OCPYRATE_A, MAX(DECODE(STAT_YM, :p04, TRVL_HH, 0)) TRVLHH_A, \r\n"
  158. " MAX(DECODE(STAT_YM, :p05, TFVL, 0)) TFVL_B, MAX(DECODE(STAT_YM, :p06, SPED, 0)) SPED_B, \r\n"
  159. " MAX(DECODE(STAT_YM, :p07, OCPY_RATE, 0)) OCPYRATE_B, MAX(DECODE(STAT_YM, :p08, TRVL_HH, 0)) TRVLHH_B \r\n"
  160. " FROM (SELECT B.STAT_YM, A.LINK_ID LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG, \r\n"
  161. " B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH \r\n"
  162. " FROM (SELECT T2.LINK_ID, T2.F_NODE, T2.T_NODE, T2.LINK_LENG, T3.NODE_NAME||'-'||T4.NODE_NAME SECT_NAME, \r\n"
  163. " T2.SECT_GRAD_CD \r\n"
  164. " FROM TB_LINK T2, TB_NODE T3, TB_NODE T4 \r\n"
  165. " WHERE T2.LINK_ID = :p09 \r\n"
  166. " AND T2.F_NODE = T3.NODE_ID \r\n"
  167. " AND T2.T_NODE = T4.NODE_ID \r\n"
  168. " ) A, \r\n"
  169. " (SELECT STAT_YM, LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH \r\n"
  170. " FROM " + sPatternTable + " \r\n"
  171. " WHERE LINK_ID = :p10 \r\n"
  172. " AND STAT_YM IN(:p11, :p12) \r\n"
  173. " AND STAT_HM BETWEEN :p13 AND :p14 \r\n"
  174. " AND DAY_TYPE_CD = :p15 \r\n"
  175. " ) B \r\n"
  176. " WHERE A.LINK_ID = B.LINK_ID \r\n"
  177. " ) \r\n"
  178. " GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM \r\n"
  179. " ORDER BY STAT_HM \r\n";
  180. #endif
  181. }
  182. else if (FLinkLevel == 1)
  183. {
  184. sQry = "SELECT MAX(LINK_ID) LINK_ID, MAX(SECT_NAME) LINK_NAME, MAX(LINK_LENG) LINK_LENG, \r\n"
  185. " MAX(DAY_TYPE_CD) DAY_TYPE_CD, MAX(STAT_HM) STAT_HM, \r\n"
  186. " MAX(DECODE(STAT_YM, :p01, TFVL, 0)) TFVL_A, MAX(DECODE(STAT_YM, :p02, SPED, 0)) SPED_A, \r\n"
  187. " MAX(DECODE(STAT_YM, :p03, OCPY_RATE, 0)) OCPYRATE_A, MAX(DECODE(STAT_YM, :p04, TRVL_HH, 0)) TRVLHH_A, \r\n"
  188. " MAX(DECODE(STAT_YM, :p05, TFVL, 0)) TFVL_B, MAX(DECODE(STAT_YM, :p06, SPED, 0)) SPED_B, \r\n"
  189. " MAX(DECODE(STAT_YM, :p07, OCPY_RATE, 0)) OCPYRATE_B, MAX(DECODE(STAT_YM, :p08, TRVL_HH, 0)) TRVLHH_B \r\n"
  190. " FROM (SELECT B.STAT_YM, A.LINK_ID LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG, \r\n"
  191. " B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH \r\n"
  192. " FROM (SELECT T2.IFSC_ID LINK_ID, T2.SECT_LNGT LINK_LENG, T2.STRT_NM||'-'||T2.END_NM SECT_NAME, T2.SECT_GRAD_CD \r\n"
  193. " FROM TB_IFSC T2 \r\n"
  194. " WHERE T2.IFSC_ID = :p09 \r\n"
  195. " ) A, \r\n"
  196. " (SELECT STAT_YM, IFSC_ID LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH \r\n"
  197. " FROM " + sPatternTable + " \r\n"
  198. " WHERE IFSC_ID = :p10 \r\n"
  199. " AND STAT_YM IN(:p11, :p12) \r\n"
  200. " AND STAT_HM BETWEEN :p13 AND :p14 \r\n"
  201. " AND DAY_TYPE_CD = :p15 \r\n"
  202. " ) B \r\n"
  203. " WHERE A.LINK_ID = B.LINK_ID \r\n"
  204. " ) \r\n"
  205. " GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM \r\n"
  206. " ORDER BY STAT_HM \r\n";
  207. }
  208. else if (FLinkLevel == 2)
  209. {
  210. sQry = "SELECT MAX(LINK_ID) LINK_ID, MAX(SECT_NAME) LINK_NAME, MAX(LINK_LENG) LINK_LENG, \r\n"
  211. " MAX(DAY_TYPE_CD) DAY_TYPE_CD, MAX(STAT_HM) STAT_HM, \r\n"
  212. " MAX(DECODE(STAT_YM, :p01, TFVL, 0)) TFVL_A, MAX(DECODE(STAT_YM, :p02, SPED, 0)) SPED_A, \r\n"
  213. " MAX(DECODE(STAT_YM, :p03, OCPY_RATE, 0)) OCPYRATE_A, MAX(DECODE(STAT_YM, :p04, TRVL_HH, 0)) TRVLHH_A, \r\n"
  214. " MAX(DECODE(STAT_YM, :p05, TFVL, 0)) TFVL_B, MAX(DECODE(STAT_YM, :p06, SPED, 0)) SPED_B, \r\n"
  215. " MAX(DECODE(STAT_YM, :p07, OCPY_RATE, 0)) OCPYRATE_B, MAX(DECODE(STAT_YM, :p08, TRVL_HH, 0)) TRVLHH_B \r\n"
  216. " FROM (SELECT B.STAT_YM, A.LINK_ID LINK_ID, SECT_NAME, A.LINK_LENG LINK_LENG, \r\n"
  217. " B.DAY_TYPE_CD, B.STAT_HM, B.TFVL, B.SPED, B.OCPY_RATE, B.TRVL_HH \r\n"
  218. " FROM (SELECT T2.ROAD_ID LINK_ID, T2.SECT_LNGT LINK_LENG, T2.STRT_NM||'-'||T2.END_NM SECT_NAME, T2.SECT_GRAD_CD \r\n"
  219. " FROM TB_ROAD T2 \r\n"
  220. " WHERE T2.ROAD_ID = :p09 \r\n"
  221. " ) A, \r\n"
  222. " (SELECT STAT_YM, ROAD_ID LINK_ID, DAY_TYPE_CD, STAT_HM, TFVL, SPED, OCPY_RATE, TRVL_HH \r\n"
  223. " FROM " + sPatternTable + " \r\n"
  224. " WHERE ROAD_ID = :p10 \r\n"
  225. " AND STAT_YM IN(:p11, :p12) \r\n"
  226. " AND STAT_HM BETWEEN :p13 AND :p14 \r\n"
  227. " AND DAY_TYPE_CD = :p15 \r\n"
  228. " ) B \r\n"
  229. " WHERE A.LINK_ID = B.LINK_ID \r\n"
  230. " ) \r\n"
  231. " GROUP BY LINK_ID, DAY_TYPE_CD, STAT_HM \r\n"
  232. " ORDER BY STAT_HM \r\n";
  233. }
  234. else return;
  235. try
  236. {
  237. ITSDb_SQLText(pADO, sQry);
  238. ITSDb_SQLBind(pADO, "p01", FBaseMon);
  239. ITSDb_SQLBind(pADO, "p02", FBaseMon);
  240. ITSDb_SQLBind(pADO, "p03", FBaseMon);
  241. ITSDb_SQLBind(pADO, "p04", FBaseMon);
  242. ITSDb_SQLBind(pADO, "p05", FDiffMon);
  243. ITSDb_SQLBind(pADO, "p06", FDiffMon);
  244. ITSDb_SQLBind(pADO, "p07", FDiffMon);
  245. ITSDb_SQLBind(pADO, "p08", FDiffMon);
  246. ITSDb_SQLBind(pADO, "p09", FLinkId);
  247. ITSDb_SQLBind(pADO, "p10", FLinkId);
  248. ITSDb_SQLBind(pADO, "p11", FBaseMon);
  249. ITSDb_SQLBind(pADO, "p12", FDiffMon);
  250. ITSDb_SQLBind(pADO, "p13", FStTime);
  251. ITSDb_SQLBind(pADO, "p14", FEdTime);
  252. ITSDb_SQLBind(pADO, "p15", FPatternWeek);
  253. ITSDb_SQLOpen(pADO);
  254. DspHistory();
  255. }
  256. catch(EDatabaseError &E)
  257. {
  258. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  259. DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry);
  260. throw Exception(String(E.ClassName()) + E.Message);
  261. }
  262. catch(Exception &exception)
  263. {
  264. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  265. DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry);
  266. throw Exception(String(exception.ClassName()) + exception.Message);
  267. }
  268. }
  269. //---------------------------------------------------------------------------
  270. void __fastcall TIAN00501::DspHistory()
  271. {
  272. TADOQuery *pADO = ADOQry;
  273. TcxGridChartView *TvChart = FRAMEChart1->TvChart;
  274. try
  275. {
  276. TcxGridChartSeries *pChart1 = NULL;
  277. TcxGridChartSeries *pChart2 = NULL;
  278. TcxGridChartSeries *pChart3 = NULL;
  279. TcxGridChartSeries *pChart4 = NULL;
  280. TcxGridChartSeries *pChart5 = NULL;
  281. TcxGridChartSeries *pChart6 = NULL;
  282. TvChart->ClearSeries();
  283. FRAMEChart1->ChartValueDisplay(FRAMEChart1->ChkDisplayVal->Checked);
  284. CMM_ClearGridTableView(TvList);
  285. int nRow = 0;
  286. int nDataCnt = 0;
  287. try
  288. {
  289. TvList->BeginUpdate();
  290. TvChart->BeginUpdate();
  291. nDataCnt = pADO->RecordCount;
  292. TvChart->DataController->RecordCount = nDataCnt;
  293. m_pGDC->RecordCount = nDataCnt;
  294. pChart1 = TvChart->CreateSeries();
  295. pChart1->DataBinding->ValueType = "Integer";
  296. pChart1->DisplayText = cxLabel1->Caption;//"기준월 속도(km/h)";
  297. pChart2 = TvChart->CreateSeries();
  298. pChart2->DataBinding->ValueType = "Integer";
  299. pChart2->DisplayText = cxLabel2->Caption;//"비교월 속도(km/h)";
  300. pChart3 = TvChart->CreateSeries();
  301. pChart3->DataBinding->ValueType = "Integer";
  302. pChart3->DisplayText = cxLabel3->Caption;//"차이 속도(km/h)";
  303. pChart4 = TvChart->CreateSeries();
  304. pChart4->DataBinding->ValueType = "Integer";
  305. pChart4->DisplayText = cxLabel4->Caption;//"기준월 통행시간(초)";
  306. pChart5 = TvChart->CreateSeries();
  307. pChart5->DataBinding->ValueType = "Integer";
  308. pChart5->DisplayText = cxLabel5->Caption;//"비교월 통행시간(초)";
  309. pChart6 = TvChart->CreateSeries();
  310. pChart6->DataBinding->ValueType = "Integer";
  311. pChart6->DisplayText = cxLabel6->Caption;//"차이 통행시간(초)";
  312. int spd1, spd2, spd3;
  313. int trv1, trv2, trv3;
  314. for( ; !pADO->Eof; pADO->Next(), nRow++)
  315. {
  316. m_pGDC->Values[nRow][Column01->Index] = pADO->FieldByName("LINK_ID")->AsString;
  317. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("LINK_NAME")->AsString;
  318. m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("LINK_LENG")->AsString;
  319. m_pGDC->Values[nRow][Column04->Index] = FWeekName;
  320. m_pGDC->Values[nRow][Column05->Index] = pADO->FieldByName("STAT_HM")->AsString;
  321. spd1 = pADO->FieldByName("SPED_A")->AsInteger;
  322. trv1 = pADO->FieldByName("TRVLHH_A")->AsInteger;
  323. m_pGDC->Values[nRow][Column06->Index] = pADO->FieldByName("TFVL_A")->AsInteger;
  324. m_pGDC->Values[nRow][Column07->Index] = spd1;
  325. m_pGDC->Values[nRow][Column08->Index] = pADO->FieldByName("OCPYRATE_A")->AsInteger;
  326. m_pGDC->Values[nRow][Column09->Index] = trv1;
  327. spd2 = pADO->FieldByName("SPED_B")->AsInteger;
  328. trv2 = pADO->FieldByName("TRVLHH_B")->AsInteger;
  329. m_pGDC->Values[nRow][Column10->Index] = pADO->FieldByName("TFVL_B")->AsInteger;
  330. m_pGDC->Values[nRow][Column11->Index] = spd2;
  331. m_pGDC->Values[nRow][Column12->Index] = pADO->FieldByName("OCPYRATE_B")->AsInteger;
  332. m_pGDC->Values[nRow][Column13->Index] = trv2;
  333. m_pGDC->Values[nRow][Column14->Index] = spd1 - spd2;
  334. m_pGDC->Values[nRow][Column15->Index] = trv1 - trv2;
  335. pChart1->Values[nRow] = m_pGDC->Values[nRow][Column07->Index];
  336. pChart2->Values[nRow] = m_pGDC->Values[nRow][Column11->Index];
  337. pChart3->Values[nRow] = m_pGDC->Values[nRow][Column14->Index];
  338. pChart4->Values[nRow] = m_pGDC->Values[nRow][Column09->Index];
  339. pChart5->Values[nRow] = m_pGDC->Values[nRow][Column13->Index];
  340. pChart6->Values[nRow] = m_pGDC->Values[nRow][Column15->Index];
  341. TvChart->Categories->Values[nRow] = m_pGDC->Values[nRow][Column05->Index];
  342. }
  343. }
  344. __finally
  345. {
  346. if (pADO)
  347. {
  348. pADO->Close();
  349. }
  350. TvChart->EndUpdate();
  351. TvList->EndUpdate();
  352. //CxList->SetFocus();
  353. LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" 건";
  354. String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"데이터 " + LblRecords->Caption + " 이 조회 되었습니다.";
  355. Application->MessageBox(sEnd.c_str(),
  356. FrmLang->lblQryEnd->Caption.c_str(),//L"데이터 조회 완료",
  357. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  358. }
  359. }
  360. catch(EDatabaseError &E)
  361. {
  362. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  363. DBERRORMSG(Caption, String(E.ClassName()), E.Message, pADO->SQL->Text);
  364. throw Exception(String(E.ClassName()) + E.Message);
  365. }
  366. catch(Exception &e)
  367. {
  368. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  369. DBERRORMSG(Caption, String(e.ClassName()), e.Message, pADO->SQL->Text);
  370. throw Exception(String(e.ClassName()) + e.Message);
  371. }
  372. }
  373. //---------------------------------------------------------------------------
  374. void __fastcall TIAN00501::OnMessage(TMessage &Msg)
  375. {
  376. switch (Msg.Msg)
  377. {
  378. case WM_PARAM_DATABASE:
  379. if (WP_DB_SELECT_OK == Msg.WParam)
  380. {
  381. //ShowMessage("Select Ok");
  382. }
  383. break;
  384. }
  385. }
  386. //---------------------------------------------------------------------------
  387. void __fastcall TIAN00501::BtnExlSaveClick(TObject *Sender)
  388. {
  389. TcxGrid *pGrid = CxList;
  390. TcxGridTableView *pView = TvList;
  391. String sTitle= Caption;//"패턴데이터분석";
  392. CMM_ExportToExcelFile(sTitle, pGrid, pView, this);
  393. }
  394. //---------------------------------------------------------------------------
  395. void __fastcall TIAN00501::FormClose(TObject *Sender, TCloseAction &Action)
  396. {
  397. POST_MSG(FParent, WM_SUBFORM_CLOSE, 0, 0);
  398. CommClose();
  399. //IAN00501 = NULL;
  400. }
  401. //---------------------------------------------------------------------------
  402. void __fastcall TIAN00501::FormDestroy(TObject *Sender)
  403. {
  404. CommClose();
  405. }
  406. //---------------------------------------------------------------------------
  407. void __fastcall TIAN00501::Column14CustomDrawCell(TcxCustomGridTableView *Sender,
  408. TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  409. bool &ADone)
  410. {
  411. TColor tColor = ACanvas->Brush->Color;
  412. TColor tFont = clBlack;
  413. try
  414. {
  415. if (!VarIsNull(AViewInfo->Value))
  416. {
  417. int sVal = AViewInfo->Value;
  418. if (sVal > 2)
  419. {
  420. tColor = clRed;
  421. }
  422. else
  423. if (sVal < -2)
  424. {
  425. tColor = clFuchsia;
  426. }
  427. else
  428. {
  429. tColor = clLime;
  430. }
  431. }
  432. ACanvas->Font->Color = tFont;
  433. ACanvas->SetBrushColor(tColor);
  434. }
  435. catch(...)
  436. {
  437. }
  438. }
  439. //---------------------------------------------------------------------------