FRAME_FacilityListF.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "CDSFacilityF.h"
  6. #include "CDSCompanyF.h"
  7. #include "FrmResourceF.h"
  8. #include "ITSLangTransF.h"
  9. #pragma hdrstop
  10. #include "FRAME_FacilityListF.h"
  11. //---------------------------------------------------------------------------
  12. #pragma package(smart_init)
  13. #pragma link "cxButtons"
  14. #pragma link "cxCalc"
  15. #pragma link "cxCalendar"
  16. #pragma link "cxCheckBox"
  17. #pragma link "cxClasses"
  18. #pragma link "cxControls"
  19. #pragma link "cxCustomData"
  20. #pragma link "cxData"
  21. #pragma link "cxDataStorage"
  22. #pragma link "cxDropDownEdit"
  23. #pragma link "cxEdit"
  24. #pragma link "cxFilter"
  25. #pragma link "cxGraphics"
  26. #pragma link "cxGrid"
  27. #pragma link "cxGridCustomTableView"
  28. #pragma link "cxGridCustomView"
  29. #pragma link "cxGridLevel"
  30. #pragma link "cxGridTableView"
  31. #pragma link "cxLabel"
  32. #pragma link "cxLookAndFeelPainters"
  33. #pragma link "cxLookAndFeels"
  34. #pragma link "cxSpinEdit"
  35. #pragma link "cxStyles"
  36. #pragma link "cxTextEdit"
  37. #pragma link "dxSkinBlack"
  38. #pragma link "dxSkinBlue"
  39. #pragma link "dxSkinsCore"
  40. #pragma link "dxSkinscxPCPainter"
  41. #pragma link "cxContainer"
  42. #pragma resource "*.dfm"
  43. //---------------------------------------------------------------------------
  44. __fastcall TFRAMEFacilityList::TFRAMEFacilityList(TComponent* Owner)
  45. : TFrame(Owner)
  46. {
  47. LangTrans->Translate(this, ITSDb_GetConnection());
  48. ColumnSel->Options->Filtering = false;
  49. //TvList->DataController->Filter->SupportedLike = false;
  50. m_pGDC = TvList->DataController;
  51. // TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<시설물 정보가 없습니다>";
  52. if (!ItsCompanyManager)
  53. {
  54. ItsCompanyManager = new TItsCompanyManager();
  55. }
  56. ItsCompanyManager->LoadFromDb();
  57. //현장자산유무
  58. TcxComboBoxProperties *pcxCboProperties06 = (TcxComboBoxProperties*)Column06->Properties;
  59. pcxCboProperties06->Items->Clear();
  60. pcxCboProperties06->Items->Add("Y");
  61. pcxCboProperties06->Items->Add("N");
  62. //업체
  63. TcxComboBoxProperties *pcxCboProperties22 = (TcxComboBoxProperties *)Column22->Properties;
  64. TcxComboBoxProperties *pcxCboProperties23 = (TcxComboBoxProperties *)Column23->Properties;
  65. pcxCboProperties22->Items->Clear();
  66. pcxCboProperties23->Items->Clear();
  67. try
  68. {
  69. FOR_STL(TItsCompany*, pObj, ItsCompanyManager->FLists)
  70. {
  71. pcxCboProperties22->Items->Add("[" + pObj->CMPY_ID + "] " + pObj->CMPY_NM);
  72. pcxCboProperties23->Items->Add("[" + pObj->CMPY_ID + "] " + pObj->CMPY_NM);
  73. }
  74. }
  75. __finally
  76. {
  77. }
  78. }
  79. //---------------------------------------------------------------------------
  80. void __fastcall TFRAMEFacilityList::UpdateList()
  81. {
  82. TItsCompany *pComp;
  83. TDateTime dtNull = NULL;
  84. CMM_ClearGridTableView(TvList);
  85. int nRow = 0;
  86. try
  87. {
  88. TvList->BeginUpdate();
  89. try
  90. {
  91. ItsFacilityManager->FLists.Lock();
  92. FOR_STL(TItsFacility*, pObj, ItsFacilityManager->FLists)
  93. {
  94. pObj->EditMode = DB_INIT; //미리 초기화해준다(업데이트 확인을 위해)
  95. if (pObj->DEL_YN == "Y") continue;
  96. nRow = m_pGDC->AppendRecord();
  97. pObj->GridIndex = nRow;
  98. m_pGDC->Values[nRow][ColumnSel->Index] = false; //선택
  99. m_pGDC->Values[nRow][Column00->Index] = pObj->Deleted;
  100. m_pGDC->Values[nRow][Column01->Index] = "-";
  101. m_pGDC->Values[nRow][Column02->Index] = pObj->FCLT_ID; // FCLT_ID VARCHAR(50 BYTE) NOT NULL, '시설물 ID';
  102. m_pGDC->Values[nRow][Column03->Index] = pObj->RFID_ID; // RFID_ID VARCHAR(50 BYTE) NOT NULL, '시설물 ID';
  103. m_pGDC->Values[nRow][Column04->Index] = pObj->FCLT_TYPE; // FCLT_TYPE VARCHAR(7 BYTE) NOT NULL, '시설물유형';
  104. m_pGDC->Values[nRow][Column05->Index] = pObj->FCLT_LCTN; // FCLT_LCTN VARCHAR(100 BYTE) '시설물 위치';
  105. if(pObj->RSCE_YN.IsEmpty())
  106. m_pGDC->Values[nRow][Column06->Index] = "N";
  107. else
  108. m_pGDC->Values[nRow][Column06->Index] = pObj->RSCE_YN; // RSCE_YN CHAR(1 BYTE) DEFAULT 'N', '현장자산유무';
  109. m_pGDC->Values[nRow][Column07->Index] = pObj->MDL_NM; // MDL_NM VARCHAR(30 BYTE) '모델명';
  110. m_pGDC->Values[nRow][Column08->Index] = pObj->USE_YEAR; // USE_YEAR NUMBER(3) '사용년수';
  111. #if 0
  112. m_pGDC->Values[nRow][Column09->Index] = dtNull; // INWR_DT VARCHAR(14 BYTE) '입고일시';
  113. m_pGDC->Values[nRow][Column10->Index] = dtNull; // OTWR_DT VARCHAR(14 BYTE) '출고일시';
  114. m_pGDC->Values[nRow][Column11->Index] = dtNull; // ISTL_DT VARCHAR(14 BYTE) '설치일시';
  115. m_pGDC->Values[nRow][Column12->Index] = dtNull; // TAKT_DT VARCHAR(14 BYTE) '반출일시';
  116. m_pGDC->Values[nRow][Column14->Index] = dtNull; // TAKN_DT VARCHAR(14 BYTE) '반입일시';
  117. m_pGDC->Values[nRow][Column15->Index] = dtNull; // ABDN_DT VARCHAR(14 BYTE) '폐기일시';
  118. m_pGDC->Values[nRow][Column17->Index] = dtNull; // ADTN_DT VARCHAR(14 BYTE) '추가일시';
  119. m_pGDC->Values[nRow][Column19->Index] = dtNull; // CHNG_DT VARCHAR(14 BYTE) '변경일시';
  120. #else
  121. #if 0
  122. m_pGDC->Values[nRow][Column09->Index] = ""; // INWR_DT VARCHAR(14 BYTE) '입고일시';
  123. m_pGDC->Values[nRow][Column10->Index] = ""; // OTWR_DT VARCHAR(14 BYTE) '출고일시';
  124. m_pGDC->Values[nRow][Column11->Index] = ""; // ISTL_DT VARCHAR(14 BYTE) '설치일시';
  125. m_pGDC->Values[nRow][Column12->Index] = ""; // TAKT_DT VARCHAR(14 BYTE) '반출일시';
  126. m_pGDC->Values[nRow][Column14->Index] = ""; // TAKN_DT VARCHAR(14 BYTE) '반입일시';
  127. m_pGDC->Values[nRow][Column15->Index] = ""; // ABDN_DT VARCHAR(14 BYTE) '폐기일시';
  128. m_pGDC->Values[nRow][Column17->Index] = ""; // ADTN_DT VARCHAR(14 BYTE) '추가일시';
  129. m_pGDC->Values[nRow][Column19->Index] = ""; // CHNG_DT VARCHAR(14 BYTE) '변경일시';
  130. #endif
  131. #endif
  132. m_pGDC->Values[nRow][Column22->Index] = ""; // ISTL_CMPY_ID VARCHAR(30 BYTE) '설치업체ID';
  133. m_pGDC->Values[nRow][Column23->Index] = ""; // PRDC_CMPY_ID VARCHAR(30 BYTE) '제조업체ID';
  134. if (!pObj->INWR_DT.IsEmpty())
  135. m_pGDC->Values[nRow][Column09->Index] = ITSUtil_StrToTime(pObj->INWR_DT); // INWR_DT VARCHAR(14 BYTE) '입고일시';
  136. if (!pObj->OTWR_DT.IsEmpty())
  137. m_pGDC->Values[nRow][Column10->Index] = ITSUtil_StrToTime(pObj->OTWR_DT); // OTWR_DT VARCHAR(14 BYTE) '출고일시';
  138. if (!pObj->ISTL_DT.IsEmpty())
  139. m_pGDC->Values[nRow][Column11->Index] = ITSUtil_StrToTime(pObj->ISTL_DT); // ISTL_DT VARCHAR(14 BYTE) '설치일시';
  140. if (!pObj->TAKT_DT.IsEmpty())
  141. m_pGDC->Values[nRow][Column12->Index] = ITSUtil_StrToTime(pObj->TAKT_DT); // TAKT_DT VARCHAR(14 BYTE) '반출일시';
  142. m_pGDC->Values[nRow][Column13->Index] = pObj->TAKT_RESN; // TAKT_RESN VARCHAR(100 BYTE) '반출사유';
  143. if (!pObj->TAKN_DT.IsEmpty())
  144. m_pGDC->Values[nRow][Column14->Index] = ITSUtil_StrToTime(pObj->TAKN_DT); // TAKN_DT VARCHAR(14 BYTE) '반입일시';
  145. if (!pObj->ABDN_DT.IsEmpty())
  146. m_pGDC->Values[nRow][Column15->Index] = ITSUtil_StrToTime(pObj->ABDN_DT); // ABDN_DT VARCHAR(14 BYTE) '폐기일시';
  147. m_pGDC->Values[nRow][Column16->Index] = pObj->ADTN_NM; // ADTN_NM VARCHAR(30 BYTE) '추가자명';
  148. if (!pObj->ADTN_DT.IsEmpty())
  149. m_pGDC->Values[nRow][Column17->Index] = ITSUtil_StrToTime(pObj->ADTN_DT); // ADTN_DT VARCHAR(14 BYTE) '추가일시';
  150. m_pGDC->Values[nRow][Column18->Index] = pObj->CHNG_NM; // CHNG_NM VARCHAR(30 BYTE) '변경자명';
  151. if (!pObj->CHNG_DT.IsEmpty())
  152. m_pGDC->Values[nRow][Column19->Index] = ITSUtil_StrToTime(pObj->CHNG_DT); // CHNG_DT VARCHAR(14 BYTE) '변경일시';
  153. m_pGDC->Values[nRow][Column20->Index] = pObj->AMT; // AMT NUMBER(15), '금액';
  154. m_pGDC->Values[nRow][Column21->Index] = pObj->DEL_YN; // DEL_YN CHAR(1 BYTE) '삭제여부';
  155. m_pGDC->Values[nRow][Column24->Index] = pObj->ISTL_LCTN_ADDR;
  156. if (!pObj->ISTL_CMPY_ID.IsEmpty())
  157. {
  158. String sComp1 = "[" + pObj->ISTL_CMPY_ID + "] ";
  159. pComp = ItsCompanyManager->FLists.Find(pObj->ISTL_CMPY_ID);
  160. if (pComp) sComp1 = sComp1 + pComp->CMPY_NM;
  161. m_pGDC->Values[nRow][Column22->Index] = sComp1; // ISTL_CMPY_ID VARCHAR(30 BYTE) '설치업체ID';
  162. }
  163. if (!pObj->MNFC_CMPY_ID.IsEmpty())
  164. {
  165. String sComp2 = "[" + pObj->MNFC_CMPY_ID + "] ";
  166. pComp = ItsCompanyManager->FLists.Find(pObj->MNFC_CMPY_ID);
  167. if (pComp) sComp2 = sComp2 + pComp->CMPY_NM;
  168. m_pGDC->Values[nRow][Column23->Index] = sComp2; // PRDC_CMPY_ID VARCHAR(30 BYTE) '제조업체ID';
  169. }
  170. m_pGDC->Values[nRow][Column99->Index] = (int)pObj;
  171. }
  172. }
  173. __finally
  174. {
  175. ItsFacilityManager->FLists.UnLock();
  176. }
  177. }
  178. __finally
  179. {
  180. LblRecords->Caption = "("+FormatFloat("##,##0", m_pGDC->FilteredRecordCount) +"/"+FormatFloat("##,##0", m_pGDC->RecordCount) + ")";
  181. TvList->EndUpdate();
  182. TvList->DataController->GotoFirst();
  183. //TvList->DataController->FocusedRecordIndex = nFocusRow;
  184. //CxList->SetFocus();
  185. }
  186. }
  187. //---------------------------------------------------------------------------
  188. void __fastcall TFRAMEFacilityList::BtnAllSelectClick(TObject *Sender)
  189. {
  190. TcxButton *pBtn = (TcxButton*)Sender;
  191. CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag);
  192. }
  193. //---------------------------------------------------------------------------
  194. int __fastcall TFRAMEFacilityList::GetSelectIds(String &ALinkIds)
  195. {
  196. ALinkIds = "";
  197. if (TvList->ViewData->RecordCount <= 0) return 0;
  198. int nIndex = m_pGDC->FocusedRecordIndex;
  199. if( nIndex < 0 )
  200. return 0;
  201. String sLinkId = VarToStr(m_pGDC->Values[nIndex][Column01->Index]);
  202. ALinkIds = sLinkId;
  203. return 1;
  204. }
  205. //---------------------------------------------------------------------------
  206. void __fastcall TFRAMEFacilityList::TvListDataControllerFilterChanged(TObject *Sender)
  207. {
  208. CMM_SetFilterLike(TvList);
  209. LblRecords->Caption = "("+FormatFloat("##,##0", m_pGDC->FilteredRecordCount) +"/"+FormatFloat("##,##0", m_pGDC->RecordCount) + ")";
  210. }
  211. //---------------------------------------------------------------------------
  212. void __fastcall TFRAMEFacilityList::BtnExlSaveClick(TObject *Sender)
  213. {
  214. TcxGrid *pGrid = CxList;
  215. TcxGridTableView *pView = TvList;
  216. String sTitle= lblTitle->Caption;//"시설물정보";
  217. CMM_ExportToExcelFile(sTitle, pGrid, pView, (TForm*)this);
  218. }
  219. //---------------------------------------------------------------------------