ITSSEL4MF.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. #include "ITSLangTransF.h"
  7. #pragma hdrstop
  8. #include "ITSSEL4MF.h"
  9. //---------------------------------------------------------------------------
  10. #pragma package(smart_init)
  11. #pragma link "cxButtons"
  12. #pragma link "cxContainer"
  13. #pragma link "cxControls"
  14. #pragma link "cxEdit"
  15. #pragma link "cxGraphics"
  16. #pragma link "cxGroupBox"
  17. #pragma link "cxLookAndFeelPainters"
  18. #pragma link "cxLookAndFeels"
  19. #pragma link "dxSkinBlack"
  20. #pragma link "dxSkinBlue"
  21. #pragma link "dxSkinsCore"
  22. #pragma link "cxCalc"
  23. #pragma link "cxCheckBox"
  24. #pragma link "cxClasses"
  25. #pragma link "cxCustomData"
  26. #pragma link "cxData"
  27. #pragma link "cxDataStorage"
  28. #pragma link "cxFilter"
  29. #pragma link "cxGrid"
  30. #pragma link "cxGridCustomTableView"
  31. #pragma link "cxGridCustomView"
  32. #pragma link "cxGridLevel"
  33. #pragma link "cxGridTableView"
  34. #pragma link "cxLabel"
  35. #pragma link "cxStyles"
  36. #pragma link "cxTextEdit"
  37. #pragma link "dxSkinscxPCPainter"
  38. #pragma resource "*.dfm"
  39. TITSSEL4M *ITSSEL4M = NULL;
  40. //---------------------------------------------------------------------------
  41. __fastcall TITSSEL4M::TITSSEL4M(TComponent* Owner, TItsAtrdManager* AAtrdManager)
  42. : TForm(Owner)
  43. {
  44. LangTrans->Translate(this, ITSDb_GetConnection());
  45. ITSSkin_Load(this);
  46. CMM_LoadForm(g_sFormsDir, this);
  47. m_bSelected = false;
  48. m_pGDC = TvList->DataController;
  49. MyItsAtrdManager = AAtrdManager;
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TITSSEL4M::CommClose()
  53. {
  54. try
  55. {
  56. CMM_SaveForm(g_sFormsDir, this);
  57. }
  58. catch(...)
  59. {
  60. }
  61. }
  62. //---------------------------------------------------------------------------
  63. void __fastcall TITSSEL4M::FormShow(TObject *Sender)
  64. {
  65. Refresh();
  66. TmrShow->Enabled = true;
  67. }
  68. //---------------------------------------------------------------------------
  69. void __fastcall TITSSEL4M::TmrShowTimer(TObject *Sender)
  70. {
  71. TmrShow->Enabled = false;
  72. BtnSearchClick((TObject*)BtnSearch);
  73. }
  74. //---------------------------------------------------------------------------
  75. void __fastcall TITSSEL4M::BtnSearchClick(TObject *Sender)
  76. {
  77. Application->ProcessMessages();
  78. TSqlCursor sqlCrs((TControl*)BtnSearch);
  79. RefreshData();
  80. }
  81. //---------------------------------------------------------------------------
  82. void __fastcall TITSSEL4M::RefreshData()
  83. {
  84. // 검색조건에 의한 링크 데이터 조회
  85. try
  86. {
  87. SelListData();
  88. }
  89. __finally
  90. {
  91. //TvList->ApplyBestFit(NULL, false, false);
  92. }
  93. }
  94. //---------------------------------------------------------------------------
  95. void __fastcall TITSSEL4M::SelListData()
  96. {
  97. String sQry;
  98. TADOQuery *pADO = NULL;
  99. sQry = "SELECT DISTINCT TRIM(ATRD_NM) AS ATRD_NM \r\n"
  100. " FROM TB_ATRD \r\n"
  101. " ORDER BY ATRD_NM \r\n";
  102. CMM_ClearGridTableView(TvList);
  103. int nRow = 0;
  104. TvList->BeginUpdate();
  105. try
  106. {
  107. try
  108. {
  109. #if 0
  110. pADO = new TADOQuery(NULL);
  111. pADO->Close();
  112. pADO->Connection = ITSDb_GetConnection();
  113. pADO->SQL->Clear();
  114. pADO->SQL->Text = sQry;
  115. pADO->Prepared = true;
  116. pADO->Open();
  117. for( ; !pADO->Eof; pADO->Next())
  118. {
  119. String ATRD_ID = pADO->FieldByName("ATRD_NM")->AsString;
  120. nRow = m_pGDC->AppendRecord();
  121. m_pGDC->Values[nRow][ColumnSel->Index] = false;
  122. m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("ATRD_NM")->AsString;
  123. }
  124. #else
  125. FOR_STL(TCDSAtrdName*, pObj, MyItsAtrdManager->FCDSNameLists)
  126. {
  127. nRow = m_pGDC->AppendRecord();
  128. m_pGDC->Values[nRow][ColumnSel->Index] = pObj->IsSelected;
  129. m_pGDC->Values[nRow][Column02->Index] = pObj->ATRD_NM;
  130. }
  131. #endif
  132. }
  133. catch(EDatabaseError &E)
  134. {
  135. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  136. DBERRORMSG("TITSSEL4M::SelListData", String(E.ClassName()), E.Message, sQry);
  137. throw Exception(String(E.ClassName()) + E.Message);
  138. }
  139. catch(Exception &exception)
  140. {
  141. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  142. DBERRORMSG("TITSSEL4M::SelListData", String(exception.ClassName()), exception.Message, sQry);
  143. throw Exception(String(exception.ClassName()) + exception.Message);
  144. }
  145. }
  146. __finally
  147. {
  148. if (pADO)
  149. {
  150. pADO->Close();
  151. delete pADO;
  152. }
  153. TvList->EndUpdate();
  154. }
  155. }
  156. //---------------------------------------------------------------------------
  157. void __fastcall TITSSEL4M::BtnCloseClick(TObject *Sender)
  158. {
  159. FIdList = "";
  160. Close();
  161. }
  162. //---------------------------------------------------------------------------
  163. void __fastcall TITSSEL4M::BtnSelectClick(TObject *Sender)
  164. {
  165. FIdList = "";
  166. int nSelects = CMM_GetSelectCount(TvList, ColumnSel->Index, Column02->Index, FIdList);
  167. if (0 == nSelects)
  168. {
  169. Application->MessageBox(FrmLang->lblSelErr->Caption.c_str(),//L"목록에서 도로를 먼저 선택 하세요.",
  170. cxGroupBox1->Caption.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  171. return;
  172. }
  173. MyItsAtrdManager->FCDSNameSelCnt = 0;
  174. FOR_STL(TCDSAtrdName*, pObj, MyItsAtrdManager->FCDSNameLists)
  175. {
  176. pObj->IsSelected = false;
  177. }
  178. TvList->BeginUpdate();
  179. try
  180. {
  181. int nRowCnt = TvList->ViewData->RecordCount;
  182. for (int ii = 0; ii < nRowCnt; ii++)
  183. {
  184. TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii];
  185. if (!ARow->IsData) continue;
  186. if (((bool)ARow->Values[ColumnSel->Index]))
  187. {
  188. String ATRD_NM = ARow->Values[Column02->Index];
  189. TCDSAtrdName *pObj = MyItsAtrdManager->FCDSNameLists.Find(ATRD_NM);
  190. if (pObj)
  191. {
  192. pObj->IsSelected = true;
  193. MyItsAtrdManager->FCDSNameSelCnt++;
  194. }
  195. }
  196. }
  197. }
  198. __finally
  199. {
  200. TvList->EndUpdate();
  201. }
  202. m_bSelected = true;
  203. Close();
  204. }
  205. //---------------------------------------------------------------------------
  206. void __fastcall TITSSEL4M::FormClose(TObject *Sender, TCloseAction &Action)
  207. {
  208. CommClose();
  209. ITSSEL4M = NULL;
  210. //Action = caFree;
  211. }
  212. //---------------------------------------------------------------------------
  213. void __fastcall TITSSEL4M::SetMultiSelect(bool AMultiSelect)
  214. {
  215. TvList->OptionsSelection->MultiSelect = AMultiSelect;
  216. }
  217. //---------------------------------------------------------------------------
  218. bool __fastcall TITSSEL4M::GetMultiSelect()
  219. {
  220. return TvList->OptionsSelection->MultiSelect;
  221. }
  222. //---------------------------------------------------------------------------
  223. void __fastcall TITSSEL4M::BtnAllSelectClick(TObject *Sender)
  224. {
  225. TcxButton *pBtn = (TcxButton*)Sender;
  226. CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag);
  227. }
  228. //---------------------------------------------------------------------------