VMSM650MF.cpp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. #include "CDSVmsIfscF.h"
  7. #include "ITSLangTransF.h"
  8. #pragma hdrstop
  9. #include "VMSM650MF.h"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma link "cxButtons"
  13. #pragma link "cxCalendar"
  14. #pragma link "cxContainer"
  15. #pragma link "cxControls"
  16. #pragma link "cxDropDownEdit"
  17. #pragma link "cxEdit"
  18. #pragma link "cxGraphics"
  19. #pragma link "cxGroupBox"
  20. #pragma link "cxLabel"
  21. #pragma link "cxLookAndFeelPainters"
  22. #pragma link "cxLookAndFeels"
  23. #pragma link "cxMaskEdit"
  24. #pragma link "cxPC"
  25. #pragma link "cxPCdxBarPopupMenu"
  26. #pragma link "cxSpinEdit"
  27. #pragma link "cxSplitter"
  28. #pragma link "cxTextEdit"
  29. #pragma link "cxTimeEdit"
  30. #pragma link "dxSkinBlack"
  31. #pragma link "dxSkinBlue"
  32. #pragma link "dxSkinCaramel"
  33. #pragma link "dxSkinCoffee"
  34. #pragma link "dxSkinDarkRoom"
  35. #pragma link "dxSkinDarkSide"
  36. #pragma link "dxSkinFoggy"
  37. #pragma link "dxSkinGlassOceans"
  38. #pragma link "dxSkiniMaginary"
  39. #pragma link "dxSkinLilian"
  40. #pragma link "dxSkinLiquidSky"
  41. #pragma link "dxSkinLondonLiquidSky"
  42. #pragma link "dxSkinMcSkin"
  43. #pragma link "dxSkinMoneyTwins"
  44. #pragma link "dxSkinOffice2007Black"
  45. #pragma link "dxSkinOffice2007Blue"
  46. #pragma link "dxSkinOffice2007Green"
  47. #pragma link "dxSkinOffice2007Pink"
  48. #pragma link "dxSkinOffice2007Silver"
  49. #pragma link "dxSkinOffice2010Black"
  50. #pragma link "dxSkinOffice2010Blue"
  51. #pragma link "dxSkinOffice2010Silver"
  52. #pragma link "dxSkinsCore"
  53. #pragma link "dxSkinscxPCPainter"
  54. #pragma link "dxSkinSeven"
  55. #pragma link "dxSkinSharp"
  56. #pragma link "dxSkinSilver"
  57. #pragma link "dxSkinStardust"
  58. #pragma link "cxRadioGroup"
  59. #pragma link "cxClasses"
  60. #pragma link "cxCustomData"
  61. #pragma link "cxData"
  62. #pragma link "cxDataStorage"
  63. #pragma link "cxDBData"
  64. #pragma link "cxFilter"
  65. #pragma link "cxGrid"
  66. #pragma link "cxGridCustomTableView"
  67. #pragma link "cxGridCustomView"
  68. #pragma link "cxGridDBTableView"
  69. #pragma link "cxGridLevel"
  70. #pragma link "cxGridTableView"
  71. #pragma link "cxStyles"
  72. #pragma link "cxCheckBox"
  73. #pragma link "cxImage"
  74. #pragma link "cxButtonEdit"
  75. #pragma link "cxBlobEdit"
  76. #pragma link "cxColorComboBox"
  77. #pragma link "cxCalc"
  78. #pragma resource "*.dfm"
  79. TVMSM650M *VMSM650M = NULL;
  80. //---------------------------------------------------------------------------
  81. __fastcall TVMSM650M::TVMSM650M(TComponent* Owner)
  82. : TForm(Owner)
  83. {
  84. LangTrans->Translate(this, ITSDb_GetConnection());
  85. ITSSkin_Load(this);
  86. //CMM_LoadForm(g_sFormsDir, this);
  87. FSelected = false;
  88. FUpdate= false;
  89. FTitle = Caption;//"VMS 교통상황 폼 관리";
  90. }
  91. //---------------------------------------------------------------------------
  92. void __fastcall TVMSM650M::CommClose()
  93. {
  94. try
  95. {
  96. //CMM_SaveForm(g_sFormsDir, this);
  97. }
  98. catch(...)
  99. {
  100. }
  101. }
  102. //---------------------------------------------------------------------------
  103. void __fastcall TVMSM650M::FormCreate(TObject *Sender)
  104. {
  105. //
  106. }
  107. //---------------------------------------------------------------------------
  108. void __fastcall TVMSM650M::FormShow(TObject *Sender)
  109. {
  110. Refresh();
  111. FormInit();
  112. TmrShow->Enabled = true;
  113. }
  114. //---------------------------------------------------------------------------
  115. void __fastcall TVMSM650M::FormInit()
  116. {
  117. //TvObjList->OptionsView->NoDataToDisplayInfoText = "<등록되어 있는 객체 정보가 없습니다>";
  118. FNewDb = false;
  119. CMM_ClearGridTableView(TvList);
  120. TcxDataController *m_pGDC = TvList->DataController;
  121. int nRow = 0;
  122. TvList->BeginUpdate();
  123. try
  124. {
  125. for (int nWeek = 1; nWeek <= 7; nWeek++)
  126. {
  127. nRow = m_pGDC->AppendRecord();
  128. String sWeek;
  129. switch(nWeek)
  130. {
  131. case 1: sWeek = "일요일"; break;
  132. case 2: sWeek = "월요일"; break;
  133. case 3: sWeek = "화요일"; break;
  134. case 4: sWeek = "수요일"; break;
  135. case 5: sWeek = "목요일"; break;
  136. case 6: sWeek = "금요일"; break;
  137. case 7: sWeek = "토요일"; break;
  138. }
  139. m_pGDC->Values[nRow][ColWeek->Index] = sWeek;
  140. m_pGDC->Values[nRow][ColCode->Index] = String(nWeek);
  141. int nTimeIdx = Col00->Index;
  142. for (int ii = 0; ii < 25; ii++)
  143. {
  144. m_pGDC->Values[nRow][nTimeIdx+ii] = true;
  145. }
  146. }
  147. }
  148. __finally
  149. {
  150. TvList->EndUpdate();
  151. }
  152. }
  153. //---------------------------------------------------------------------------
  154. void __fastcall TVMSM650M::TmrShowTimer(TObject *Sender)
  155. {
  156. TmrShow->Enabled = false;
  157. BtnSearchClick(NULL);
  158. }
  159. //---------------------------------------------------------------------------
  160. void __fastcall TVMSM650M::BtnSearchClick(TObject *Sender)
  161. {
  162. RefreshData();
  163. EdFocus->SetFocus();
  164. }
  165. //---------------------------------------------------------------------------
  166. void __fastcall TVMSM650M::RefreshData()
  167. {
  168. // 검색조건에 의한 링크 데이터 조회
  169. FormClear();
  170. TcxDataController *m_pGDC = TvList->DataController;
  171. int nRow = 0;
  172. TvList->BeginUpdate();
  173. try
  174. {
  175. for (int nWeek = 0; nWeek < 7; nWeek++)
  176. {
  177. nRow = nWeek;
  178. int nTimeIdx = Col00->Index;
  179. for (int ii = 0; ii < 24; ii++)
  180. {
  181. m_pGDC->Values[nRow][nTimeIdx++] = FSchWeek[nWeek].SubString(ii+1, 1) == "1" ? true : false;
  182. }
  183. }
  184. }
  185. __finally
  186. {
  187. TvList->EndUpdate();
  188. }
  189. }
  190. //---------------------------------------------------------------------------
  191. void __fastcall TVMSM650M::BtnClosexClick(TObject *Sender)
  192. {
  193. FSelected = false;
  194. Close();
  195. }
  196. //---------------------------------------------------------------------------
  197. void __fastcall TVMSM650M::FormClose(TObject *Sender, TCloseAction &Action)
  198. {
  199. CommClose();
  200. VMSM650M = NULL;
  201. //Action = caFree;
  202. }
  203. //---------------------------------------------------------------------------
  204. void __fastcall TVMSM650M::FormClear()
  205. {
  206. FSelIdx = -1;
  207. FNewDb = false;
  208. }
  209. //---------------------------------------------------------------------------
  210. void __fastcall TVMSM650M::BtnSaveClick(TObject *Sender)
  211. {
  212. FSelected = true;
  213. TcxDataController *m_pGDC = TvList->DataController;
  214. int nRow = 0;
  215. for (int nWeek = 0; nWeek < 7; nWeek++)
  216. {
  217. nRow = nWeek;
  218. FSchWeek[nWeek] = "";
  219. int nTimeIdx = Col00->Index;
  220. for (int ii = 0; ii < 24; ii++)
  221. {
  222. FSchWeek[nWeek] += m_pGDC->Values[nRow][nTimeIdx++] ? "1" : "0";
  223. }
  224. }
  225. Close();
  226. }
  227. //---------------------------------------------------------------------------
  228. void __fastcall TVMSM650M::ColCheckPropertiesEditValueChanged(TObject *Sender)
  229. {
  230. try
  231. {
  232. int nRows = TvList->DataController->FocusedRecordIndex;
  233. if (nRows < 0)
  234. {
  235. return;
  236. }
  237. bool bCheck = TvList->DataController->Values[nRows][ColCheck->Index];
  238. int nTimeIdx = Col00->Index;
  239. for (int ii = 0; ii < 24; ii++)
  240. {
  241. TvList->DataController->Values[nRows][nTimeIdx++] = bCheck;
  242. }
  243. }
  244. catch(...)
  245. {
  246. }
  247. }
  248. //---------------------------------------------------------------------------
  249. void __fastcall TVMSM650M::Col00CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
  250. bool &ADone)
  251. {
  252. try
  253. {
  254. int iIndex = AViewInfo->Item->Index;
  255. String val = (String)AViewInfo->GridRecord->DisplayTexts[iIndex];
  256. ACanvas->Canvas->Brush->Color = val.UpperCase() == "TRUE" ? clLime : clSilver;
  257. }
  258. catch(...) {}
  259. }
  260. //---------------------------------------------------------------------------