ITSSEL4MF.cpp 7.2 KB

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