123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include "ITSSkinF.h"
- #include "ITSUtilF.h"
- #include "ITS_OPLibF.h"
- #include "ITSLangTransF.h"
- #pragma hdrstop
- #include "FRAME_AtmpPltnListF.h"
- #include "ITS_OPLibF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "cxCalc"
- #pragma link "cxClasses"
- #pragma link "cxContainer"
- #pragma link "cxControls"
- #pragma link "cxCustomData"
- #pragma link "cxData"
- #pragma link "cxDataStorage"
- #pragma link "cxEdit"
- #pragma link "cxFilter"
- #pragma link "cxGraphics"
- #pragma link "cxGrid"
- #pragma link "cxGridBandedTableView"
- #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 "dxSkinsCore"
- #pragma link "dxSkinscxPCPainter"
- #pragma link "dxSkinMcSkin"
- #pragma resource "*.dfm"
- //TFRAMEAtmpPltnList *FRAMEAtmpPltnList;
- //---------------------------------------------------------------------------
- __fastcall TFRAMEAtmpPltnList::TFRAMEAtmpPltnList(TComponent* Owner)
- : TFrame(Owner)
- {
- TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<현재 지역 날씨정보가 없습니다>";
- FAlarmCount1 = 0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMEAtmpPltnList::UpdateList()
- {
- CMM_ClearGridTableView(TvList);
- TcxDataController *pGDC = TvList->DataController;
- int nRow = 0;
- try
- {
- TvList->BeginUpdate();
- try
- {
- ItsVilgFrcsManager->FAtmpLists.Lock();
- FOR_STL(TItsAtmpPltn *, pObj, ItsVilgFrcsManager->FAtmpLists)
- {
- nRow = pGDC->AppendRecord();
- pGDC->Values[nRow][Col00->Index] = pObj->ATMP_STTN_NM;
- pGDC->Values[nRow][Col01->Index] = pObj->ATMP_STTN_ADDR;
- pGDC->Values[nRow][Col30->Index] = pObj->X_CRDN;
- pGDC->Values[nRow][Col31->Index] = pObj->Y_CRDN;
- pGDC->Values[nRow][Col02->Index] = pObj->MSRM_SYST_NM;
- pGDC->Values[nRow][Col03->Index] = APP_FormatStr(pObj->pnst.MSRM_DT, STR_DATETIME);
- pGDC->Values[nRow][Col04->Index] = pObj->pnst.CO_VAL;
- pGDC->Values[nRow][Col05->Index] = pObj->pnst.SO2_VAL;
- pGDC->Values[nRow][Col06->Index] = pObj->pnst.NO2_VAL;
- pGDC->Values[nRow][Col07->Index] = pObj->pnst.O3_VAL;
- pGDC->Values[nRow][Col08->Index] = pObj->pnst.PM10_VAL;
- pGDC->Values[nRow][Col09->Index] = pObj->pnst.PM10_24HH_VAL;
- pGDC->Values[nRow][Col10->Index] = pObj->pnst.PM25_VAL;
- pGDC->Values[nRow][Col11->Index] = pObj->pnst.PM25_24HH_VAL;
- pGDC->Values[nRow][Col12->Index] = pObj->pnst.INTG_ATMP_VAL;
- pGDC->Values[nRow][Col13->Index] = pObj->pnst.CO_GRAD_NM;
- pGDC->Values[nRow][Col14->Index] = pObj->pnst.SO2_GRAD_NM;
- pGDC->Values[nRow][Col15->Index] = pObj->pnst.NO2_GRAD_NM;
- pGDC->Values[nRow][Col16->Index] = pObj->pnst.O3_GRAD_NM;
- pGDC->Values[nRow][Col17->Index] = pObj->pnst.PM10_1HH_GRAD_NM;
- pGDC->Values[nRow][Col18->Index] = pObj->pnst.PM10_24HH_GRAD_NM;
- pGDC->Values[nRow][Col19->Index] = pObj->pnst.PM25_1HH_GRAD_NM;
- pGDC->Values[nRow][Col20->Index] = pObj->pnst.PM25_24HH_GRAD_NM;
- pGDC->Values[nRow][Col21->Index] = pObj->pnst.INTG_ATMP_GRAD_NM;
- pGDC->Values[nRow][ColUPDT_DT->Index] = APP_FormatStr(pObj->pnst.UPDT_DT, STR_DATETIME);
- pGDC->Values[nRow][Column99->Index] = (int)pObj;
- }
- }
- __finally
- {
- ItsVilgFrcsManager->FAtmpLists.UnLock();
- }
- }
- __finally
- {
- TvList->EndUpdate();
- TvList->DataController->GotoFirst();
- TvList->DataController->FocusedRecordIndex = 0;
- }
- UpdateSprpList();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMEAtmpPltnList::RefreshList()
- {
- TcxDataController *pGDC = TvList->DataController;
- try
- {
- TvList->BeginUpdate();
- try
- {
- ItsVilgFrcsManager->FAtmpLists.Lock();
- int nMemPtr;
- int nDataCnt = pGDC->RecordCount;
- for (int nRow = 0; nRow < nDataCnt; nRow++)
- {
- nMemPtr = pGDC->Values[nRow][Column99->Index];
- TItsAtmpPltn *pObj = (TItsAtmpPltn*)nMemPtr;
- if (!pObj) continue;
- pGDC->Values[nRow][Col03->Index] = APP_FormatStr(pObj->pnst.MSRM_DT, STR_DATETIME);
- pGDC->Values[nRow][Col04->Index] = pObj->pnst.CO_VAL;
- pGDC->Values[nRow][Col05->Index] = pObj->pnst.SO2_VAL;
- pGDC->Values[nRow][Col06->Index] = pObj->pnst.NO2_VAL;
- pGDC->Values[nRow][Col07->Index] = pObj->pnst.O3_VAL;
- pGDC->Values[nRow][Col08->Index] = pObj->pnst.PM10_VAL;
- pGDC->Values[nRow][Col09->Index] = pObj->pnst.PM10_24HH_VAL;
- pGDC->Values[nRow][Col10->Index] = pObj->pnst.PM25_VAL;
- pGDC->Values[nRow][Col11->Index] = pObj->pnst.PM25_24HH_VAL;
- pGDC->Values[nRow][Col12->Index] = pObj->pnst.INTG_ATMP_VAL;
- pGDC->Values[nRow][Col13->Index] = pObj->pnst.CO_GRAD_NM;
- pGDC->Values[nRow][Col14->Index] = pObj->pnst.SO2_GRAD_NM;
- pGDC->Values[nRow][Col15->Index] = pObj->pnst.NO2_GRAD_NM;
- pGDC->Values[nRow][Col16->Index] = pObj->pnst.O3_GRAD_NM;
- pGDC->Values[nRow][Col17->Index] = pObj->pnst.PM10_1HH_GRAD_NM;
- pGDC->Values[nRow][Col18->Index] = pObj->pnst.PM10_24HH_GRAD_NM;
- pGDC->Values[nRow][Col19->Index] = pObj->pnst.PM25_1HH_GRAD_NM;
- pGDC->Values[nRow][Col20->Index] = pObj->pnst.PM25_24HH_GRAD_NM;
- pGDC->Values[nRow][Col21->Index] = pObj->pnst.INTG_ATMP_GRAD_NM;
- pGDC->Values[nRow][ColUPDT_DT->Index] = APP_FormatStr(pObj->pnst.UPDT_DT, STR_DATETIME);
- }
- }
- __finally
- {
- ItsVilgFrcsManager->FAtmpLists.UnLock();
- }
- }
- __finally
- {
- TvList->EndUpdate();
- TvList->DataController->GotoFirst();
- TvList->DataController->FocusedRecordIndex = 0;
- }
- UpdateSprpList();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMEAtmpPltnList::UpdateSprpList()
- {
- FAlarmCount1 = 0;
- LblAlarm->Visible = false;
- String sMsg = "";
- String sTmp = "";
- bool bAlarm = false;
- try
- {
- ItsVilgFrcsManager->FSprpLists.Lock();
- FOR_STL(TItsAtmpSprp *, pObj, ItsVilgFrcsManager->FSprpLists)
- {
- if (pObj->ANNC_DVSN != "1") continue;
- sTmp = "";
- if (pObj->ATMP_PLTN_KIND == "1")
- {
- if (pObj->ANNC_GRAD == "1") sTmp = "미세먼지 주의보", bAlarm = true;
- else if (pObj->ANNC_GRAD == "2") sTmp = "미세먼지 경보";
- else if (pObj->ANNC_GRAD == "5") sTmp = "황사경보", bAlarm = true;
- }
- else
- if (pObj->ATMP_PLTN_KIND == "2")
- {
- if (pObj->ANNC_GRAD == "1") sTmp = "초미세먼지 주의보";
- else if (pObj->ANNC_GRAD == "2") sTmp = "초미세먼지 경보", bAlarm = true;
- }
- if (sTmp != "")
- {
- FAlarmCount1++;
- if (sMsg != "") sMsg += ", ";
- sMsg += sTmp;
- }
- }
- }
- __finally
- {
- ItsVilgFrcsManager->FSprpLists.UnLock();
- }
- if (FAlarmCount1 > 0)
- {
- LblAlarm->Caption = " " + sMsg + " 발령 ";
- if (bAlarm)
- {
- LblAlarm->Style->Color = Lbl4->Style->Color;
- }
- else
- {
- LblAlarm->Style->Color = Lbl3->Style->Color;
- }
- LblAlarm->AutoSize = false;
- LblAlarm->AutoSize = true;
- LblAlarm->Visible = true;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMEAtmpPltnList::Col13CustomDrawCell(TcxCustomGridTableView *Sender,
- TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
- bool &ADone)
- {
- TColor tColor = ACanvas->Brush->Color;
- TColor tFont = clBlack;
- try
- {
- if (!VarIsNull(AViewInfo->Value))
- {
- String sVal = AViewInfo->Value;
- if (sVal == ATMP_GOOD)
- {
- tColor = clBlue;
- tFont = clWhite;
- }
- else
- if (sVal == ATMP_NORMAL)
- {
- tColor = clLime;
- }
- else
- if (sVal == ATMP_BAD)
- {
- tColor = clYellow;
- }
- else
- if (sVal == ATM_VERY_BAD)
- {
- tColor = clRed;
- }
- else
- //if (sVal == ATMP_NONE)
- {
- tColor = clSilver;
- }
- }
- ACanvas->Font->Color = tFont;
- ACanvas->SetBrushColor(tColor);
- }
- catch(...)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFRAMEAtmpPltnList::Col12CustomDrawCell(TcxCustomGridTableView *Sender,
- TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
- bool &ADone)
- {
- TColor tColor = ACanvas->Brush->Color;
- TColor tFont = clWhite;
- try
- {
- if (!VarIsNull(AViewInfo->Value))
- {
- //String sVal = AViewInfo->Value;
- String sVal = AViewInfo->GridRecord->DisplayTexts[AViewInfo->Item->Index+9];
- if (sVal == ATMP_GOOD)
- {
- tColor = Lbl1->Style->Color;
- tFont = Lbl1->Style->TextColor;
- }
- else
- if (sVal == ATMP_NORMAL)
- {
- tColor = Lbl2->Style->Color;
- tFont = Lbl2->Style->TextColor;
- }
- else
- if (sVal == ATMP_BAD)
- {
- tColor = Lbl3->Style->Color;
- tFont = Lbl3->Style->TextColor;
- }
- else
- if (sVal == ATM_VERY_BAD)
- {
- tColor = Lbl4->Style->Color;
- tFont = Lbl4->Style->TextColor;
- }
- else
- //if (sVal == ATMP_NONE)
- {
- tColor = Lbl0->Style->Color;
- tFont = Lbl0->Style->TextColor;
- }
- }
- ACanvas->Font->Color = tFont;
- ACanvas->SetBrushColor(tColor);
- }
- catch(...)
- {
- }
- }
- //---------------------------------------------------------------------------
|