/**************************************************************************** * @source : * @description : **************************************************************************** * DATE AUTHOR DESCRIPTION * -------------------------------------------------------------------------- * 2011/12/24 Á¤½ÂÈ£ ÃÖÃÊÀÛ¼º * ****************************************************************************/ //--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSCodeF.h" #include "CDSFacilityF.h" #include "XiMapUtilF.h" #pragma hdrstop #include "DSRM010MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalendar" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxTextEdit" #pragma link "cxTimeEdit" #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 "FRAME_DsrcListF" #pragma link "cxRadioGroup" #pragma link "cxClasses" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDBData" #pragma link "cxFilter" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridDBTableView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxStyles" #pragma link "FRAME_GisMapF" #pragma link "cxCheckBox" #pragma resource "*.dfm" TDSRM010M *DSRM010M = NULL; //--------------------------------------------------------------------------- __fastcall TDSRM010M::TDSRM010M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FUpdate= false; FTitle = "DSRC-RSE °ü¸®"; FRAMEDsrcList1->PnlTop->Visible = false; FRAMEDsrcList1->PnlBottom->Visible = false; FRAMEDsrcList1->ColumnSel->Visible = false; //FRAMEDsrcList1->Column02->Visible = false; FRAMEGisMap1->LbDef->Caption = "(¼±Åø޴º¸¦ Ŭ¸¯ÇÏ¿© À§Ä¡¸¦ ¼±ÅÃÇÕ´Ï´Ù.)"; FRAMEGisMap1->LbDef->Hint = FRAMEGisMap1->LbDef->Caption; m_pGDC = FRAMEDsrcList1->TvList->DataController; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TDSRM010M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM010M::FormShow(TObject *Sender) { Refresh(); CbMnfcCmpyCd->Properties->Items->Clear(); TItsCode *FCodeRMF = ItsCodeManager->FLists.Find("RMF"); if (FCodeRMF) { FOR_STL(TItsSubCode *, pSubCode, FCodeRMF->FSubLists) { if (pSubCode->USE_YN == "N") continue; CbMnfcCmpyCd->Properties->Items->Add(" [" + pSubCode->CMMN_CD + "] " + pSubCode->CMMN_CD_KOR_NM); } } CbMnfcCmpyCd->ItemIndex = 0; FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TDSRM010M::FormInit() { EdId->Text = ""; EdRseId->Text = ""; EdRoadSpotId->Text = ""; EdLogCnncId->Text = ""; EdLogCnncPwd->Text = ""; EdIstlLctnNm->Text = ""; SePosX->Value = 0; SePosY->Value = 0; EdIP->Text = ""; EdPort->Text = ""; CbMnfcCmpyCd->ItemIndex = 0; FNewDb = false; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM010M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; FRAMEGisMap1->LinkLevel = 1; FRAMEGisMap1->LoadGisMap(); //FRAMEGisMap1->ShowHideTrafficLayer(false); UpdateRseIcon(); FRAMEDsrcList1->UpdateList(); } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM010M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); DSRM010M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } FRAMEDsrcList1->OnCloseQuery(CanClose); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::DisplayInfo(TItsDsrc* AObj) { FormInit(); if (!AObj) return; EdId->Text = AObj->ID; EdRseId->Text = AObj->RSE_ID; EdRoadSpotId->Text = AObj->ROAD_SPOT_ID; EdLogCnncId->Text = AObj->LOG_CNNC_ID; EdLogCnncPwd->Text = AObj->LOG_CNNC_PW; EdIstlLctnNm->Text = AObj->ISTL_LCTN_NM; SePosX->Value = StrToFloatDef(AObj->LCTN_X, 0); SePosY->Value = StrToFloatDef(AObj->LCTN_Y, 0); EdIP->Text = AObj->IP; EdPort->Text = AObj->PORT; SeCLCT_ABNR_BASI->Value = AObj->CLCT_ABNR_BASI; SeAbnrAll->Value = SeCLCT_ABNR_BASI->Value; CMM_SetComboBoxItem(CbMnfcCmpyCd, AObj->MNFC_CMPY_CD); FRAMEGisMap1->SelectObjectByPos(SePosX->Value, SePosY->Value, true); ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::FRAMEGisMap1xclntMapMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button != mbLeft) return; if (FRAMEGisMap1->xclntMap->MapOperation != OnSelect) return; FRAMEGisMap1->xclntMap->SetFocus(); TDDPoint dptCurr = FRAMEGisMap1->xclntMap->ScreenToReal(Point( X, Y)); try { SePosX->Value = dptCurr.X; SePosY->Value = dptCurr.Y; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::UpdateRseIcon() { FRAMEGisMap1->xclntMap->ClearCCTVEvent(true); TItsFacility *pFacility; try { if (ChkViewIcon->Checked) { try { FRAMEDsrcList1->MyItsDsrcManager->FLists.Lock(); FOR_STL(TItsDsrc*, pObj, FRAMEDsrcList1->MyItsDsrcManager->FLists) { if (pObj->DEL_YN == "Y") continue; //pFacility = ItsFacilityManager->FLists.Find(pObj->ID); //if (!pFacility) continue; try { String sTitle = "¢º¢ºDSRC-RSE Á¤º¸¢¸¢¸|ID : " + pObj->ID + "|¸íĪ : " + pObj->ISTL_LCTN_NM; FRAMEGisMap1->xclntMap->ADDCCTVEvent(DDPoint(StrToFloatDef(pObj->LCTN_X, 0), StrToFloatDef(pObj->LCTN_Y, 0)), pObj->ID, "", sTitle, 6, 1, 7); } catch(...) { } } } __finally { FRAMEDsrcList1->MyItsDsrcManager->FLists.UnLock(); } } } catch(...) { } FRAMEGisMap1->xclntMap->ReDraw(); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::FRAMEDsrcList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = FRAMEDsrcList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEDsrcList1->TvList->DataController->Values[nRow][FRAMEDsrcList1->Column99->Index]; TItsDsrc* pObj = (TItsDsrc*)nMemPtr; DisplayInfo(pObj); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::ChkViewIconClick(TObject *Sender) { UpdateRseIcon(); } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == "ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sId = EdId->Text; ChangeEditMode(1); TItsDsrc *pObj = FRAMEDsrcList1->MyItsDsrcManager->FLists.Find(sId); if (pObj) { CMM_SetGridRow(FRAMEDsrcList1->CxList, FRAMEDsrcList1->TvList, sId, FRAMEDsrcList1->Column01->Index); DisplayInfo(pObj); } } } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::ChangeEditMode(int AEdit) { bool bEnabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormInit(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; } break; } if (AEdit == 0 || AEdit == 2) { FRAMEDsrcList1->CxList->Enabled = false; } else { FRAMEDsrcList1->CxList->Enabled = true; } #if 1 EdId->Properties->ReadOnly = bEnabled; EdRseId->Properties->ReadOnly = bEnabled; EdRoadSpotId->Properties->ReadOnly = bEnabled; EdLogCnncId->Properties->ReadOnly = bEnabled; EdLogCnncPwd->Properties->ReadOnly = bEnabled; EdIstlLctnNm->Properties->ReadOnly = bEnabled; SePosX->Properties->ReadOnly = bEnabled; SePosY->Properties->ReadOnly = bEnabled; EdIP->Properties->ReadOnly = bEnabled; EdPort->Properties->ReadOnly = bEnabled; CbMnfcCmpyCd->Properties->ReadOnly = bEnabled; SeCLCT_ABNR_BASI->Properties->ReadOnly = bEnabled; #endif } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::BtnInsertClick(TObject *Sender) { FormInit(); //½Å±Ô¾ÆÀ̵𸦠¾ò¾î¿Í¼­ È­¸éÀ» ÃʱâÈ­ÇÑ´Ù. String sRseId; if (!FRAMEDsrcList1->MyItsDsrcManager->GetNextRseId(sRseId)) { Application->MessageBox(L"»õ·Î¿î RSE ID¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } EdId->Text = sRseId; EdRseId->Text = sRseId; ChangeEditMode(2); FNewDb = true; } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::BtnDeleteClick(TObject *Sender) { int nIdx = m_pGDC->FocusedRecordIndex; if (nIdx < 0) return; String sId = EdId->Text; if (sId.IsEmpty()) { Application->MessageBox(L"»èÁ¦ÇÒ DSRC-RSE¸¦ ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.\r\n¸ñ·Ï¿¡¼­ ´õºíŬ¸¯ÇÏ¿© ¼±ÅÃÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sMsg; sMsg = "ID: " + sId; sMsg+= "\r\n¼±ÅÃÇϽŠDSRC-RSE Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; TItsDsrc *pObj = FRAMEDsrcList1->MyItsDsrcManager->FLists.Find(sId); if (pObj) { if (FRAMEDsrcList1->MyItsDsrcManager->DeleteDsrc(pObj)) { pObj->DEL_YN = "Y"; FRAMEDsrcList1->UpdateList(); } TItsFacility *pFacility = ItsFacilityManager->FLists.Find(sId); if (pFacility) { FUpdate = true; } Application->MessageBox(L"DSRC-RSE Á¤º¸»èÁ¦\r\nDSRC-RSE Á¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormInit(); ChangeEditMode(1); } } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::BtnSaveClick(TObject *Sender) { if (EdId->Text.IsEmpty() || EdRseId->Text.Trim().IsEmpty() || EdRoadSpotId->Text.IsEmpty() || SePosX->Value == 0 || SePosY->Value == 0 || CbMnfcCmpyCd->Text.IsEmpty() ) { Application->MessageBox(L"¡ÚÇ׸ñÀº Çʼö ÀÔ·Â Ç׸ñÀÔ´Ï´Ù.\r\n¸ðµÎ ÀÔ·ÂÈÄ ÁøÇàÇØ ÁÖ¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sId = EdId->Text; TItsDsrc *pObj; if (FNewDb) pObj = new TItsDsrc(); else pObj = FRAMEDsrcList1->MyItsDsrcManager->FLists.Find(sId); if (pObj) { String sOldRseId = pObj->RSE_ID; //TODO pObj->ID = sId; pObj->RSE_ID = EdRseId->Text.Trim(); pObj->ROAD_SPOT_ID = EdRoadSpotId->Text.Trim(); pObj->LOG_CNNC_ID = EdLogCnncId->Text.Trim(); pObj->LOG_CNNC_PW = EdLogCnncPwd->Text.Trim(); pObj->ISTL_LCTN_NM = EdIstlLctnNm->Text.Trim(); pObj->LCTN_X = VarToStr(SePosX->Value); pObj->LCTN_Y = VarToStr(SePosY->Value); pObj->IP = EdIP->Text.Trim(); pObj->PORT = EdPort->Text.Trim(); pObj->MNFC_CMPY_CD = ITSUtil_GetCode(CbMnfcCmpyCd->Text); pObj->CLCT_ABNR_BASI = (SeCLCT_ABNR_BASI->Value); pObj->Completed = true; pObj->MEM_DEL = "N"; bool bResult; if (FNewDb) { bResult = FRAMEDsrcList1->MyItsDsrcManager->InsertDsrc(pObj); if (bResult) { FRAMEDsrcList1->MyItsDsrcManager->FLists.Push(sId, pObj); } } else { bResult = FRAMEDsrcList1->MyItsDsrcManager->UpdateDsrc(sOldRseId, pObj); } if (bResult) { Application->MessageBox(L"DSRC-RSE Á¤º¸ÀúÀå\r\nDSRC-RSE Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; FRAMEDsrcList1->UpdateList(); UpdateRseIcon(); CMM_SetGridRow(FRAMEDsrcList1->CxList, FRAMEDsrcList1->TvList, sId, FRAMEDsrcList1->Column01->Index); DisplayInfo(pObj); } } } //--------------------------------------------------------------------------- void __fastcall TDSRM010M::BtnSaveAllClick(TObject *Sender) { String sMsg; sMsg = ""; sMsg+= "\r\n¼öÁý ÀÌ»ó ±âÁØ Á¤º¸¸¦ Àüü Àû¿ë ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; int nCLCT_ABNR_BASI = (SeAbnrAll->Value); if (FRAMEDsrcList1->MyItsDsrcManager->UpdateClctAbnrBasi(nCLCT_ABNR_BASI)) { SeCLCT_ABNR_BASI->Value = SeAbnrAll->Value; FUpdate = true; Application->MessageBox(L"¼öÁý ÀÌ»ó ±âÁØ\r\n¼öÁý ÀÌ»ó ±âÁØ Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } } //---------------------------------------------------------------------------