//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSDbF.h" #include "AppGlobalF.h" #include "WindowMsgF.h" #include "CDSFacilityF.h" #include "CommFlashF.h" #pragma hdrstop #include "IFM0000MF.h" #include "FrmMainF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalc" #pragma link "cxCheckBox" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxFilter" #pragma link "cxGraphics" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxStyles" #pragma link "cxTextEdit" #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 "cxGroupBox" #pragma resource "*.dfm" TIFM0000M *IFM0000M = NULL; extern LOGININFO *g_pLOGIN; //--------------------------------------------------------------------------- __fastcall TIFM0000M::TIFM0000M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FTitle = "½Ã¼³¹°»óÅ ÇöȲ"; FFacilityType = ""; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TIFM0000M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIFM0000M::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TIFM0000M::FormInit() { TvList->OptionsView->NoDataToDisplayInfoText = "<½Ã¼³¹° »óÅÂ>"; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIFM0000M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; RefreshData(); } //--------------------------------------------------------------------------- /* * Search ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIFM0000M::BtnSearchClick(TObject *Sender) { BtnSearch->Enabled = false; // ½Ã¼³¹°»óÅÂÁ¤º¸ FrmMain->FPollStatus01.Reset(); //RefreshData(); } //--------------------------------------------------------------------------- /* * Refresh Data Event Function * arguments * * return * void */ void __fastcall TIFM0000M::RefreshData() { UpdateFacility(); UpdateFacilityStatusTotal(); UpdateFacilityStatus(); BtnSearch->Enabled = true; } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIFM0000M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); IFM0000M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::UpdateFacility() { try { TItsSubCode *pSubCode; try { ItsFacilityManager->FLists.Lock(); TFacilityStatus *pStatus; ItsFacilityManager->FListStatus.RemoveAll(); FOR_STL(TItsFacility*, pFacility, ItsFacilityManager->FLists) { pFacility->StatusGridIndex = -1; if (pFacility->DEL_YN == "Y") continue; String sComm = "Á¤»ó"; if (pFacility->FComm == state_normal) sComm = "Á¤»ó"; else if (pFacility->FComm == state_error ) sComm = "Åë½ÅÀÌ»ó"; else if (pFacility->FComm == state_module) sComm = "ÇÔü¹®¿­¸²"; else sComm = "¾Ë¼ö¾øÀ½"; pStatus = ItsFacilityManager->FListStatus.Find(pFacility->FCLT_TYPE); if (!pStatus) { pStatus = new TFacilityStatus(); pStatus->Type = pFacility->FCLT_TYPE; pStatus->Total = 0; pStatus->Normal = 0; pStatus->Error = 0; pStatus->Collect= 0; ItsFacilityManager->FListStatus.Push(pFacility->FCLT_TYPE, pStatus); } pStatus->Total++; /* Àüü °¹¼ö¸¦ Áõ°¡ ½ÃÅ´ */ if (pFacility->FComm == state_error) { pStatus->Error++; } else if (pFacility->FComm == state_module) { pStatus->Module++; } if (pFacility->FCollError) { pStatus->Collect++; } try { String sValue = pFacility->FCBoxTmpr; int nValue = 0; if (TryStrToInt(sValue, nValue)) { if (nValue > g_AppCfg.Temp.AlarmValue) { sComm = "ÇÔü¿Âµµ"; } } } catch(...) {} } } __finally { ItsFacilityManager->FLists.UnLock(); } } __finally { } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::UpdateFacilityStatusTotal() { int nRow = 0; try { CMM_ClearGridTableView(TvStatus); TcxDataController *pGDC = TvStatus->DataController; TvStatus->BeginUpdate(); try { FOR_STL(TFacilityStatus*, pStatus, ItsFacilityManager->FListStatus) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColType->Index] = pStatus->Type; if (FFacilityType == "") FFacilityType = pStatus->Type; String sName = ""; if (pStatus->Type == FAC_CCTV) sName = " CCTVÁ¦¾î±â"; else if (pStatus->Type == FAC_VMS) sName = " VMSÁ¦¾î±â"; else if (pStatus->Type == FAC_VDS) sName = " VDSÁ¦¾î±â"; else if (pStatus->Type == FAC_PVMS) sName = " PISÇ¥Ãâ±â"; else if (pStatus->Type == FAC_PVDS) sName = " PIS¼öÁý±â"; else if (pStatus->Type == FAC_BIT) sName = " Á¤·ù¼Ò¾È³»±â"; else if (pStatus->Type == FAC_SIG) sName = " ½ÅÈ£Á¦¾î±â"; pGDC->Values[nRow][ColName->Index] = sName; pGDC->Values[nRow][ColTotal->Index] = pStatus->Total; pGDC->Values[nRow][ColNormal->Index] = pStatus->Total - pStatus->Error; pGDC->Values[nRow][ColFail->Index] = pStatus->Error; if (pStatus->Type == "VDS" || pStatus->Type == "AVI") pGDC->Values[nRow][ColModule->Index] = pStatus->Collect;//Module; else pGDC->Values[nRow][ColModule->Index] = "-"; } } catch(Exception &exception) { } } __finally { TvStatus->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::UpdateFacilityStatus() { String sName; if (FFacilityType == FAC_CCTV) sName = "¢º CCTVÁ¦¾î±â »óÅÂ"; else if (FFacilityType == FAC_VMS) sName = "¢º VMSÁ¦¾î±â »óÅÂ"; else if (FFacilityType == FAC_VDS) sName = "¢º VDSÁ¦¾î±â »óÅÂ"; else if (FFacilityType == FAC_PVMS) sName = "¢º PISÇ¥Ãâ±â »óÅÂ"; else if (FFacilityType == FAC_PVDS) sName = "¢º PIS¼öÁý±â »óÅÂ"; else if (FFacilityType == FAC_BIT) sName = "¢º Á¤·ù¼Ò¾È³»±â »óÅÂ"; else if (FFacilityType == FAC_SIG) sName = "¢º ½ÅÈ£Á¦¾î±â »óÅÂ"; else sName = "¢º ½Ã¼³¹°ÇöȲ"; grpBox->Caption = sName; CMM_ClearGridTableView(TvList); Col02->Visible = false; Col03->Visible = false; Col04->Visible = false; Col05->Visible = false; Col06->Visible = false; Col07->Visible = false; Col08->Visible = false; Col09->Visible = false; Col10->Visible = false; if (FFacilityType == FAC_CCTV || FFacilityType == FAC_VMS || FFacilityType == FAC_VDS || FFacilityType == FAC_AVI ) { Col02->Visible = true; //ÇÔü¿Âµµ Col03->Visible = true; //ÇÔü¹® } else if (FFacilityType == FAC_DSRC || FFacilityType == FAC_SIG || FFacilityType == FAC_PVMS ) { Col03->Visible = true; //ÇÔü¹® } else if (FFacilityType == FAC_PVDS ) { Col04->Visible = true; //Á¦¾î±â»óÅ } if (FFacilityType == FAC_PVMS ) { Col05->Visible = true; //Àü¿ø Col06->Visible = true; //¸ðµâ Col07->Visible = true; //FAN Col08->Visible = true; //È÷ÅÍ } TcxDataController *m_pGDC = TvList->DataController; int nRow = 0; try { TvList->BeginUpdate(); TItsSubCode *pSubCode; try { ItsFacilityManager->FLists.Lock(); TFacilityStatus *pStatus; ItsFacilityManager->FListStatus.RemoveAll(); //Åë½ÅÀÌ»óÀÎ °ÍµéÀ» ¸ÕÀú Ç¥ÃâÇÑ´Ù. FOR_STL(TItsFacility*, pFacility, ItsFacilityManager->FLists) { pFacility->StatusGridIndex = -1; if (pFacility->DEL_YN == "Y") continue; if (pFacility->FCLT_TYPE != FFacilityType) continue; if (pFacility->FComm != state_error ) continue; nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][ColId->Index] = pFacility->FCLT_ID; m_pGDC->Values[nRow][ColNm->Index] = pFacility->FCLT_LCTN; m_pGDC->Values[nRow][Col00->Index] = ITSUtil_FormatStr(pFacility->Sts00, STR_DATETIME); m_pGDC->Values[nRow][Col01->Index] = "ÀÌ»ó"; m_pGDC->Values[nRow][Col02->Index] = "-"; m_pGDC->Values[nRow][Col03->Index] = "-"; m_pGDC->Values[nRow][Col04->Index] = "-"; m_pGDC->Values[nRow][Col05->Index] = "-"; m_pGDC->Values[nRow][Col06->Index] = "-"; m_pGDC->Values[nRow][Col07->Index] = "-"; m_pGDC->Values[nRow][Col08->Index] = "-"; m_pGDC->Values[nRow][Col09->Index] = "-"; m_pGDC->Values[nRow][Col10->Index] = "-"; } //Åë½ÅÀÌ»óÀÌ ¾Æ´Ñ°ÍµéÀ» Ç¥ÃâÇÑ´Ù. FOR_STL(TItsFacility*, pFacility, ItsFacilityManager->FLists) { pFacility->StatusGridIndex = -1; if (pFacility->DEL_YN == "Y") continue; if (pFacility->FCLT_TYPE != FFacilityType) continue; if (pFacility->FComm == state_error ) continue; nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][ColId->Index] = pFacility->FCLT_ID; m_pGDC->Values[nRow][ColNm->Index] = pFacility->FCLT_LCTN; m_pGDC->Values[nRow][Col00->Index] = ITSUtil_FormatStr(pFacility->Sts00, STR_DATETIME); m_pGDC->Values[nRow][Col01->Index] = "Á¤»ó"; m_pGDC->Values[nRow][Col02->Index] = pFacility->FCBoxTmpr; //ÇÔü¿Âµµ m_pGDC->Values[nRow][Col03->Index] = pFacility->FDoor == "0" ? "´ÝÈû" : "¿­¸²"; m_pGDC->Values[nRow][Col04->Index] = pFacility->Sts01 == "0" ? "Á¤»ó" : "¿À·ù"; //Á¦¾î±â»óÅ m_pGDC->Values[nRow][Col05->Index] = pFacility->Sts02 == "0" ? "Á¤»ó" : "¿À·ù"; //Àü¿ø m_pGDC->Values[nRow][Col06->Index] = pFacility->Sts03 == "0" ? "Á¤»ó" : "¿À·ù"; //¸ðµâ m_pGDC->Values[nRow][Col07->Index] = pFacility->Sts04 == "0" ? "°¡µ¿" : "ÁßÁö"; //FAN m_pGDC->Values[nRow][Col08->Index] = pFacility->Sts05 == "0" ? "°¡µ¿" : "ÁßÁö"; //È÷ÅÍ m_pGDC->Values[nRow][Col09->Index] = "-"; m_pGDC->Values[nRow][Col10->Index] = "-"; } } __finally { ItsFacilityManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColNameCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColTotalCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // Àüü if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColNormalCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // Á¤»ó if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColFailCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // ÀÌ»ó if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; if (!VarIsNull(AViewInfo->GridRecord->DisplayTexts[ColFail->Index])) { String sErr = AViewInfo->GridRecord->DisplayTexts[ColFail->Index]; if (sErr != "0") { ACanvas->Font->Color = clRed; } } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::TvStatusFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { int nIndex = TvStatus->DataController->FocusedRecordIndex; if (nIndex < 0) return; String sFacilityType = VarToStr(TvStatus->DataController->Values[nIndex][ColType->Index]); FFacilityType = sFacilityType; UpdateFacilityStatus(); } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::Col04CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; if (AViewInfo) { String sInfo = AViewInfo->Text.Trim(); if (sInfo == "ÀÌ»ó" || sInfo == "¿À·ù" || sInfo == "Àå¾Ö" || sInfo == "¿­¸²" ) { ACanvas->Canvas->Font->Color = clRed; } } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColIdCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; if (!VarIsNull(AViewInfo->GridRecord->DisplayTexts[Col01->Index])) { String sErr = AViewInfo->GridRecord->DisplayTexts[Col01->Index].Trim(); if (sErr != "Á¤»ó") { ACanvas->Font->Color = clRed; } } } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::ColNmCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::BtnExlSaveClick(TObject *Sender) { TcxGrid *pGrid = CxStatus; TcxGridTableView *pView = TvStatus; String sTitle= "½Ã¼³¹°ÇöȲ"; CMM_ExportToExcelFile(sTitle, pGrid, pView, (TForm*)this); } //--------------------------------------------------------------------------- void __fastcall TIFM0000M::cxButton1Click(TObject *Sender) { TcxGrid *pGrid = CxList; TcxGridTableView *pView = TvList; String sTitle= grpBox->Caption; sTitle = StringReplace(sTitle, "¢º ", "", TReplaceFlags() << rfReplaceAll); CMM_ExportToExcelFile(sTitle, pGrid, pView, (TForm*)this); } //---------------------------------------------------------------------------