//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSVmsCtlrF.h" #include "ITSUtilF.h" #include "VmsCommonLibF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TVmsIfscRltn::TVmsIfscRltn() { } //--------------------------------------------------------------------------- TVmsIfscRltn::~TVmsIfscRltn() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsEvspRltn::TVmsEvspRltn() { } //--------------------------------------------------------------------------- TVmsEvspRltn::~TVmsEvspRltn() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsModlStts::TVmsModlStts() { } //--------------------------------------------------------------------------- TVmsModlStts::~TVmsModlStts() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsMsg::TVmsMsg() { for (int ii = 0; ii < INT_VMS_MAX_FORM; ii++) { PHASE[ii].DSPL_PICT = NULL; } Init(); }; //--------------------------------------------------------------------------- TVmsMsg::~TVmsMsg() { for (int ii = 0; ii < INT_VMS_MAX_FORM; ii++) { if (PHASE[ii].DSPL_PICT) { PHASE[ii].DSPL_PICT->FreeImage(); PHASE[ii].DSPL_PICT->Assign(NULL); delete PHASE[ii].DSPL_PICT; PHASE[ii].DSPL_PICT = NULL; } } }; //--------------------------------------------------------------------------- void TVmsMsg::Init() { Total = 0; Curr = 0; OFFER_DT = "1999-01-01 00:00:00"; OFFER_YN = false; IsLoading= true; for (int ii = 0; ii < INT_VMS_MAX_FORM; ii++) { PHASE[ii].SN = ii+1; // N NUMBER(5) N ¼ø¹ø PHASE[ii].PROV_DT_FMT = OFFER_DT; // N DATE N Á¦°øÀϽà PHASE[ii].DSPL_HR = 4; // N NUMBER(3) N Ç¥Ãâ½Ã°£ PHASE[ii].DSPL_EFF = ""; // N VARCHAR2(3) N Ç¥ÃâÈ¿°ú PHASE[ii].BACK_CLR = ""; // N VARCHAR2(3) Y ¹è°æ»ö»ó PHASE[ii].VMS_FORM_ID = ""; // N VARCHAR2(10) N VMSÆûID PHASE[ii].DSPL_CN = ""; // N VARCHAR2(256) N Ç¥Ãâ³»¿ë PHASE[ii].PROV_YN = "N"; // N CHAR(1) N Á¦°ø¿©ºÎ PHASE[ii].OPER_MODE = ""; // N VARCHAR2(3) N ¿î¿µ¸ðµå PHASE[ii].VMS_FORM_TYPE = ""; // N VARCHAR2(3) N VMSÆûÀ¯Çü } }; //--------------------------------------------------------------------------- TVmsStts::TVmsStts(String AVMS_CTLR_ID) { VMS_CTLR_ID = AVMS_CTLR_ID; Init(); }; //--------------------------------------------------------------------------- TVmsStts::~TVmsStts() { }; //--------------------------------------------------------------------------- void TVmsStts::Init() { IsLoading = false; }; //--------------------------------------------------------------------------- TVmsPara::TVmsPara(String AVMS_CTLR_ID) { VMS_CTLR_ID = AVMS_CTLR_ID; Init(); }; //--------------------------------------------------------------------------- TVmsPara::~TVmsPara() { }; //--------------------------------------------------------------------------- void TVmsPara::Init() { CUR_LUMI = 40; // N NUMBER(3) Y ÇöÀçÈÖµµ DAY_LUMI = 80; // N NUMBER(3) Y ÁÖ°£ÈÖµµ NGHT_LUMI = 20; // N NUMBER(3) Y ¾ß°£ÈÖµµ CMNC_RTRY_NOCS = 3; // N NUMBER(3) Y Åë½ÅÀç½ÃµµÈ½¼ö BLNK_TM = 10; // N NUMBER(3) Y Á¡¸ê½Ã°£ÁÖ±â ERR_MODL_RT = 10; // N NUMBER(3) Y Àå¾Ö¸ðµâºñÀ² DFLT_SCNR_RUN_TM = 5; // N NUMBER(3) Y µðÆúÆ®½Ã³ª¸®¿Àµ¿À۽ð£ IsLoading = false; }; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsCtlr::TVmsCtlr() { FVmsMsg = NULL; FVmsMsg = new TVmsMsg(); FVmsMsg->Init(); } //--------------------------------------------------------------------------- TVmsCtlr::~TVmsCtlr() { FIfscRltn.RemoveAll(); } //--------------------------------------------------------------------------- void TVmsCtlr::Lock() { //EnterCriticalSection(&FCS); } //--------------------------------------------------------------------------- void TVmsCtlr::UnLock() { //LeaveCriticalSection(&FCS); } //--------------------------------------------------------------------------- TLcsCtlr::TLcsCtlr() { FVmsMsg = NULL; FVmsMsg = new TVmsMsg(); FVmsMsg->Init(); } //--------------------------------------------------------------------------- TLcsCtlr::~TLcsCtlr() { } //--------------------------------------------------------------------------- void TLcsCtlr::Lock() { //EnterCriticalSection(&FCS); } //--------------------------------------------------------------------------- void TLcsCtlr::UnLock() { //LeaveCriticalSection(&FCS); } //--------------------------------------------------------------------------- TVmsModlSize::TVmsModlSize() { } //--------------------------------------------------------------------------- TVmsModlSize::~TVmsModlSize() { } //--------------------------------------------------------------------------- TVmsSize::TVmsSize() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsCtlrManager *VmsCtlrManager = NULL; //--------------------------------------------------------------------------- TVmsCtlrManager::TVmsCtlrManager() { FImgStream = NULL; } //--------------------------------------------------------------------------- TVmsCtlrManager::~TVmsCtlrManager() { FVmsSize.RemoveAll(); FLists.RemoveAll(); if (FImgStream) delete FImgStream; FImgStream = NULL; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadVmsModlSize(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; FVmsSize.Lock(); try { FVmsSize.RemoveAll(); } __finally { FVmsSize.UnLock(); } sQry = "SELECT T1.VMS_MODL_KIND, T1.VMS_MODL_KIND_NM, \r\n" " T1.VMS_MODL_COL * T1.MODL_PIXL_WDTH AS VMS_WDTH, \r\n" " T1.VMS_MODL_ROW * T1.MODL_PIXL_HGHT AS VMS_HGHT \r\n" " FROM TB_VMS_MODL_KIND T1 \r\n" " WHERE 1=1 \r\n" " AND T1.USE_YN = 'Y' \r\n" " ORDER BY T1.VMS_MODL_KIND \r\n"; FVmsSize.Lock(); try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { TVmsSize *pObj = new TVmsSize(); pObj->TypeCd = pADO->FieldByName("VMS_MODL_KIND")->AsString; pObj->TypeNm = pADO->FieldByName("VMS_MODL_KIND_NM")->AsString; pObj->Width = pADO->FieldByName("VMS_WDTH")->AsInteger; pObj->Height = pADO->FieldByName("VMS_HGHT")->AsInteger; FVmsSize.Push(pObj->TypeCd, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadVmsModlSize", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadVmsModlSize", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FVmsSize.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; FMinWidth = 10000; FMinHeight= 10000; FMaxWidth = 0; FMaxHeight= 0; sQry = "SELECT T1.*, \r\n" " T2.VMS_MODL_KIND_NM, \r\n" " T2.VMS_MODL_COL, T2.MODL_PIXL_WDTH, \r\n" " T2.VMS_MODL_ROW, T2.MODL_PIXL_HGHT, T2.MODL_CLR, \r\n" " NVL(TRIM(T1.CMRA_IMG_ADDR), '-') AS VMS_RTSP_ADDR, \r\n" " T3.CMNC_IP AS VMS_CTLR_IP, \r\n" " NVL(T4.CD_NM, T1.VMS_TYPE || '-?-') AS VMS_TYPE_NM, \r\n" " NVL(T5.CD_NM, T1.OPER_MODE || '-?-') AS OPER_MODE_NM \r\n" " FROM TB_VMS_CTLR T1, TB_VMS_MODL_KIND T2, TB_FCLT T3, \r\n" " (SELECT * FROM TB_SYS_CD T4 WHERE T4.CLSS_CD = 'VMS_TYPE_CD') T4, \r\n" " (SELECT * FROM TB_SYS_CD T4 WHERE T4.CLSS_CD = 'VMS_OPER_MODE_CD') T5 \r\n" " WHERE 1=1 \r\n" " AND T1.USE_YN = 'Y' \r\n" " AND T1.VMS_MODL_KIND = T2.VMS_MODL_KIND \r\n" " AND T1.FCLT_ID = T3.FCLT_ID \r\n" " AND T1.VMS_TYPE = T4.CODE_NO(+) \r\n" " AND T1.OPER_MODE = T5.CODE_NO(+) \r\n" " ORDER BY VMS_CTLR_ID \r\n"; FLists.Lock(); try { FLists.RemoveAll(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { TVmsCtlr *pObj = new TVmsCtlr(); pObj->VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; //N VARCHAR2(10) N VMSÁ¦¾î±âID pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString; //N VARCHAR2(10) N ½Ã¼³¹°ID pObj->VMS_NM = pADO->FieldByName("VMS_NM")->AsString; //N VARCHAR2(32) N VMS¸í pObj->VMS_TYPE = pADO->FieldByName("VMS_TYPE")->AsString; //N VARCHAR2(3) N VMSÀ¯Çü pObj->STD_SECT_ID = pADO->FieldByName("STD_SECT_ID")->AsString; //N CHAR(10) N Ç¥Áر¸°£ID pObj->INSTL_MILE = pADO->FieldByName("INSTL_MILE")->AsInteger; //N NUMBER(5) Y ¼³Ä¡ÀÌÁ¤ pObj->CRDN_X = pADO->FieldByName("CRDN_X")->AsFloat; //N NUMBER(13,10) N ÁÂÇ¥X pObj->CRDN_Y = pADO->FieldByName("CRDN_Y")->AsFloat; //N NUMBER(12,10) N ÁÂÇ¥Y pObj->VMS_MODL_KIND = pADO->FieldByName("VMS_MODL_KIND")->AsString; //N VARCHAR2(10) N VMS¸ðµâÁ¾·ù pObj->CMNC_PORT = pADO->FieldByName("CMNC_PORT")->AsInteger; //N NUMBER(5) N Åë½ÅÆ÷Æ® pObj->EQMT_NO = pADO->FieldByName("EQMT_NO")->AsInteger; //N NUMBER(3) N Àåºñ¹øÈ£ pObj->OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString; //N VARCHAR2(3) N ¿î¿µ¸ðµå pObj->CMRA_IND = pADO->FieldByName("CMRA_IND")->AsString; //N CHAR(1) N Ä«¸Þ¶óÀ¯¹« pObj->CMRA_IMG_ADDR = pADO->FieldByName("CMRA_IMG_ADDR")->AsString; //N VARCHAR2(128) Y Ä«¸Þ¶ó¿µ»óÁÖ¼Ò pObj->CMRA_LGIN_ID = pADO->FieldByName("CMRA_LGIN_ID")->AsString; //N VARCHAR2(32) Y Ä«¸Þ¶ó·Î±×ÀÎID pObj->CMRA_LGIN_PW = pADO->FieldByName("CMRA_LGIN_PW")->AsString; //N VARCHAR2(32) Y Ä«¸Þ¶ó·Î±×ÀξÏÈ£ pObj->VMS_SCNR_ID = pADO->FieldByName("VMS_SCNR_ID")->AsString; //N VARCHAR2(10) Y VMS½Ã³ª¸®¿ÀID pObj->VMS_ON_HM = pADO->FieldByName("VMS_ON_HM")->AsString; //N CHAR(4) Y VMS ON½ÃºÐ pObj->VMS_OFF_HM = pADO->FieldByName("VMS_OFF_HM")->AsString; //N CHAR(4) Y VMS OFF½ÃºÐ pObj->MAX_DSPL_FORM_CNT = pADO->FieldByName("MAX_DSPL_FORM_CNT")->AsInteger; //N NUMBER(2) N ÃÖ´ëÇ¥ÃâÆû¼ö pObj->LCS_CTLR_ID = pADO->FieldByName("LCS_CTLR_ID")->AsString.Trim(); //N VARCHAR2(10) Y LCSÁ¦¾î±âID pObj->USE_YN = pADO->FieldByName("USE_YN")->AsString; pObj->IsLcsUse = false; pObj->FLcsInfo = NULL; pObj->VMS_CTLR_IP = pADO->FieldByName("VMS_CTLR_IP")->AsString; pObj->WEB_CMRA_IP = ""; pObj->VMS_RTSP_ADDR = pADO->FieldByName("VMS_RTSP_ADDR")->AsString; if (pObj->VMS_RTSP_ADDR == "-") { pObj->VMS_RTSP_ADDR = ""; } pObj->VMS_TYPE_NM = pADO->FieldByName("VMS_TYPE_NM")->AsString; pObj->OPER_MODE_NM = pADO->FieldByName("OPER_MODE_NM")->AsString; pObj->FULL_STRM_SESN_NM = pObj->VMS_RTSP_ADDR; pObj->VMS_MODL_KIND_NM = pADO->FieldByName("VMS_MODL_KIND_NM")->AsString.Trim(); pObj->VMS_MODL_ROW = pADO->FieldByName("VMS_MODL_ROW")->AsInteger; pObj->VMS_MODL_COL = pADO->FieldByName("VMS_MODL_COL")->AsInteger; pObj->MODL_PIXL_WDTH = pADO->FieldByName("MODL_PIXL_WDTH")->AsInteger; pObj->MODL_PIXL_HGHT = pADO->FieldByName("MODL_PIXL_HGHT")->AsInteger; pObj->POWR_MODL_ROW = pObj->VMS_MODL_ROW;//pADO->FieldByName("POWR_ROW_NUM")->AsInteger; pObj->POWR_MODL_COL = pObj->VMS_MODL_COL;//pADO->FieldByName("POWR_COL_NUM")->AsInteger; pObj->MODL_CLR = pADO->FieldByName("MODL_CLR")->AsString.Trim(); pObj->WIDTH = pObj->VMS_MODL_COL * pObj->MODL_PIXL_WDTH; pObj->HEIGHT = pObj->VMS_MODL_ROW * pObj->MODL_PIXL_HGHT; if (pObj->WIDTH > FMaxWidth) FMaxWidth = pObj->WIDTH; if (pObj->WIDTH < FMinWidth) FMinWidth = pObj->WIDTH; if (pObj->HEIGHT > FMaxHeight) FMaxHeight = pObj->HEIGHT; if (pObj->HEIGHT < FMinHeight) FMinHeight = pObj->HEIGHT; pObj->Stts = new TVmsStts(pObj->VMS_CTLR_ID); pObj->Para = new TVmsPara(pObj->VMS_CTLR_ID); FLists.Push(pObj->VMS_CTLR_ID, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return LcsLoadFromDb(ADbConn); } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LcsLoadFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.*, \r\n" " T2.VMS_MODL_KIND_NM, \r\n" " T2.VMS_MODL_COL, T2.MODL_PIXL_WDTH, \r\n" " T2.VMS_MODL_ROW, T2.MODL_PIXL_HGHT, T2.MODL_CLR, \r\n" " T3.INSTL_PSTN AS LCS_NM, \r\n" " T4.VMS_CTLR_ID \r\n" " FROM TB_LCS_CTLR T1, TB_VMS_MODL_KIND T2, TB_FCLT T3, TB_VMS_CTLR T4 \r\n" " WHERE 1=1 \r\n" " AND T1.USE_YN = 'Y' \r\n" " AND T1.VMS_MODL_KIND = T2.VMS_MODL_KIND \r\n" " AND T1.FCLT_ID = T3.FCLT_ID \r\n" " AND T1.LCS_CTLR_ID = T4.LCS_CTLR_ID(+) \r\n" " ORDER BY T1.LCS_CTLR_ID \r\n"; FLcsLists.Lock(); try { FLcsLists.RemoveAll(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { TLcsCtlr *pLcsObj = new TLcsCtlr(); pLcsObj->LCS_CTLR_ID = pADO->FieldByName("LCS_CTLR_ID")->AsString; //N VARCHAR2(10) N LCSÁ¦¾î±âID pLcsObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString; //N VARCHAR2(10) N ½Ã¼³¹°ID pLcsObj->LCS_NM = pADO->FieldByName("LCS_NM")->AsString; //N VARCHAR2(32) N LCS¸í pLcsObj->VMS_MODL_KIND = pADO->FieldByName("VMS_MODL_KIND")->AsString; //N VARCHAR2(10) N VMS¸ðµâÁ¾·ù pLcsObj->INSTL_LANE_CNT = pADO->FieldByName("INSTL_LANE_CNT")->AsString.ToIntDef(1); //N NUMBER(2) N ¼³Ä¡Â÷·Î¼ö pLcsObj->USE_YN = pADO->FieldByName("USE_YN")->AsString; pLcsObj->VMS_MODL_ROW = pADO->FieldByName("VMS_MODL_ROW")->AsInteger; pLcsObj->VMS_MODL_COL = pADO->FieldByName("VMS_MODL_COL")->AsInteger; pLcsObj->MODL_PIXL_WDTH = pADO->FieldByName("MODL_PIXL_WDTH")->AsInteger; pLcsObj->MODL_PIXL_HGHT = pADO->FieldByName("MODL_PIXL_HGHT")->AsInteger; pLcsObj->POWR_MODL_ROW = pLcsObj->VMS_MODL_ROW; pLcsObj->POWR_MODL_COL = pLcsObj->VMS_MODL_COL; pLcsObj->MODL_CLR = pADO->FieldByName("MODL_CLR")->AsString.Trim(); pLcsObj->WIDTH = pLcsObj->VMS_MODL_COL * pLcsObj->MODL_PIXL_WDTH; pLcsObj->HEIGHT = pLcsObj->VMS_MODL_ROW * pLcsObj->MODL_PIXL_HGHT; FLcsLists.Push(pLcsObj->LCS_CTLR_ID, pLcsObj); String VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; TVmsCtlr *pVmsObj = FLists.Find(VMS_CTLR_ID); if (pVmsObj) { pVmsObj->IsLcsUse = true; pVmsObj->FLcsInfo = pLcsObj; } } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LcsLoadFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LcsLoadFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLcsLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadStatusFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T2.VMS_CTLR_ID, \r\n" " NVL(T1.LAST_DT, SYSDATE) AS LAST_DT, \r\n" " NVL(T1.RPRS_STTS, 'U') AS RPRS_STTS, \r\n" " NVL(T1.CMNC_STTS, 'U') AS CMNC_STTS, \r\n" " NVL(T1.PS_STTS, 'U') AS PS_STTS, \r\n" " NVL(T1.FAN_STTS, 'U') AS FAN_STTS, \r\n" " NVL(T1.HTER_STTS, 'U') AS HTER_STTS, \r\n" " NVL(T1.DOOR_STTS, 'U') AS DOOR_STTS, \r\n" " NVL(T1.RSET_YN, 'N') AS RSET_YN, \r\n" " NVL(T1.TEMP, 0) AS TEMP, \r\n" " NVL(T1.HUM, 0) AS HUM, \r\n" " NVL(T1.BOX_TEMP, 0) AS BOX_TEMP, \r\n" " T2.OPER_MODE, T2.VMS_SCNR_ID, T2.VMS_ON_HM, T2.VMS_OFF_HM, \r\n" " TO_CHAR(NVL(T1.LAST_DT, SYSDATE), 'YYYY-MM-DD HH24:MI:SS') AS LAST_DT_FMT \r\n" " FROM TB_VMS_CTLR_STTS_PRST T1, TB_VMS_CTLR T2 \r\n" " WHERE 1=1 \r\n" " AND T1.VMS_CTLR_ID(+) = T2.VMS_CTLR_ID \r\n"; FLists.Lock(); try { TVmsCtlr *pVmsCtlr = NULL; FOR_STL(TVmsCtlr*, pVms, FLists) { pVms->Stts->IsLoading = false; } try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; pVmsCtlr = FLists.Find(VMS_CTLR_ID); if (pVmsCtlr == NULL) { continue; } TVmsStts* Stts = pVmsCtlr->Stts; pVmsCtlr->OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString; //N VARCHAR2(3) N ¿î¿µ¸ðµå pVmsCtlr->VMS_SCNR_ID = pADO->FieldByName("VMS_SCNR_ID")->AsString; //N VARCHAR2(10) Y VMS½Ã³ª¸®¿ÀID pVmsCtlr->VMS_ON_HM = pADO->FieldByName("VMS_ON_HM")->AsString; //N CHAR(4) Y VMS ON½ÃºÐ pVmsCtlr->VMS_OFF_HM = pADO->FieldByName("VMS_OFF_HM")->AsString; //N CHAR(4) Y VMS OFF½ÃºÐ Stts->LAST_DT = pADO->FieldByName("LAST_DT")->AsString; // N DATE N ÃÖÁ¾ÀϽà Stts->LAST_DT_FMT = pADO->FieldByName("LAST_DT_FMT")->AsString; // N DATE N ÃÖÁ¾ÀϽà Stts->RPRS_STTS = pADO->FieldByName("RPRS_STTS")->AsString; // N VARCHAR2(3) N ´ëÇ¥»óÅ Stts->CMNC_STTS = pADO->FieldByName("CMNC_STTS")->AsString; // N VARCHAR2(3) Y Åë½Å»óÅ Stts->PS_STTS = pADO->FieldByName("PS_STTS")->AsString; // N VARCHAR2(3) Y Àü¿ø»óÅ Stts->FAN_STTS = pADO->FieldByName("FAN_STTS")->AsString; // N VARCHAR2(3) Y ÆÒ»óÅ Stts->HTER_STTS = pADO->FieldByName("HTER_STTS")->AsString; // N VARCHAR2(3) Y È÷ÅÍ»óÅ Stts->DOOR_STTS = pADO->FieldByName("DOOR_STTS")->AsString; // N VARCHAR2(3) Y ¹®»óÅ Stts->RSET_YN = pADO->FieldByName("RSET_YN")->AsString; // N CHAR(1) Y Àç½ÇÇà¿©ºÎ Stts->TEMP = pADO->FieldByName("TEMP")->AsString.ToIntDef(0); // N NUMBER(3,1) Y ¿Âµµ Stts->HUM = pADO->FieldByName("HUM")->AsString.ToIntDef(0); // N NUMBER(3,1) Y ½Àµµ Stts->BOX_TEMP = pADO->FieldByName("BOX_TEMP")->AsString.ToIntDef(0); // N NUMBER(3,1) Y ÇÔü¿Âµµ Stts->IsLoading = true; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadStatusFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadStatusFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadModlSttsFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.VMS_CTLR_ID, \r\n" " T2.ROW_NO, \r\n" " T2.COL_NO, \r\n" " TO_CHAR(T2.LAST_DT, 'YYYY-MM-DD HH24:MI:SS') AS LAST_DT_FMT, \r\n" " T2.MODL_STTS \r\n" " FROM TB_VMS_CTLR T1, \r\n" " TB_VMS_MODL_STTS_PRST T2 \r\n" " WHERE 1=1 \r\n" " AND T1.VMS_CTLR_ID = T2.VMS_CTLR_ID \r\n" " ORDER BY T1.VMS_CTLR_ID \r\n"; try { TVmsCtlr *pVmsCtlr = NULL; FOR_STL(TVmsCtlr*, pVms, FLists) { pVms->FModlSttsLists.RemoveAll(); } try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; pVmsCtlr = FLists.Find(VMS_CTLR_ID); if (pVmsCtlr == NULL) { continue; } TVmsModlStts* Stts = new TVmsModlStts(); Stts->VMS_CTLR_ID = VMS_CTLR_ID; // N VARCHAR2(10) N VMSÁ¦¾î±âID Stts->ROW_NO = pADO->FieldByName("ROW_NO")->AsInteger; // N NUMBER(2) N Çà¹øÈ£ Stts->COL_NO = pADO->FieldByName("COL_NO")->AsInteger; // N NUMBER(2) N ¿­¹øÈ£ Stts->LAST_DT_FMT = pADO->FieldByName("LAST_DT_FMT")->AsString; // N DATE N ÃÖÁ¾ÀϽà Stts->MODL_STTS = pADO->FieldByName("MODL_STTS")->AsString; // N VARCHAR2(3) N ¸ðµâ»óÅ pVmsCtlr->FModlSttsLists.Push(pVmsCtlr->FModlSttsLists.Size(), Stts); } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadModlSttsFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadModlSttsFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadParaFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.*, T2.OPER_MODE, T2.VMS_SCNR_ID, T2.VMS_ON_HM, T2.VMS_OFF_HM, \r\n" " TO_CHAR(T1.LAST_DT, 'YYYY-MM-DD HH24:MI:SS') AS LAST_DT_FMT \r\n" " FROM TB_VMS_CTLR_PARA T1, TB_VMS_CTLR T2 \r\n" " WHERE T1.VMS_CTLR_ID = T2.VMS_CTLR_ID \r\n"; FLists.Lock(); try { TVmsCtlr *pVmsCtlr = NULL; FOR_STL(TVmsCtlr*, pVms, FLists) { pVms->Para->IsLoading = false; } try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; pVmsCtlr = FLists.Find(VMS_CTLR_ID); if (pVmsCtlr == NULL) { continue; } TVmsPara* Para = pVmsCtlr->Para; pVmsCtlr->OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString; //N VARCHAR2(3) N ¿î¿µ¸ðµå pVmsCtlr->VMS_SCNR_ID = pADO->FieldByName("VMS_SCNR_ID")->AsString; //N VARCHAR2(10) Y VMS½Ã³ª¸®¿ÀID pVmsCtlr->VMS_ON_HM = pADO->FieldByName("VMS_ON_HM")->AsString; //N CHAR(4) Y VMS ON½ÃºÐ pVmsCtlr->VMS_OFF_HM = pADO->FieldByName("VMS_OFF_HM")->AsString; //N CHAR(4) Y VMS OFF½ÃºÐ Para->LAST_DT = pADO->FieldByName("LAST_DT")->AsString; // N DATE N ÃÖÁ¾ÀϽà Para->LAST_DT_FMT = pADO->FieldByName("LAST_DT_FMT")->AsString; // N DATE N ÃÖÁ¾ÀϽà Para->LUMI_MODE = pADO->FieldByName("LUMI_MODE")->AsString.ToIntDef(0); // N VARCHAR2(3) Y ÈÖµµ¸ðµå Para->CUR_LUMI = pADO->FieldByName("CUR_LUMI")->AsString.ToIntDef(0); // N NUMBER(3) Y ÇöÀçÈÖµµ Para->DAY_LUMI = pADO->FieldByName("DAY_LUMI")->AsString.ToIntDef(0); // N NUMBER(3) Y ÁÖ°£ÈÖµµ Para->NGHT_LUMI = pADO->FieldByName("NGHT_LUMI")->AsString.ToIntDef(0); // N NUMBER(3) Y ¾ß°£ÈÖµµ //Para->CMNC_RTRY_NOCS = pADO->FieldByName("CMNC_RTRY_NOCS")->AsString.ToIntDef(0); // N NUMBER(3) Y Åë½ÅÀç½ÃµµÈ½¼ö //Para->BLNK_TM = pADO->FieldByName("BLNK_TM")->AsString.ToIntDef(0); // N NUMBER(3) Y Á¡¸ê½Ã°£ÁÖ±â Para->FAN_MODE = pADO->FieldByName("FAN_MODE")->AsString; // N VARCHAR2(3) Y ÆÒ¸ðµå Para->HTER_MODE = pADO->FieldByName("HTER_MODE")->AsString; // N VARCHAR2(3) Y È÷Å͸ðµå Para->ERR_MODL_RT = pADO->FieldByName("ERR_MODL_RT")->AsString.ToIntDef(0); // N NUMBER(3) Y Àå¾Ö¸ðµâºñÀ² Para->DFLT_SCNR_RUN_TM = pADO->FieldByName("DFLT_SCNR_RUN_TM")->AsString.ToIntDef(0); // N NUMBER(3) Y µðÆúÆ®½Ã³ª¸®¿Àµ¿À۽ð£ Para->IsLoading = true; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadParaFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadParaFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::UpdateCtlrInfo(TVmsCtlr *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VMS_CTLR \r\n" " SET VMS_ON_HM = :p01, \r\n" " VMS_OFF_HM = :p02 \r\n" " WHERE USE_YN = 'Y' \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->VMS_ON_HM; pADO->Parameters->ParamByName("p02")->Value = AObj->VMS_ON_HM; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::UpdateCtlrInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::UpdateCtlrInfo", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadVmsMsg(TADOConnection *ADbConn/*=NULL*/) { bool result = false; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.VMS_CTLR_ID AS CTLR_ID, \r\n" " T2.SN, \r\n" " TO_CHAR(T2.PROV_DT, 'YYYY-MM-DD HH24:MI:SS') AS PROV_DT_FMT, \r\n" " T2.DSPL_HR, T2.DSPL_EFF, T2.BACK_CLR, T2.VMS_FORM_ID, \r\n" " T2.DSPL_CN, T2.PROV_YN, \r\n" " T2.OPER_MODE, T2.VMS_FORM_TYPE, \r\n" " T2.DSPL_PICT \r\n" " FROM TB_VMS_CTLR T1, \r\n" " TB_VMS_DSPL_PRST T2 \r\n" " WHERE 1=1 \r\n" " AND T1.VMS_CTLR_ID = T2.VMS_CTLR_ID \r\n" " ORDER BY T1.VMS_CTLR_ID, T2.PROV_DT, T2.SN \r\n"; TVmsCtlr *pObj = NULL; String OLD_CTLR_ID = ""; int nPhase = 0; bool isOfferYn = true; FLists.Lock(); try { FOR_STL(TVmsCtlr*, pTmpObj, FLists) { pTmpObj->Lock(); pTmpObj->FVmsMsg->Init(); pTmpObj->UnLock(); } } __finally { FLists.UnLock(); } try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_ID = pADO->FieldByName("CTLR_ID")->AsString; if (CTLR_ID != OLD_CTLR_ID) { if (pObj) { pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->OFFER_YN = isOfferYn; } pObj = FLists.Find(CTLR_ID); if (pObj) { nPhase = 0; isOfferYn = true; OLD_CTLR_ID = CTLR_ID; } else continue; } if (!pObj) continue; if (nPhase >= INT_VMS_MAX_FORM) continue; SAFE_DELETE(FImgStream); try { FImgStream = pADO->CreateBlobStream(pADO->FieldByName("DSPL_PICT"), bmRead); if (FImgStream && FImgStream->Size > 0) { if (!pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT) { pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT = new Graphics::TBitmap(); } pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->FreeImage(); pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->LoadFromStream(FImgStream); pObj->FVmsMsg->PHASE[nPhase].CTLR_ID = CTLR_ID; // N VARCHAR2(10) N VMSÁ¦¾î±âID pObj->FVmsMsg->PHASE[nPhase].SN = pADO->FieldByName("SN")->AsInteger; // N NUMBER(5) N ¼ø¹ø pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT = pADO->FieldByName("PROV_DT_FMT")->AsString; // N DATE N Á¦°øÀϽà pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = pADO->FieldByName("DSPL_HR")->AsInteger; // N NUMBER(3) N Ç¥Ãâ½Ã°£ pObj->FVmsMsg->PHASE[nPhase].DSPL_EFF = pADO->FieldByName("DSPL_EFF")->AsString; // N VARCHAR2(3) N Ç¥ÃâÈ¿°ú pObj->FVmsMsg->PHASE[nPhase].BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; // N VARCHAR2(3) Y ¹è°æ»ö»ó pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; // N VARCHAR2(10) N VMSÆûID pObj->FVmsMsg->PHASE[nPhase].DSPL_CN = pADO->FieldByName("DSPL_CN")->AsString; // N VARCHAR2(256) N Ç¥Ãâ³»¿ë pObj->FVmsMsg->PHASE[nPhase].PROV_YN = pADO->FieldByName("PROV_YN")->AsString; // N CHAR(1) N Á¦°ø¿©ºÎ pObj->FVmsMsg->PHASE[nPhase].OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString; // N VARCHAR2(3) N ¿î¿µ¸ðµå pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_TYPE = pADO->FieldByName("VMS_FORM_TYPE")->AsString; // N VARCHAR2(3) N VMSÆûÀ¯Çü if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR <= 0) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 3; if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR >= 10) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 10; pObj->FVmsMsg->OFFER_DT = pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT; if (pObj->FVmsMsg->PHASE[nPhase].PROV_YN != "Y") { isOfferYn = false; } nPhase++; } } catch(Exception &e) { } } if (pObj) { pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->OFFER_YN = isOfferYn; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadVmsMsg", String(E.ClassName()), E.Message, sQry); result = false; } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadVmsMsg", String(e.ClassName()), e.Message, sQry); result = false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } result = LoadLcsMsg(ADbConn); return result; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadLcsMsg(TADOConnection *ADbConn/*=NULL*/) { bool result = false; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.LCS_CTLR_ID AS CTLR_ID, \r\n" " T2.SN, \r\n" " TO_CHAR(T2.PROV_DT, 'YYYY-MM-DD HH24:MI:SS') AS PROV_DT_FMT, \r\n" " T2.DSPL_HR, T2.DSPL_EFF, T2.BACK_CLR, T2.VMS_FORM_ID, \r\n" " T2.DSPL_CN, T2.PROV_YN, \r\n" " T2.DSPL_PICT \r\n" " FROM TB_LCS_CTLR T1, \r\n" " TB_LCS_DSPL_PRST T2 \r\n" " WHERE 1=1 \r\n" " AND T1.LCS_CTLR_ID = T2.LCS_CTLR_ID \r\n" " ORDER BY T1.LCS_CTLR_ID, T2.PROV_DT, T2.SN \r\n"; TLcsCtlr *pObj = NULL; String OLD_CTLR_ID = ""; int nPhase = 0; bool isOfferYn = true; FLcsLists.Lock(); try { FOR_STL(TLcsCtlr*, pTmpObj, FLcsLists) { pTmpObj->Lock(); pTmpObj->FVmsMsg->Init(); pTmpObj->UnLock(); } } __finally { FLcsLists.UnLock(); } try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_ID = pADO->FieldByName("CTLR_ID")->AsString; if (CTLR_ID != OLD_CTLR_ID) { if (pObj) { pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->OFFER_YN = isOfferYn; } pObj = FLcsLists.Find(CTLR_ID); if (pObj) { nPhase = 0; isOfferYn = true; OLD_CTLR_ID = CTLR_ID; } else continue; } if (!pObj) continue; if (nPhase >= INT_VMS_MAX_FORM) continue; SAFE_DELETE(FImgStream); try { FImgStream = pADO->CreateBlobStream(pADO->FieldByName("DSPL_PICT"), bmRead); if (FImgStream && FImgStream->Size > 0) { if (!pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT) { pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT = new Graphics::TBitmap(); } pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->FreeImage(); pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->LoadFromStream(FImgStream); pObj->FVmsMsg->PHASE[nPhase].CTLR_ID = CTLR_ID; // N VARCHAR2(10) N VMSÁ¦¾î±âID pObj->FVmsMsg->PHASE[nPhase].SN = pADO->FieldByName("SN")->AsInteger; // N NUMBER(5) N ¼ø¹ø pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT = pADO->FieldByName("PROV_DT_FMT")->AsString; // N DATE N Á¦°øÀϽà pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = pADO->FieldByName("DSPL_HR")->AsInteger; // N NUMBER(3) N Ç¥Ãâ½Ã°£ pObj->FVmsMsg->PHASE[nPhase].DSPL_EFF = pADO->FieldByName("DSPL_EFF")->AsString; // N VARCHAR2(3) N Ç¥ÃâÈ¿°ú pObj->FVmsMsg->PHASE[nPhase].BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; // N VARCHAR2(3) Y ¹è°æ»ö»ó pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; // N VARCHAR2(10) N VMSÆûID pObj->FVmsMsg->PHASE[nPhase].DSPL_CN = pADO->FieldByName("DSPL_CN")->AsString; // N VARCHAR2(256) N Ç¥Ãâ³»¿ë pObj->FVmsMsg->PHASE[nPhase].PROV_YN = pADO->FieldByName("PROV_YN")->AsString; // N CHAR(1) N Á¦°ø¿©ºÎ if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR <= 0) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 3; if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR >= 10) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 10; pObj->FVmsMsg->OFFER_DT = pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT; if (pObj->FVmsMsg->PHASE[nPhase].PROV_YN != "Y") { isOfferYn = false; } nPhase++; } } catch(Exception &e) { } } if (pObj) { pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->OFFER_YN = isOfferYn; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadVmsMsg", String(E.ClassName()), E.Message, sQry); result = false; } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadVmsMsg", String(e.ClassName()), e.Message, sQry); result = false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadVmsPlanMsg(TADOConnection *ADbConn/*=NULL*/) { bool result = false; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.VMS_CTLR_ID AS CTLR_ID, \r\n" " T2.SN, \r\n" " TO_CHAR(T2.LAST_DT, 'YYYY-MM-DD HH24:MI:SS') AS PROV_DT_FMT, \r\n" " T2.DSPL_HR, T2.DSPL_EFF, T2.BACK_CLR, T2.VMS_FORM_ID, \r\n" " T2.DSPL_CN, 'Y' AS PROV_YN, \r\n" " T2.OPER_MODE, T2.VMS_FORM_TYPE, \r\n" " T2.DSPL_PICT \r\n" " FROM TB_VMS_CTLR T1, \r\n" " TB_VMS_DSPL_PLAN_MSG T2 \r\n" " WHERE 1=1 \r\n" " AND T1.VMS_CTLR_ID = T2.VMS_CTLR_ID \r\n" " ORDER BY T1.VMS_CTLR_ID, T2.LAST_DT, T2.SN \r\n"; TVmsCtlr *pObj = NULL; String OLD_CTLR_ID = ""; int nPhase = 0; bool isOfferYn = true; FLists.Lock(); try { FOR_STL(TVmsCtlr*, pTmpObj, FLists) { pTmpObj->Lock(); pTmpObj->FVmsMsg->Init(); pTmpObj->UnLock(); } } __finally { FLists.UnLock(); } try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_ID = pADO->FieldByName("CTLR_ID")->AsString; if (CTLR_ID != OLD_CTLR_ID) { if (pObj) { pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->OFFER_YN = isOfferYn; } pObj = FLists.Find(CTLR_ID); if (pObj) { nPhase = 0; isOfferYn = true; OLD_CTLR_ID = CTLR_ID; } else continue; } if (!pObj) continue; if (nPhase >= INT_VMS_MAX_FORM) continue; SAFE_DELETE(FImgStream); try { FImgStream = pADO->CreateBlobStream(pADO->FieldByName("DSPL_PICT"), bmRead); if (FImgStream && FImgStream->Size > 0) { if (!pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT) { pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT = new Graphics::TBitmap(); } pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->FreeImage(); pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->LoadFromStream(FImgStream); pObj->FVmsMsg->PHASE[nPhase].CTLR_ID = CTLR_ID; // N VARCHAR2(10) N VMSÁ¦¾î±âID pObj->FVmsMsg->PHASE[nPhase].SN = pADO->FieldByName("SN")->AsInteger; // N NUMBER(5) N ¼ø¹ø pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT = pADO->FieldByName("PROV_DT_FMT")->AsString; // N DATE N Á¦°øÀϽà pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = pADO->FieldByName("DSPL_HR")->AsInteger; // N NUMBER(3) N Ç¥Ãâ½Ã°£ pObj->FVmsMsg->PHASE[nPhase].DSPL_EFF = pADO->FieldByName("DSPL_EFF")->AsString; // N VARCHAR2(3) N Ç¥ÃâÈ¿°ú pObj->FVmsMsg->PHASE[nPhase].BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; // N VARCHAR2(3) Y ¹è°æ»ö»ó pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; // N VARCHAR2(10) N VMSÆûID pObj->FVmsMsg->PHASE[nPhase].DSPL_CN = pADO->FieldByName("DSPL_CN")->AsString; // N VARCHAR2(256) N Ç¥Ãâ³»¿ë pObj->FVmsMsg->PHASE[nPhase].PROV_YN = pADO->FieldByName("PROV_YN")->AsString; // N CHAR(1) N Á¦°ø¿©ºÎ pObj->FVmsMsg->PHASE[nPhase].OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString; // N VARCHAR2(3) N ¿î¿µ¸ðµå pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_TYPE = pADO->FieldByName("VMS_FORM_TYPE")->AsString; // N VARCHAR2(3) N VMSÆûÀ¯Çü if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR <= 0) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 3; if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR >= 10) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 10; pObj->FVmsMsg->OFFER_DT = pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT; if (pObj->FVmsMsg->PHASE[nPhase].PROV_YN != "Y") { isOfferYn = false; } nPhase++; } } catch(Exception &e) { } } if (pObj) { pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->OFFER_YN = isOfferYn; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadVmsPlanMsg", String(E.ClassName()), E.Message, sQry); result = false; } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadVmsPlanMsg", String(e.ClassName()), e.Message, sQry); result = false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } result = LoadLcsPlanMsg(ADbConn); return result; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::LoadLcsPlanMsg(TADOConnection *ADbConn/*=NULL*/) { bool result = false; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT T1.LCS_CTLR_ID AS CTLR_ID, \r\n" " T2.SN, \r\n" " TO_CHAR(T2.LAST_DT, 'YYYY-MM-DD HH24:MI:SS') AS PROV_DT_FMT, \r\n" " T2.DSPL_HR, T2.DSPL_EFF, T2.BACK_CLR, T2.VMS_FORM_ID, \r\n" " T2.DSPL_CN, 'Y' AS PROV_YN, \r\n" " T2.DSPL_PICT \r\n" " FROM TB_LCS_CTLR T1, \r\n" " TB_LCS_DSPL_PLAN_MSG T2 \r\n" " WHERE 1=1 \r\n" " AND T1.LCS_CTLR_ID = T2.LCS_CTLR_ID \r\n" " ORDER BY T1.LCS_CTLR_ID, T2.LAST_DT, T2.SN \r\n"; TLcsCtlr *pObj = NULL; String OLD_CTLR_ID = ""; int nPhase = 0; bool isOfferYn = true; FLcsLists.Lock(); try { FOR_STL(TLcsCtlr*, pTmpObj, FLcsLists) { pTmpObj->Lock(); pTmpObj->FVmsMsg->Init(); pTmpObj->UnLock(); } } __finally { FLcsLists.UnLock(); } try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Prepared = true; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_ID = pADO->FieldByName("CTLR_ID")->AsString; if (CTLR_ID != OLD_CTLR_ID) { if (pObj) { pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->OFFER_YN = isOfferYn; } pObj = FLcsLists.Find(CTLR_ID); if (pObj) { nPhase = 0; isOfferYn = true; OLD_CTLR_ID = CTLR_ID; } else continue; } if (!pObj) continue; if (nPhase >= INT_VMS_MAX_FORM) continue; SAFE_DELETE(FImgStream); try { FImgStream = pADO->CreateBlobStream(pADO->FieldByName("DSPL_PICT"), bmRead); if (FImgStream && FImgStream->Size > 0) { if (!pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT) { pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT = new Graphics::TBitmap(); } pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->FreeImage(); pObj->FVmsMsg->PHASE[nPhase].DSPL_PICT->LoadFromStream(FImgStream); pObj->FVmsMsg->PHASE[nPhase].CTLR_ID = CTLR_ID; // N VARCHAR2(10) N VMSÁ¦¾î±âID pObj->FVmsMsg->PHASE[nPhase].SN = pADO->FieldByName("SN")->AsInteger; // N NUMBER(5) N ¼ø¹ø pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT = pADO->FieldByName("PROV_DT_FMT")->AsString; // N DATE N Á¦°øÀϽà pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = pADO->FieldByName("DSPL_HR")->AsInteger; // N NUMBER(3) N Ç¥Ãâ½Ã°£ pObj->FVmsMsg->PHASE[nPhase].DSPL_EFF = pADO->FieldByName("DSPL_EFF")->AsString; // N VARCHAR2(3) N Ç¥ÃâÈ¿°ú pObj->FVmsMsg->PHASE[nPhase].BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; // N VARCHAR2(3) Y ¹è°æ»ö»ó pObj->FVmsMsg->PHASE[nPhase].VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; // N VARCHAR2(10) N VMSÆûID pObj->FVmsMsg->PHASE[nPhase].DSPL_CN = pADO->FieldByName("DSPL_CN")->AsString; // N VARCHAR2(256) N Ç¥Ãâ³»¿ë pObj->FVmsMsg->PHASE[nPhase].PROV_YN = pADO->FieldByName("PROV_YN")->AsString; // N CHAR(1) N Á¦°ø¿©ºÎ if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR <= 0) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 3; if (pObj->FVmsMsg->PHASE[nPhase].DSPL_HR >= 10) pObj->FVmsMsg->PHASE[nPhase].DSPL_HR = 10; pObj->FVmsMsg->OFFER_DT = pObj->FVmsMsg->PHASE[nPhase].PROV_DT_FMT; if (pObj->FVmsMsg->PHASE[nPhase].PROV_YN != "Y") { isOfferYn = false; } nPhase++; } } catch(Exception &e) { } } if (pObj) { pObj->FVmsMsg->IsLoading = false; pObj->FVmsMsg->Total = nPhase; pObj->FVmsMsg->Curr = 0; pObj->FVmsMsg->OFFER_YN = isOfferYn; } } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::LoadLcsPlanMsg", String(E.ClassName()), E.Message, sQry); result = false; } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::LoadLcsPlanMsg", String(e.ClassName()), e.Message, sQry); result = false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TVmsCtlrManager::InsVmsControlHs(String ACtlDt, String AVmsNmbr, String ACtlType, String ACtlVal, String ACtlRes, String AUserId, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "INSERT INTO TB_VMS_CTRL_HS( \r\n" " CTRL_DT, \r\n" " VMS_CTLR_ID, \r\n" " CTRL_TYPE, \r\n" " CTRL_VAL, \r\n" " CTRL_RESULT, \r\n" " USER_ID \r\n" " ) \r\n" " VALUES( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05, \r\n" " :p06 \r\n" " ) \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = ACtlDt; pADO->Parameters->ParamByName("p02")->Value = AVmsNmbr; pADO->Parameters->ParamByName("p03")->Value = ACtlType; pADO->Parameters->ParamByName("p04")->Value = ACtlVal; pADO->Parameters->ParamByName("p05")->Value = ACtlRes; pADO->Parameters->ParamByName("p06")->Value = AUserId; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TVmsCtlrManager::InsVmsControlHs", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVmsCtlrManager::InsVmsControlHs", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //---------------------------------------------------------------------------