//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSIfsc_VMSF.h" #include "CDSNodeF.h" #include "ITSLangTransF.h" #include "ITSMapF.h" #include "WindowMsgF.h" #pragma hdrstop #include "EVSP300MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #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 "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxSplitter" #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 "FRAME_VmsListF" #pragma link "FRAME_OpenMapF" #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 "dxSkinscxPCPainter" #pragma link "cxCalc" #pragma resource "*.dfm" TEVSP300M *EVSP300M = NULL; //--------------------------------------------------------------------------- void TEVSP300M_MapCallback(TObject *ASender, const String AFunc, const String AArgs, const bool AFirst) { try { if (!EVSP300M) return; EVSP300M->OpenMapCallback(ASender, AFunc, AArgs, AFirst); } catch(Exception &exception) { } } //--------------------------------------------------------------------------- __fastcall TEVSP300M::TEVSP300M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); //CMM_LoadForm(g_sFormsDir, this); UpdateSkin(); FUpdate= false; FTitle = Caption;//"VMS Á¤º¸Á¦°ø±¸°£ °ü¸®"; FInitComm = 2; FSelComm = 1; if (!VmsIxrManager) { VmsIxrManager = new TVmsIxrManager(); } VmsIxrManager->LoadFromDb(); if (!SgnlCtlrManager) { SgnlCtlrManager = new TSgnlCtlrManager(); } SgnlCtlrManager->LoadFromDb(); #if 0 if (!LinkManager) { LinkManager = new TLinkManager(); LinkManager->LoadFromDb(); if (g_AppCfg.isLoadFromFile) { LinkManager->LoadVrtxFromFile(); } else { LinkManager->LoadVrtxFromDb(); } } VmsEvspManager->LoadFromDb(); #endif m_pGDC = FRAMEVmsList1->TvList->DataController; FRAMEVmsList1->PnlTop->Visible = false; FRAMEVmsList1->PnlBottom->Visible = false; FRAMEVmsList1->ColumnSel->Visible = false; FRAMEVmsList1->Column04->Visible = false; FRAMEVmsList1->Column06->Visible = false; FRAMEVmsList1->Column07->Visible = false; FRAMEVmsList1->Column10->Visible = false; FRAMEVmsList1->Column08->Visible = false; FRAMEVmsList1->Column09->Visible = false; FLayerIdx = LyrTp_Vms; FRAMEOpenMap1->LayerIdx = FLayerIdx; FRAMEOpenMap1->ChkShowNmbr->Visible = false; FRAMEOpenMap1->BtnMapSelect->Visible = false; FRAMEOpenMap1->MapCallbackFunc = TEVSP300M_MapCallback; EditMode = false; } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateSkin() { } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::FormShow(TObject *Sender) { Refresh(); UpdateSkin(); FRAMEOpenMap1->OpenMap(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateIxrSelect(String AIxrNmbr, int ASelFalg) { if (!FRAMEOpenMap1->MapStart) return; sJs.printf(L"updateFacilityComm(%d, '%s', %d)", LyrTp_Evsp, AIxrNmbr.c_str(), ASelFalg); FRAMEOpenMap1->ExecScript(sJs); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::FormInit() { //Á¦°ø±¸°£¸ñ·ÏÀÌ ÃʱâÈ­µÇ±âÀü¿¡ ÀÌÀüÁ¤º¸¸¦ Áöµµ¿¡¼­ Áö¿öÁØ´Ù. if (FRAMEOpenMap1->MapStart) { int nRow; TcxDataController *pGDC = TvIxr->DataController; try { int nSeq = 1; for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sIxrNmbr = pGDC->Values[ii][ColLink2->Index]; UpdateIxrSelect(sIxrNmbr, FInitComm); } } catch(...) { } } EdNmbr->Text = ""; EdCtlrId->Text = ""; EdCtlrlNm->Text = ""; CMM_ClearGridTableView(TvIxr); EdVmsNmbr->Text = ""; FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; UpdateList(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateList() { FRAMEVmsList1->UpdateList(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); EVSP300M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } FRAMEVmsList1->OnCloseQuery(CanClose); FRAMEOpenMap1->OnCloseQuery(CanClose); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::DisplayInfo(TVmsCtlr* AObj) { FormInit(); if (!AObj) return; EdNmbr->Text = AObj->CTLR_NMBR; EdCtlrId->Text = AObj->CTLR_ID; EdCtlrlNm->Text = AObj->NAME; ChangeEditMode(3); sJs.printf(L"selectLayerObject(%d, '%s', %d)", FLayerIdx, AObj->CTLR_NMBR.c_str(), FRAMEOpenMap1->MapZoom); FRAMEOpenMap1->ExecScript(sJs); DisplayRltnIxr(AObj); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::DisplayRltnIxr(TVmsCtlr* AObj) { if (!AObj) return; CMM_ClearGridTableView(TvIxr); String sSigCtlrs = ""; TVmsIxr *pVms = VmsIxrManager->FLists.Find(AObj->CTLR_NMBR); if (!pVms) { pVms = new TVmsIxr(); pVms->VMS_CTLR_NMBR = AObj->CTLR_NMBR; VmsIxrManager->FLists.Push(pVms->VMS_CTLR_NMBR, pVms); } try { int nRow; TcxDataController *pGDC = TvIxr->DataController; TvIxr->BeginUpdate(); FOR_STL(TVmsRltnIxr *, pObj, pVms->FLists) { nRow = pGDC->AppendRecord(); String NAME = ""; TSgnlCtlr *pSig = SgnlCtlrManager->FLists.Find(pObj->SGNL_IXR_NMBR); if (pSig) { NAME = pSig->IXR_NM; } pGDC->Values[nRow][ColLink2->Index] = pObj->SGNL_IXR_NMBR; pGDC->Values[nRow][ColLink3->Index] = NAME; if (sSigCtlrs == "") sSigCtlrs = pObj->SGNL_IXR_NMBR; else sSigCtlrs = sSigCtlrs + ","+pObj->SGNL_IXR_NMBR; } } __finally { TvIxr->EndUpdate(); } RefreshRltnIxr(); #if 0 if (sSigCtlrs != "") { sJs.printf(L"extentLayerObject(%d, '%s')", LyrTp_Traffic, sLinkIds.c_str()); FRAMEOpenMap1->ExecScript(sJs); } #endif } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == FrmLang->lblEdit->Caption)//"ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sId = EdNmbr->Text; ChangeEditMode(1); CMM_SetGridRow(FRAMEVmsList1->CxList, FRAMEVmsList1->TvList, sId, FRAMEVmsList1->Column01->Index); int nRow = FRAMEVmsList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEVmsList1->TvList->DataController->Values[nRow][FRAMEVmsList1->Column99->Index]; TVmsCtlr* pObj = (TVmsCtlr*)nMemPtr; DisplayInfo(pObj); } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::ChangeEditMode(int AEdit) { bool bGisEdit = true; bool bEnabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormInit(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; bGisEdit = false; EditMode = false; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; EditMode = false; } break; } if (AEdit == 0 || AEdit == 2) { FRAMEVmsList1->CxList->Enabled = false; } else { FRAMEVmsList1->CxList->Enabled = true; } GrpInfo->Enabled = EditMode; //GrpLink->Enabled = EditMode; PnlLink->Enabled = EditMode; //BtnLinkAdd->Enabled = !bEnabled; BtnLinkDel->Enabled = !bEnabled; #if 0 FRAMEGisMap1->ImgSel->Enabled = false; if (FRAMEGisMap1->MapStart) { //TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "ClearSelLink", "0"); RefreshRltnIxr(); FRAMEGisMap1->ImgSel->Enabled = bGisEdit; if (bGisEdit == false) { TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "SelectMode", "0"); //PAN } } #endif } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnSaveClick(TObject *Sender) { TVmsIxr *pObj; if (EdNmbr->Text.IsEmpty() || EdCtlrId->Text.Trim().IsEmpty() //|| EdCtlrlNm->Text.Trim().IsEmpty() ) { Application->MessageBox(FrmLang->lblNecessary->Caption.c_str(),//L"¡ÚÇ׸ñÀº Çʼö ÀÔ·Â Ç׸ñÀÔ´Ï´Ù.\r\n¸ðµÎ ÀÔ·ÂÈÄ ÁøÇàÇØ ÁÖ¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sVmsNmbr = EdNmbr->Text; pObj = VmsIxrManager->FLists.Find(sVmsNmbr); if (!pObj) { pObj = new TVmsIxr(); pObj->VMS_CTLR_NMBR = sVmsNmbr; VmsIxrManager->FLists.Push(sVmsNmbr, pObj); } if (pObj) { pObj->VMS_CTLR_NMBR = sVmsNmbr; pObj->FLists.RemoveAll(); try { TvIxr->BeginUpdate(); for (int ii = 0; ii < TvIxr->DataController->RecordCount; ii++) { String sIxrNmbr = VarToStr(TvIxr->DataController->Values[ii][ColLink2->Index]); TVmsRltnIxr *pIxr = new TVmsRltnIxr(); pIxr->VMS_CTLR_NMBR = pObj->VMS_CTLR_NMBR; pIxr->SGNL_IXR_NMBR = sIxrNmbr; pIxr->ORD = ii+1; pObj->FLists.Push(pIxr->ORD, pIxr); } } __finally { TvIxr->EndUpdate(); } bool bResult; bResult = VmsIxrManager->MergeVmsIxr(pObj); if (bResult) { lblText9->Caption = "VMSº° ¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸ ÀúÀå\r\nVMSº° ¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù."; Application->MessageBox(lblText9->Caption.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; CMM_SetGridRow(FRAMEVmsList1->CxList, FRAMEVmsList1->TvList, sVmsNmbr, FRAMEVmsList1->Column01->Index); int nRow = FRAMEVmsList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEVmsList1->TvList->DataController->Values[nRow][FRAMEVmsList1->Column99->Index]; TVmsCtlr* pObj = (TVmsCtlr*)nMemPtr; DisplayInfo(pObj); } } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::RefreshRltnIxr() { if (!FRAMEOpenMap1->MapStart) return; try { int nRow; TcxDataController *pGDC = TvIxr->DataController; TvIxr->BeginUpdate(); try { int nSeq = 1; for (int ii = 0; ii < pGDC->RecordCount; ii++) { pGDC->Values[ii][ColSeq->Index] = nSeq; String sIxrNmbr = pGDC->Values[ii][ColLink2->Index]; UpdateIxrSelect(sIxrNmbr, FSelComm); } } catch(...) { } } __finally { TvIxr->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateIcon() { if (!FRAMEOpenMap1->MapStart) return; sJs.printf(L"removeLayerObject(%d)", FLayerIdx); FRAMEOpenMap1->ExecScript(sJs); String arrObj = ""; String sTemp; VmsCtlrManager->FLists.Lock(); try { FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->DEL_YN == "Y") continue; if (arrObj != "") arrObj += "|"; sTemp.printf(L"%s,%s,%s,%.6f,%.6f,0,0,0,0", pObj->CTLR_NMBR.c_str(), pObj->CTLR_ID.c_str(), pObj->NAME.c_str(), pObj->X_CRDN, pObj->Y_CRDN); arrObj += sTemp; } } __finally { VmsCtlrManager->FLists.UnLock(); if (arrObj != "") { sJs.printf(L"addFacility(%d, '%s')", FLayerIdx, arrObj.c_str()); FRAMEOpenMap1->ExecScript(sJs); } } UpdateIconIxr(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateIconIxr() { if (!FRAMEOpenMap1->MapStart) return; String arrObj = ""; String sTemp; sJs.printf(L"removeLayerObject(%d)", LyrTp_Evsp); FRAMEOpenMap1->ExecScript(sJs); SgnlCtlrManager->FLists.Lock(); try { FOR_STL(TSgnlCtlr*, pObj, SgnlCtlrManager->FLists) { if (pObj->DEL_YN == "Y") continue; if (arrObj != "") arrObj += "|"; sTemp.printf(L"%s,%s,%s,%.6f,%.6f,%d,0,0,0", pObj->CTLR_NMBR.c_str(), pObj->CTLR_NMBR.c_str(), pObj->NAME.c_str(), pObj->X_CRDN, pObj->Y_CRDN, FInitComm); arrObj += sTemp; } } __finally { SgnlCtlrManager->FLists.UnLock(); if (arrObj != "") { sJs.printf(L"addFacility(%d, '%s')", LyrTp_Evsp, arrObj.c_str()); FRAMEOpenMap1->ExecScript(sJs); } } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::UpdateEditLink() { #if 0 if (!FRAMEOpenMap1->MapStart) return; TItsNode* pNode; String STRT_NM; String END_NM; try { LinkManager->FLists.Lock(); try { FOR_STL(TLink*, pObj, LinkManager->FLists) { if (pObj->DEL_YN == "Y") continue; if (pObj->IsVertex == false) continue; pNode = ItsNodeManager->FLists.Find(pObj->F_NODE_ID); if (pNode) STRT_NM = pNode->NODE_NAME; else STRT_NM = " "; pNode = ItsNodeManager->FLists.Find(pObj->T_NODE_ID); if (pNode) END_NM = pNode->NODE_NAME; else END_NM = " "; sJs.printf(L"addEditLink('%s', '%s', '%s', '%s', '%s', '%s')", pObj->LINK_ID.c_str(), pObj->ROAD_NAME.c_str(), STRT_NM.c_str(), END_NM.c_str(), pObj->X_CRDN_ARR.c_str(), pObj->Y_CRDN_ARR.c_str()); FRAMEOpenMap1->ExecScript(sJs); } } __finally { LinkManager->FLists.UnLock(); } FRAMEOpenMap1->ExecScript("makeEditLinkLayer()"); } catch(...) { } #endif } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::TvIxrCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!FRAMEOpenMap1->MapStart) return; if (!ACellViewInfo) return; int nRow = TvIxr->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; String sIxrNmbr = TvIxr->DataController->Values[nRow][ColLink2->Index]; sJs.printf(L"selectLayerObject(%d, '%s', %d)", LyrTp_Evsp, sIxrNmbr.c_str(), FRAMEOpenMap1->MapZoom); FRAMEOpenMap1->ExecScript(sJs); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::FRAMEVmsList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = FRAMEVmsList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEVmsList1->TvList->DataController->Values[nRow][FRAMEVmsList1->Column99->Index]; TVmsCtlr* pObj = (TVmsCtlr*)nMemPtr; DisplayInfo(pObj); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::AddRemoveIxr(String AIxrNmbr) { TSgnlCtlr *pObj = SgnlCtlrManager->FLists.Find(AIxrNmbr); if (!pObj) { return; } try { int nRow; TcxDataController *pGDC = TvIxr->DataController; TvIxr->BeginUpdate(); for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sIxrNmbr = pGDC->Values[ii][ColLink2->Index]; if (AIxrNmbr == sIxrNmbr) { UpdateIxrSelect(AIxrNmbr, FInitComm); pGDC->DeleteRecord(ii); return; } } nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = AIxrNmbr; pGDC->Values[nRow][ColLink3->Index] = pObj->IXR_NM; UpdateIxrSelect(AIxrNmbr, FSelComm); } __finally { TvIxr->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnLinkCopyClick(TObject *Sender) { #if 0 String sIfscId = EdVmsNmbr->Text.Trim(); int nIfscId = sIfscId.ToIntDef(0); TVmsEvsp *pIfsc = VmsEvspManager->FLists.Find(nIfscId); if (!pIfsc) return; try { int nRow; TcxDataController *pGDC = TvIxr->DataController; TvIxr->BeginUpdate(); FOR_STL(TVmsEvspLink *, pObj, pIfsc->FLists) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = pObj->LINK_ID; pGDC->Values[nRow][ColLink3->Index] = pObj->LINK_NM; String STRT_NM = ""; String END_NM = ""; TLink *pTmp = LinkManager->FLists.Find(pObj->LINK_ID); if (pTmp) { TItsNode *pFromNode = ItsNodeManager->FLists.Find(pTmp->F_NODE_ID); if (pFromNode) STRT_NM = pFromNode->NODE_NAME; TItsNode *pToNode = ItsNodeManager->FLists.Find(pTmp->T_NODE_ID); if (pToNode) END_NM = pToNode->NODE_NAME; } pGDC->Values[nRow][ColLink4->Index] = STRT_NM; pGDC->Values[nRow][ColLink5->Index] = END_NM; } } __finally { TvIxr->EndUpdate(); } RefreshRltnIxr(); #endif } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnLinkDelClick(TObject *Sender) { int nSelRows = TvIxr->Controller->SelectedRowCount; if (nSelRows <= 0) { Application->MessageBox(lblText13->Caption.c_str(),//L"»èÁ¦¸¦ ¿øÇÏ´Â ±¸°£À» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } for (int ii = 0; ii < nSelRows; ii++) { int nSelIdx = TvIxr->Controller->SelectedRows[ii]->RecordIndex; String sIxrNmbr = TvIxr->DataController->Values[nSelIdx][ColLink2->Index]; UpdateIxrSelect(sIxrNmbr, FInitComm); } TvIxr->Controller->DeleteSelection(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnUpClick(TObject *Sender) { try { TvIxr->BeginUpdate(); int nCurIdx = TvIxr->DataController->FocusedRowIndex;//FocusedRecordIndex; if (nCurIdx <= 0) { return; } int nUpIdx = nCurIdx-1; try { String sVal1 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink1->Index]); String sVal2 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink2->Index]); String sVal3 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink3->Index]); String sVal4 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink4->Index]); String sVal5 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink5->Index]); TvIxr->DataController->Values[nCurIdx][ColLink1->Index] = TvIxr->DataController->Values[nUpIdx][ColLink1->Index]; TvIxr->DataController->Values[nCurIdx][ColLink2->Index] = TvIxr->DataController->Values[nUpIdx][ColLink2->Index]; TvIxr->DataController->Values[nCurIdx][ColLink3->Index] = TvIxr->DataController->Values[nUpIdx][ColLink3->Index]; TvIxr->DataController->Values[nCurIdx][ColLink4->Index] = TvIxr->DataController->Values[nUpIdx][ColLink4->Index]; TvIxr->DataController->Values[nCurIdx][ColLink5->Index] = TvIxr->DataController->Values[nUpIdx][ColLink5->Index]; TvIxr->DataController->Values[nUpIdx][ColLink1->Index] = sVal1; TvIxr->DataController->Values[nUpIdx][ColLink2->Index] = sVal2; TvIxr->DataController->Values[nUpIdx][ColLink3->Index] = sVal3; TvIxr->DataController->Values[nUpIdx][ColLink4->Index] = sVal4; TvIxr->DataController->Values[nUpIdx][ColLink5->Index] = sVal5; TvIxr->Controller->ClearSelection(); TvIxr->Controller->FocusedRowIndex = nUpIdx; //TvIxr->Controller->FocusedRecordIndex = nUpIdx; TvIxr->ViewData->Records[nUpIdx]->Focused = true; TvIxr->ViewData->Records[nUpIdx]->Selected = true; CxIxr->SetFocus(); //TcxCustomGridRow* ARow = TvIxr->ViewData->Rows[TvIxr->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvIxr->EndUpdate(); } RefreshRltnIxr(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::BtnDownClick(TObject *Sender) { try { TvIxr->BeginUpdate(); int nCurIdx = TvIxr->DataController->FocusedRowIndex;//FocusedRecordIndex; //int nCurIdx = TvIxr->DataController->FocusedRecordIndex; if (nCurIdx < 0) { return; } if (nCurIdx == TvIxr->DataController->RecordCount-1) { return; } int nDnIdx = nCurIdx+1; try { String sVal1 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink1->Index]); String sVal2 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink2->Index]); String sVal3 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink3->Index]); String sVal4 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink4->Index]); String sVal5 = VarToStr(TvIxr->DataController->Values[nCurIdx][ColLink5->Index]); TvIxr->DataController->Values[nCurIdx][ColLink1->Index] = TvIxr->DataController->Values[nDnIdx][ColLink1->Index]; TvIxr->DataController->Values[nCurIdx][ColLink2->Index] = TvIxr->DataController->Values[nDnIdx][ColLink2->Index]; TvIxr->DataController->Values[nCurIdx][ColLink3->Index] = TvIxr->DataController->Values[nDnIdx][ColLink3->Index]; TvIxr->DataController->Values[nCurIdx][ColLink4->Index] = TvIxr->DataController->Values[nDnIdx][ColLink4->Index]; TvIxr->DataController->Values[nCurIdx][ColLink5->Index] = TvIxr->DataController->Values[nDnIdx][ColLink5->Index]; TvIxr->DataController->Values[nDnIdx][ColLink1->Index] = sVal1; TvIxr->DataController->Values[nDnIdx][ColLink2->Index] = sVal2; TvIxr->DataController->Values[nDnIdx][ColLink3->Index] = sVal3; TvIxr->DataController->Values[nDnIdx][ColLink4->Index] = sVal4; TvIxr->DataController->Values[nDnIdx][ColLink5->Index] = sVal5; TvIxr->Controller->ClearSelection(); TvIxr->Controller->FocusedRowIndex = nDnIdx; //TvIxr->Controller->FocusedRecordIndex = nDnIdx; TvIxr->ViewData->Records[nDnIdx]->Focused = true; TvIxr->ViewData->Records[nDnIdx]->Selected = true; CxIxr->SetFocus(); //TcxCustomGridRow* ARow = TvIxr->ViewData->Rows[TvIxr->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvIxr->EndUpdate(); } RefreshRltnIxr(); } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::ChkViewIconClick(TObject *Sender) { if (!FRAMEOpenMap1->MapStart) return; TcxCheckBox *pCheck = (TcxCheckBox*)Sender; if (pCheck->Tag == 0) { sJs.printf(L"showLayerText(%d, %d)", FLayerIdx, (pCheck->Checked) ? 1: 0); FRAMEOpenMap1->ExecScript(sJs); } else if (pCheck->Tag == 1) { sJs.printf(L"showLayerText(%d, %d)", LyrTp_Evsp, (pCheck->Checked) ? 1: 0); FRAMEOpenMap1->ExecScript(sJs); } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::ColSeqCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { if (AViewInfo->GridRecord->RecordIndex < 0) return; if (VarIsNull(AViewInfo->Value)) return; try { int nIdx = AViewInfo->Value; if (nIdx < 0) return; ACanvas->Brush->Color = ITSMap_GetDisplayColor(nIdx); ACanvas->Font->Color = ACanvas->Brush->Color; } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TEVSP300M::OpenMapCallback(TObject *ASender, const String AFunc, const String AArgs, const bool AFirst) { try { if (AFirst) { //Áöµµ¸¦ ÆíÁý¸ðµå·Î º¯°æ sJs.printf(L"setEditMode(%d, 1)", FLayerIdx); FRAMEOpenMap1->ExecScript(sJs); //½Ã¼³¹°¾ÆÀÌÄÜ µî·Ï UpdateIcon(); //È­¸éÀ» ½Ã¼³¹° ¿©¿ªÀ¸·Î È®´ë sJs.printf(L"extentLayer(%d)", FLayerIdx); FRAMEOpenMap1->ExecScript(sJs); return; } if (AFunc.Pos("onfacilityclick")) { TStringList *pStringList = new TStringList; pStringList->CommaText = AArgs; String sLyrIdx = pStringList->Strings[0]; String sNmbr = pStringList->Strings[1]; if (BtnEdit->Caption == FrmLang->lblEdit->Caption) { if (StrToIntDef(sLyrIdx, 0) == FLayerIdx) { TVmsCtlr *pVmsObj = VmsCtlrManager->FLists.Find(sNmbr); if (pVmsObj) { DisplayInfo(pVmsObj); } } } else if (BtnEdit->Caption != FrmLang->lblEdit->Caption) { if (StrToIntDef(sLyrIdx, 0) == LyrTp_Evsp) { AddRemoveIxr(sNmbr); } } delete pStringList; } } catch(Exception &exception) { } } //---------------------------------------------------------------------------