//--------------------------------------------------------------------------- #include #include "AppGlobalF.h" #include "ITSSkinF.h" #include "ITSUtilF.h" #include "FrmVmsOprMainF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "VMS0600MF.h" #include "VMSVIEWMF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSplitter" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinCaramel" #pragma link "dxSkinCoffee" #pragma link "dxSkinDarkRoom" #pragma link "dxSkinDarkSide" #pragma link "dxSkinFoggy" #pragma link "dxSkinGlassOceans" #pragma link "dxSkiniMaginary" #pragma link "dxSkinLilian" #pragma link "dxSkinLiquidSky" #pragma link "dxSkinLondonLiquidSky" #pragma link "dxSkinMcSkin" #pragma link "dxSkinMoneyTwins" #pragma link "dxSkinOffice2007Black" #pragma link "dxSkinOffice2007Blue" #pragma link "dxSkinOffice2007Green" #pragma link "dxSkinOffice2007Pink" #pragma link "dxSkinOffice2007Silver" #pragma link "dxSkinOffice2010Black" #pragma link "dxSkinOffice2010Blue" #pragma link "dxSkinOffice2010Silver" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "dxSkinSeven" #pragma link "dxSkinSharp" #pragma link "dxSkinSilver" #pragma link "dxSkinStardust" #pragma link "cxClasses" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxFilter" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "cxGridCardView" #pragma link "cxGridCustomLayoutView" #pragma link "cxCheckBox" #pragma link "cxDropDownEdit" #pragma link "cxImage" #pragma link "cxButtons" #pragma link "FRAME_VmsStateF" #pragma link "FRAME_VmsMsgListF" #pragma resource "*.dfm" TVMS0600M *VMS0600M = NULL; //--------------------------------------------------------------------------- __fastcall TVMS0600M::TVMS0600M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); LoadLocalSkin(); FMonitoringType = enMonitoringModule; TsList01->TabVisible = false; if (FormStyle != fsMDIChild) CMM_LoadForm(g_sFormsDir, this); FListForm = new TList; FSelVmsObj= NULL; FSelForm = NULL; //PgVmsState->Properties->HideTabs = true; //PgVmsIfscTraf->Properties->HideTabs = true; FReady = false; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::CommClose() { try { ClearFormList(); SAFE_DELETE(FListForm); if (FormStyle != fsMDIChild) CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::ClearFormList() { try { LockWindowUpdate(Handle); try { for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pForm = (TVMSBACKM*)FListForm->Items[ii]; pForm->Hide(); SAFE_DELETE(pForm); } FListForm->Clear(); int nForms = PgFormTab->PageCount; for (int ii = 1; ii < nForms; ii++) { TcxTabSheet *pTmpSheet = PgFormTab->Pages[1]; if (pTmpSheet) delete pTmpSheet; } PgFormTab->ActivePageIndex = 0; } catch(Exception &e) { TcxTabSheet *pTmpSheet = PgFormTab->Pages[1]; if (pTmpSheet) delete pTmpSheet; } } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::FormCreate(TObject *Sender) { InitMonitoringForm(); //CreateVmsMsgForm(VmsCtlrManager->FMaxWidth); } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::CreateVmsMsgForm(int AWidth) { FReady = false; ClearFormList(); String sQry; TADOQuery *pADO = NULL; sQry = "SELECT MONITORING_NM, MONITORING_SEQ, VMS_CTLR_NMBR \r\n" " FROM TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n" " ORDER BY MONITORING_NM DESC, MONITORING_SEQ \r\n"; TcxTabSheet *pSheet = NULL; TVMSBACKM *pScrForm = NULL; String sOldName = ""; int nIndex = 0; try { LockWindowUpdate(Handle); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", String(FMonitoringType)); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { String sScrName = pADO->FieldByName("MONITORING_NM")->AsString; String sScrSeq = pADO->FieldByName("MONITORING_SEQ")->AsString; String sVmsNmbr = pADO->FieldByName("VMS_CTLR_NMBR")->AsString; if (sOldName != sScrName) { //½Å±Ô È­¸é¸ñ·Ï Ãß°¡ pSheet = CMM_AddTabSheet(PgFormTab, " " + sScrName + " "); if (!pSheet) continue; TVMSBACKM *pNewForm = new TVMSBACKM(this, Handle, sScrName, nIndex++); pNewForm->FMonitoringType = FMonitoringType; pNewForm->Parent = pSheet; pNewForm->Show(); pScrForm = pNewForm; sOldName = sScrName; FListForm->Add(pNewForm); } pScrForm->AddVmsForm(sVmsNmbr); } } catch(EDatabaseError &E) { DBERRORMSG("VMS Module Monitoring Screen Query", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("VMS Module Monitoring Screen Query", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } if (PgFormTab->PageCount == 1) PgFormTab->ActivePageIndex = 0; else PgFormTab->ActivePageIndex = 1; LockWindowUpdate(0); } FReady = true; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::FormShow(TObject *Sender) { Refresh(); CreateVmsMsgForm(VmsCtlrManager->FMaxWidth); if (PgFormTab->PageCount == 1) PgFormTab->ActivePageIndex = 0; else PgFormTab->ActivePageIndex = 1; Application->ProcessMessages(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::FormActivate(TObject *Sender) { ActivateForm(true); } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::FormDeactivate(TObject *Sender) { ActivateForm(false); } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::LoadLocalSkin() { } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::FormClose(TObject *Sender, TCloseAction &Action) { try { CommClose(); VMS0600M = NULL; Action = caFree; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::OnMainFormMessage(TMessage &Msg) { } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::OnVmsStateRefreshMessage(TMessage &Msg) { for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pForm = (TVMSBACKM*)FListForm->Items[ii]; pForm->RefreshVmsStatus(); } FRAMEVmsState1->SelVmsObj = FSelVmsObj; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::OnVmsFormRefreshMessage(TMessage &Msg) { if (FSelVmsObj) { FRAMEVmsMsgList1->LoadVmsMsgScenario((FSelVmsObj->VMS_CTLR_NMBR)); } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::OnVmsSelectMessage(TMessage &Msg) { try { FSelVmsObj = (TVmsCtlr*)Msg.WParam; FRAMEVmsState1->SelVmsObj = FSelVmsObj; if (!FSelVmsObj) return; TVMSMODL0 *pSelForm = (TVMSMODL0*)Msg.LParam; if (pSelForm == FSelForm) return; if (FSelForm) FSelForm->SelectForm(false); FSelForm = pSelForm; if (FSelForm) FSelForm->SelectForm(true); FRAMEVmsMsgList1->LoadVmsMsgScenario((FSelVmsObj->VMS_CTLR_NMBR)); } catch(...) {}; } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::BtnMonitoringMngrClick(TObject *Sender) { TVMSVIEWM *pForm = new TVMSVIEWM(this); pForm->FMonitoringType = FMonitoringType; pForm->ShowModal(); bool bUpdate = pForm->FUpdate; SAFE_DELETE(pForm); if (bUpdate) { if (FSelForm) FSelForm->SelectForm(false); FSelVmsObj = NULL; FSelForm = NULL; FRAMEVmsState1->SelVmsObj = FSelVmsObj; FRAMEVmsMsgList1->ClearVmsMsg(); CreateVmsMsgForm(VmsCtlrManager->FMaxWidth); try { LockWindowUpdate(Handle); for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pForm = (TVMSBACKM*)FListForm->Items[ii]; pForm->RecalFormPosition(); } } __finally { LockWindowUpdate(0); } } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::InitMonitoringForm() { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT COUNT(1) AS CNT \r\n" " FROM TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n"; VmsCtlrManager->FLists.Lock(); try { int nFormSeq; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", String(FMonitoringType)); ITSDb_SQLOpen(pADO); int nFormCnt = pADO->FieldByName("CNT")->AsInteger; if (nFormCnt > 0) return; sQry = "INSERT INTO TB_VMS_MONITORING ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " VMS_CTLR_NMBR, \r\n" " VIEW_MODE \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " 0 \r\n" " ) \r\n"; ITSDb_SQLText(pADO, sQry); nFormSeq = 0; FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->DEL_YN == "Y") continue; String sFormName = "Default"; ITSDb_SQLBind(pADO, "p01", String(FMonitoringType)); ITSDb_SQLBind(pADO, "p02", sFormName); ITSDb_SQLBind(pADO, "p03", String(++nFormSeq)); ITSDb_SQLBind(pADO, "p04", (pObj->VMS_CTLR_NMBR)); ITSDb_SQLExec(pADO); if (nFormSeq >= 16) break; } } catch(EDatabaseError &E) { DBERRORMSG("TVMS0600M::InitMonitoringForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVMS0600M::InitMonitoringForm", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } VmsCtlrManager->FLists.UnLock(); } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::ActivateForm(bool AActivate) { try { int nTabIndex = PgFormTab->ActivePageIndex; //AnsiString sTrace = "TVMS0100M: ActivateForm:ActivePageIndex = " + String(nTabIndex) + " " + String(PgFormTab->PageCount); //ITSUtil_Trace(sTrace.c_str()); nTabIndex--; //ActivePageIndex À¸·Î ±¸°£°ªÀº ¼û¾îÀÖ´Â ÅÇÀ» Æ÷ÇÔÇÑ À妽º for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pForm = (TVMSBACKM*)FListForm->Items[ii]; if (AActivate) { if (ii == nTabIndex) pForm->Play = true; else pForm->Play = false; } else { //ºñȰ¼ºÀÌ¸é ¸ðµç È­¸é ºñȰ¼ºÀ¸·Î pForm->Play = false; } } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TVMS0600M::PgFormTabPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { if (!FReady) return; try { int nTabIndex = NewPage->TabIndex; //¼û¾îÀÖ´Â ÅÇÀ» Á¦¿ÜÇÑ À妽º //AnsiString sTrace = "TVMS0100M: NewPage->TabIndex = " + String(nTabIndex) + " " + String(PgFormTab->PageCount); //ITSUtil_Trace(sTrace.c_str()); for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pForm = (TVMSBACKM*)FListForm->Items[ii]; if (nTabIndex == ii) pForm->Play = true; else pForm->Play = false; } } catch(Exception &e) { } } //---------------------------------------------------------------------------