//--------------------------------------------------------------------------- #include #include "AppGlobalF.h" #include "ITSSkinF.h" #include "ITSUtilF.h" #include "FrmVmsMsgDsplScheF.h" #pragma hdrstop #include "FrmVmsMsgDsplScheF.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_VmsMsgListF" #pragma link "cxHint" #pragma link "dxCustomHint" #pragma link "dxScreenTip" #pragma link "dxSkinsForm" #pragma link "dxGDIPlusClasses" #pragma resource "*.dfm" TFrmVmsMsgDsplSche *FrmVmsMsgDsplSche = NULL; //--------------------------------------------------------------------------- __fastcall TFrmVmsMsgDsplSche::TFrmVmsMsgDsplSche(TComponent* Owner) : TForm(Owner) { //CMM_SetFormPosition(g_AppCfg.bSaveForm); ITSSkin_Initialize(Application, g_AppCfg.sLang); ITSSkin_Caption(false); ITSSkin_Load(this); //CMM_LoadForm(g_sFormsDir, this); SetColorScheme(g_AppCfg.sSkinName); FMonitoringType = enMonitoringScenario; TsList01->TabVisible = false; //if (FormStyle != fsMDIChild) CMM_LoadForm(g_sFormsDir, this); FListForm = new TList; FSelVmsObj= NULL; FSelForm = NULL; FReady = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::SetColorScheme(String ASkinName) { dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::CommClose() { try { ClearFormList(); SAFE_DELETE(FListForm); //if (FormStyle != fsMDIChild) CMM_SaveForm(g_sFormsDir, this); ITSSkin_Term(); //CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::ClearFormList() { try { LockWindowUpdate(Handle); PgFormTab->HideTabs = true; try { for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)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 TFrmVmsMsgDsplSche::FormCreate(TObject *Sender) { InitDbLoading(); InitMonitoringForm(); CreateVmsMsgForm(VmsCtlrManager->FMaxWidth); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::InitDbLoading() { Application->ProcessMessages(); if (!VmsCtlrManager) { VmsCtlrManager = new TVmsCtlrManager(); } VmsCtlrManager->LoadVmsModlSize(); VmsCtlrManager->LoadFromDb(); //VmsCtlrManager->LoadStatusFromDb(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::CreateVmsMsgForm(int AWidth) { FReady = false; ClearFormList(); String sQry; TADOQuery *pADO = NULL; sQry = "SELECT MONITORING_NM, MONITORING_SEQ, VMS_CTLR_ID \r\n" " FROM TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n" " ORDER BY MONITORING_NM ASC, MONITORING_SEQ \r\n"; TcxTabSheet *pSheet = NULL; TVMS0201M *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_ID")->AsString; if (sOldName != sScrName) { //½Å±Ô È­¸é¸ñ·Ï Ãß°¡ pSheet = CMM_AddTabSheet(PgFormTab, " " + sScrName + " "); if (!pSheet) continue; TVMS0201M *pNewForm = new TVMS0201M(this, Handle, sScrName, nIndex++); pNewForm->Parent = pSheet; pNewForm->Show(); pScrForm = pNewForm; sOldName = sScrName; FListForm->Add(pNewForm); } pScrForm->AddVmsForm(sVmsNmbr); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgDsplSche::CreateVmsMsgForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgDsplSche::CreateVmsMsgForm", 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); } RefreshScenario(); if (FListForm->Count <= 1) { PgFormTab->HideTabs = true; } else { PgFormTab->HideTabs = false; } FReady = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::RefreshScenario() { try { LockWindowUpdate(Handle); for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; pForm->RefreshScenario(); } } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::FormShow(TObject *Sender) { Refresh(); if (PgFormTab->PageCount == 1) PgFormTab->ActivePageIndex = 0; else PgFormTab->ActivePageIndex = 1; Application->ProcessMessages(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::FormActivate(TObject *Sender) { ActivateForm(true); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::FormDeactivate(TObject *Sender) { ActivateForm(false); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::LoadLocalSkin() { } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; if (ChkPlanMsg->Checked) VmsCtlrManager->LoadVmsPlanMsg(); else VmsCtlrManager->LoadVmsMsg(); RefreshVmsMessage(); ActivateForm(true); TmrRefresh->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::FormClose(TObject *Sender, TCloseAction &Action) { try { CommClose(); FrmVmsMsgDsplSche = NULL; Action = caFree; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::RefreshVmsMessage() { ActivateForm(false); ActivateForm(true); for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; pForm->RefreshScenario(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::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; CreateVmsMsgForm(VmsCtlrManager->FMaxWidth); try { LockWindowUpdate(Handle); for(int ii = 0; ii < FListForm->Count; ii++) { TVMSBACKM *pBackForm = (TVMSBACKM*)FListForm->Items[ii]; pBackForm->RecalFormPosition(); } } __finally { LockWindowUpdate(0); } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::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 { 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_ID, \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); int nFormSeq = 0; FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->USE_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_ID); ITSDb_SQLExec(pADO); if (nFormSeq >= 16) break; } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgDsplSche::InitMonitoringForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgDsplSche::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 TFrmVmsMsgDsplSche::ActivateForm(bool AActivate) { try { int nTabIndex = PgFormTab->ActivePageIndex; nTabIndex--; //ActivePageIndex À¸·Î ±¸°£°ªÀº ¼û¾îÀÖ´Â ÅÇÀ» Æ÷ÇÔÇÑ À妽º for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; if (AActivate) { if (ii == nTabIndex) pForm->Play = true; else pForm->Play = false; } else { //ºñȰ¼ºÀÌ¸é ¸ðµç È­¸é ºñȰ¼ºÀ¸·Î pForm->Play = false; } } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::PgFormTabPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { if (!FReady) return; try { int nTabIndex = NewPage->TabIndex; //¼û¾îÀÖ´Â ÅÇÀ» Á¦¿ÜÇÑ À妽º for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; if (nTabIndex == ii) pForm->Play = true; else pForm->Play = false; } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::TmrRefreshTimer(TObject *Sender) { TmrRefresh->Enabled = false; if (ChkPlanMsg->Checked) VmsCtlrManager->LoadVmsPlanMsg(); else VmsCtlrManager->LoadVmsMsg(); RefreshVmsMessage(); TmrRefresh->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::BtnSearchClick(TObject *Sender) { TmrRefresh->Enabled = false; BtnSearch->Enabled = false; if (ChkPlanMsg->Checked) VmsCtlrManager->LoadVmsPlanMsg(); else VmsCtlrManager->LoadVmsMsg(); RefreshVmsMessage(); TmrCommand->Enabled = true; TmrRefresh->Enabled = true; EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::TmrCommandTimer(TObject *Sender) { TmrCommand->Enabled = false; BtnSearch->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::BtnBestFitClick(TObject *Sender) { try { LockWindowUpdate(Handle); for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; pForm->TvVmsMsg->BeginUpdate(); pForm->TvVmsMsg->ApplyBestFit(NULL, false, false); pForm->TvVmsMsg->EndUpdate(); } } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgDsplSche::ChkAutoWidthPropertiesChange(TObject *Sender) { try { LockWindowUpdate(Handle); for(int ii = 0; ii < FListForm->Count; ii++) { TVMS0201M *pForm = (TVMS0201M*)FListForm->Items[ii]; pForm->TvVmsMsg->BeginUpdate(); pForm->TvVmsMsg->OptionsView->ColumnAutoWidth = ChkAutoWidth->Checked; pForm->TvVmsMsg->EndUpdate(); } } __finally { LockWindowUpdate(0); //BtnBestFit->Visible = !ChkAutoWidth->Checked; } } //---------------------------------------------------------------------------