//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSCodeF.h" #include "CDSFacilityF.h" #include "CDSNodeF.h" #include "CDSServiceLinkF.h" #pragma hdrstop #include "DSRM040MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "FRAME_DsrcListF" #pragma link "FRAME_FlashMapF" #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 "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 "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" TDSRM040M *DSRM040M = NULL; void TDSRM040M_FlashCall(TObject *ASender, const WideString request) { try { if (!DSRM040M) return; DSRM040M->ShockwaveFlash1FlashCall1(ASender, request); } catch(Exception &exception) { } } //--------------------------------------------------------------------------- __fastcall TDSRM040M::TDSRM040M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FUpdate= false; FTitle = "DSRC-RSE Á¤º¸Á¦°ø±¸°£ °ü¸®"; MapStart = false; TvList->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//""; TvLink->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<¼­ºñ½º¸µÅ© Á¤º¸°¡ ¾ø½À´Ï´Ù>"; m_pGDC = TvList->DataController; FRAMEGisMap1->FlashCallbackFunc = TDSRM040M_FlashCall; FRAMEGisMap1->DrawMode = 1; //±¸°£Á¤º¸Ç¥Ãâ FRAMEGisMap1->ImgPan->Visible = true; FRAMEGisMap1->ImgZoomIn->Visible = true; FRAMEGisMap1->ImgZoomOut->Visible = true; FRAMEGisMap1->ImgSel->Visible = true; FRAMEGisMap1->ImgStnd->Visible = true; FRAMEGisMap1->ImgRefresh->Visible = true; FRAMEGisMap1->LbDef->Caption = "(¼±ÅùöưÀ» Ŭ¸¯ÇÏ¿© ¼±ÅÃÇÕ´Ï´Ù.)"; FRAMEGisMap1->LbDef->Hint = FRAMEGisMap1->LbDef->Caption; FRAMEGisMap1->LbDef->Visible = true; FRAMEGisMap1->ImgSel->Visible = false; FRAMEDsrcList1->PnlBottom->Visible = false; FRAMEDsrcList1->PnlTop->Visible = false; FRAMEDsrcList1->ColumnSel->Visible = false; //FRAMEDsrcList1->Column02->Visible = false; MyItsDsrcOfferSectManager = new TItsDsrcOfferSectManager(); MyItsDsrcOfferSectManager->LoadFromDb(); } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TDSRM040M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM040M::FormShow(TObject *Sender) { Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TDSRM040M::FormInit() { EdRseSectId->Text = ""; EdRseSectName->Text = ""; SeCNGSSPD->Value = 20; SeDELYSPD->Value = 10; EdStartSpotId->Text = ""; EdStartSpotNm->Text = ""; EdEndSpotId->Text = ""; EdEndSpotNm->Text = ""; EdRseSectLength->Text = ""; CMM_ClearGridTableView(TvLink); FNewDb = false; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM040M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; FRAMEGisMap1->LinkLevel = 2; FRAMEGisMap1->LoadGisMap(); FRAMEDsrcList1->UpdateList(); UpdateList(); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::UpdateList() { CMM_ClearGridTableView(TvList); int nRow; try { TvList->BeginUpdate(); FOR_STL(TItsDsrcOfferSect*, pObj, MyItsDsrcOfferSectManager->FLists) { if (pObj->DEL_YN == "Y") continue; nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][Column01->Index] = pObj->OFFR_SECT_ID; m_pGDC->Values[nRow][Column02->Index] = pObj->OFFR_DRCT_NM; m_pGDC->Values[nRow][Column03->Index] = pObj->ID; m_pGDC->Values[nRow][Column04->Index] = pObj->PRE_ID; m_pGDC->Values[nRow][Column99->Index] = (int)pObj; } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; //CxList->SetFocus(); } } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM040M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); DSRM040M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::FormCloseQuery(TObject *Sender, bool &CanClose) { #if 0 if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } #endif if (MyItsDsrcOfferSectManager) { delete MyItsDsrcOfferSectManager; MyItsDsrcOfferSectManager = NULL; } FRAMEDsrcList1->OnCloseQuery(CanClose); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::DisplayInfo(TItsDsrcOfferSect* AObj) { FormInit(); if (!AObj) return; EdRseSectId->Text = AObj->OFFR_SECT_ID; EdRseSectName->Text = AObj->OFFR_DRCT_NM; SeCNGSSPD->Value = StrToFloatDef(AObj->CNGS_BASI_SPED, 0); SeDELYSPD->Value = StrToFloatDef(AObj->DELY_BASI_SPED, 0); EdStartSpotId->Text = AObj->ID; EdStartSpotNm->Text = AObj->TARGETNM; EdEndSpotId->Text = AObj->PRE_ID; EdEndSpotNm->Text = AObj->PRENM; EdRseSectLength->Text = AObj->OBU_ENTR_DRCT_NMBR; ChangeEditMode(3); DisplaySectLink(AObj); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::UpdateRseIcon() { if (!MapStart) return; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "RemoveFacility", FAC_RSE); try { //if (ChkViewIcon->Checked) { String sObjList = ""; try { FRAMEDsrcList1->MyItsDsrcManager->FLists.Lock(); FOR_STL(TItsDsrc*, pObj, FRAMEDsrcList1->MyItsDsrcManager->FLists) { if (pObj->DEL_YN == "Y") continue; String sLoc = TCommFlash::ReplaceName(pObj->ISTL_LCTN_NM); sObjList += (pObj->ID + "," + "0," + sLoc + "," + pObj->LCTN_X + "," + pObj->LCTN_Y + "," + pObj->RSE_ID + "|"); } } __finally { FRAMEDsrcList1->MyItsDsrcManager->FLists.UnLock(); if (sObjList != "") { sObjList = sObjList.SubString(1, sObjList.Length()-1); TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "AddFacility", FAC_RSE + "|" + sObjList); } } } } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == "ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sSectId = EdRseSectId->Text; ChangeEditMode(1); TItsDsrcOfferSect *pObj = MyItsDsrcOfferSectManager->FLists.Find(sSectId); if (pObj) { CMM_SetGridRow(CxList, TvList, sSectId, Column01->Index); DisplayInfo(pObj); } } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::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;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } 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; } 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;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } 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; } break; } if (AEdit == 0 || AEdit == 2) { CxList->Enabled = false; } else { CxList->Enabled = true; } EdRseSectName->Properties->ReadOnly = bEnabled; SeCNGSSPD->Properties->ReadOnly = bEnabled; SeDELYSPD->Properties->ReadOnly = bEnabled; cxCheckBox1->Enabled = !bEnabled; cxCheckBox2->Enabled = !bEnabled; BtnLinkAdd->Enabled = !bEnabled; BtnLinkDel->Enabled = !bEnabled; FRAMEGisMap1->ImgSel->Visible = false; if (FRAMEGisMap1->MapStart) { //TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "ClearSelLink", "0"); RefreshSectLink(); FRAMEGisMap1->ImgSel->Visible = bGisEdit; if (bGisEdit == false) { if (MapStart) { TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "SelectMode", "0"); //PAN } } } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnInsertClick(TObject *Sender) { FormInit(); //½Å±Ô¾ÆÀ̵𸦠¾ò¾î¿Í¼­ È­¸éÀ» ÃʱâÈ­ÇÑ´Ù. String sSectId; if (!MyItsDsrcOfferSectManager->GetNextOffrSectId(sSectId)) { Application->MessageBox(L"»õ·Î¿î Á¦°ø±¸°£ ID¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } EdRseSectId->Text = sSectId; ChangeEditMode(2); FNewDb = true; } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnDeleteClick(TObject *Sender) { int nIdx = m_pGDC->FocusedRecordIndex; if (nIdx < 0) return; String sSectId = EdRseSectId->Text; if (sSectId.IsEmpty()) { Application->MessageBox(L"»èÁ¦ÇÒ DSRC-RSE Á¦°ø±¸°£À» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.\r\n¸ñ·Ï¿¡¼­ ´õºíŬ¸¯ÇÏ¿© ¼±ÅÃÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sMsg; sMsg = "Á¦°ø±¸°£ ID: " + sSectId; sMsg+= "\r\n¼±ÅÃÇϽŠDSRC-RSE Á¦°ø±¸°£ Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?\r\n°ü·ÃÁ¤º¸µµ ÇÔ²² »èÁ¦ µË´Ï´Ù."; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; TItsDsrcOfferSect *pObj = MyItsDsrcOfferSectManager->FLists.Find(sSectId); if (pObj) { if (MyItsDsrcOfferSectManager->DeleteOfferSect(pObj->OFFR_SECT_ID)) { pObj->DEL_YN = "Y"; UpdateList(); } FUpdate = true; Application->MessageBox(L"DSRC-RSE Á¦°ø±¸°£ Á¤º¸»èÁ¦\r\nDSRC-RSE Á¦°ø±¸°£ Á¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormInit(); ChangeEditMode(1); } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnSaveClick(TObject *Sender) { if (EdRseSectId->Text.IsEmpty() || EdRseSectName->Text.Trim().IsEmpty() || EdStartSpotNm->Text.Trim().IsEmpty() || EdEndSpotNm->Text.Trim().IsEmpty() || EdStartSpotId->Text.IsEmpty() || EdEndSpotId->Text.IsEmpty() ) { Application->MessageBox(L"¡ÚÇ׸ñÀº Çʼö ÀÔ·Â Ç׸ñÀÔ´Ï´Ù.\r\n¸ðµÎ ÀÔ·ÂÈÄ ÁøÇàÇØ ÁÖ¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sSectId = EdRseSectId->Text; TItsDsrcOfferSect *pObj; if (FNewDb) pObj = new TItsDsrcOfferSect(); else pObj = MyItsDsrcOfferSectManager->FLists.Find(sSectId); if (pObj) { pObj->OFFR_SECT_ID = sSectId; pObj->OFFR_DRCT_NM = EdRseSectName->Text.Trim(); pObj->CNGS_BASI_SPED = VarToStr(SeCNGSSPD->Value); pObj->DELY_BASI_SPED = VarToStr(SeDELYSPD->Value); pObj->ID = EdStartSpotId->Text.Trim(); pObj->OBU_ENTR_DRCT_NMBR = EdRseSectLength->Text.Trim(); pObj->PRE_ID = EdEndSpotId->Text.Trim(); pObj->IXR_DRCT_NUM = pObj->OBU_ENTR_DRCT_NMBR; pObj->TARGETNM = EdStartSpotNm->Text; pObj->PRENM = EdEndSpotNm->Text; pObj->DEL_YN = "N"; pObj->Completed = true; pObj->MEM_DEL = "N"; pObj->FSectLists.RemoveAll(); try { TvLink->BeginUpdate(); for (int ii = 0; ii < TvLink->DataController->RecordCount; ii++) { String sLinkId = TvLink->DataController->Values[ii][ColLink2->Index]; TItsDsrcOfferSectInfr *pSectObj = new TItsDsrcOfferSectInfr(); pSectObj->OFFR_SECT_ID = pObj->OFFR_SECT_ID; pSectObj->IFSC_ID = sLinkId; pSectObj->ORD = ii+1; pSectObj->DEL_YN = "N"; pObj->FSectLists.Push(pSectObj->ORD, pSectObj); } } __finally { TvLink->EndUpdate(); } bool bResult; bResult = MyItsDsrcOfferSectManager->SaveOfferSect(pObj); if (bResult) { Application->MessageBox(FrmLang->lblDbSave->Caption.c_str(),//L"DSRC-RSE Á¦°ø±¸°£ Á¤º¸ÀúÀå\r\nDSRC-RSE Á¦°ø±¸°£ Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); if (FNewDb) { MyItsDsrcOfferSectManager->FLists.Push(pObj->OFFR_SECT_ID, pObj); } FUpdate = true; UpdateList(); CMM_SetGridRow(CxList, TvList, sSectId, Column01->Index); #if 0 DisplayInfo(pObj); #else int nRow = TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = TvList->DataController->Values[nRow][Column99->Index]; TItsDsrcOfferSect* pObj = (TItsDsrcOfferSect*)nMemPtr; DisplayInfo(pObj); #endif } } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = TvList->DataController->Values[nRow][Column99->Index]; TItsDsrcOfferSect* pObj = (TItsDsrcOfferSect*)nMemPtr; DisplayInfo(pObj); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::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; FRAMEGisMap1->SelectObjectByPos(StrToFloatDef(pObj->LCTN_X, 0), StrToFloatDef(pObj->LCTN_Y, 0), true); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::cxCheckBox1Click(TObject *Sender) { if (cxCheckBox1->Checked) { if (cxCheckBox2->Checked) cxCheckBox2->Checked = false; FRAMEGisMap1->OnGisOperationClick(FRAMEGisMap1->ImgSel); } else { FRAMEGisMap1->OnGisOperationClick(FRAMEGisMap1->ImgPan); } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::cxCheckBox2Click(TObject *Sender) { if (cxCheckBox2->Checked) { if (cxCheckBox1->Checked) cxCheckBox1->Checked = false; FRAMEGisMap1->OnGisOperationClick(FRAMEGisMap1->ImgSel); } else { FRAMEGisMap1->OnGisOperationClick(FRAMEGisMap1->ImgPan); } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::RefreshSectLink() { if (!MapStart) return; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "ClearSelLink", "0"); try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); try { for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sLinkId = pGDC->Values[ii][ColLink2->Index]; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "AddSelLink", sLinkId); } } catch(...) { } } __finally { TvLink->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnLinkDelClick(TObject *Sender) { int nSelRows = TvLink->Controller->SelectedRowCount; if (nSelRows <= 0) { Application->MessageBox(L"»èÁ¦¸¦ ¿øÇÏ´Â ¼­ºñ½º±¸°£À» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TvLink->Controller->DeleteSelection(); RefreshSectLink(); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::BtnLinkAddClick(TObject *Sender) { if (EdLinkId->Text.IsEmpty()) return; String sNewId = EdLinkId->Text; bool bFound = false; try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sLinkId = pGDC->Values[ii][ColLink2->Index]; if (sNewId == sLinkId) { bFound = true; break; } } if (bFound) { Application->MessageBox(L"ÀÌ¹Ì µî·ÏµÇ¾î ÀÖ´Â ¼­ºñ½º±¸°£ ÀÔ´Ï´Ù.\r\n¼­ºñ½º ±¸°£Àº Áߺ¹Çؼ­ µî·Ï ÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TItsServiceLink *pLink = ItsServiceLinkManager->FLists.Find(sNewId); if (pLink) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = sNewId; TItsNode *pNode; pGDC->Values[nRow][ColLink3->Index] = pLink->F_NODE_ID; pGDC->Values[nRow][ColLink5->Index] = pLink->T_NODE_ID; pNode = ItsNodeManager->FLists.Find(pLink->F_NODE_ID); if (pNode) { pGDC->Values[nRow][ColLink4->Index] = pNode->NODE_NAME; } pNode = ItsNodeManager->FLists.Find(pLink->T_NODE_ID); if (pNode) { pGDC->Values[nRow][ColLink6->Index] = pNode->NODE_NAME; } } else { Application->MessageBox(L"µ¥ÀÌÅͺ£À̽º¿¡ µî·ÏµÇ¾î ÀÖÁö ¾Ê´Â ¼­ºñ½º±¸°£ ÀÔ´Ï´Ù.\r\nµ¥ÀÌÅͺ£À̽ºÀÇ Á¤º¸¸¦ È®ÀÎÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } } __finally { TvLink->EndUpdate(); } RefreshSectLink(); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::DisplaySectLink(TItsDsrcOfferSect* AObj) { if (!AObj) return; CMM_ClearGridTableView(TvLink); try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); FOR_STL(TItsDsrcOfferSectInfr *, pObj, AObj->FSectLists) { String sLinkId = pObj->IFSC_ID; nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = sLinkId; TItsServiceLink *pLink = ItsServiceLinkManager->FLists.Find(sLinkId); if (pLink) { TItsNode *pNode; pGDC->Values[nRow][ColLink3->Index] = pLink->F_NODE_ID; pGDC->Values[nRow][ColLink5->Index] = pLink->T_NODE_ID; pNode = ItsNodeManager->FLists.Find(pLink->F_NODE_ID); if (pNode) { pGDC->Values[nRow][ColLink4->Index] = pNode->NODE_NAME; } pNode = ItsNodeManager->FLists.Find(pLink->T_NODE_ID); if (pNode) { pGDC->Values[nRow][ColLink6->Index] = pNode->NODE_NAME; } } } } __finally { TvLink->EndUpdate(); } RefreshSectLink(); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::TvLinkCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!MapStart) return; if (!ACellViewInfo) return; int nRow = TvLink->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; String sLinkId = TvLink->DataController->Values[nRow][ColLink2->Index]; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "FindLink", sLinkId); } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::ChkGisZoomClick(TObject *Sender) { cxGroupBox1->Visible = !ChkGisZoom->Checked; } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::ShockwaveFlash1FlashCall1(TObject *ASender, const WideString request) { try { String sTemp; String sFunc; String sArgs; sTemp = request; int nFuncStrIdx = sTemp.Pos("\""); int nFuncEndIdx = sTemp.Pos("\" returntype"); int nArgsStrIdx = sTemp.Pos("string>"); int nArgsEndIdx = sTemp.Pos("Checked ? "1" : "0"; String sShowName = ChkViewName->Checked ? "1" : "0"; MapStart = true; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "ShowFacility", "RSE|" + sShowIcon + "|" + sShowName); TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "MultiSelect", "1"); } else if (sFunc == "OnDrawTrafLink") { static bool bFirst = true; if (bFirst) { UpdateRseIcon(); bFirst = true; } } else if (sFunc == "OnMousePos") { if (FRAMEGisMap1->ModeSelect) { TStringList *pStringList = new TStringList; pStringList->CommaText = sArgs; String sMapX = pStringList->Strings[0]; //lat String sMapY = pStringList->Strings[1]; //lng delete pStringList; try { //SePosX->Value = sMapX.ToDouble(); //SePosY->Value = sMapY.ToDouble(); } catch(...) {} } } else if (sFunc == "OnSelLink") { if (FRAMEGisMap1->ModeSelect && EdRseSectName->Properties->ReadOnly == false) { TStringList *pStringList = new TStringList; pStringList->CommaText = sArgs; String sLevl = pStringList->Strings[0]; //¸µÅ©·¹º§ String sId = pStringList->Strings[1]; //¸µÅ©¾ÆÀ̵ð String sZoom = pStringList->Strings[2]; //ÁÜ·¹º§ String sPosX = pStringList->Strings[3]; //x String sPosY = pStringList->Strings[4]; //y String sMapX = pStringList->Strings[5]; //lat String sMapY = pStringList->Strings[6]; //lng delete pStringList; EdLinkId->Text = sId; #if 0 if (BtnLinkAdd->Enabled) { if (Shift.Contains(ssCtrl)) { BtnLinkAddClick((TObject*)BtnLinkAdd); } } #endif } } else if (sFunc == "OnClickFacility") { if (FRAMEGisMap1->ModeSelect) { TStringList *pStringList = new TStringList; pStringList->CommaText = sArgs; String sType = pStringList->Strings[0]; //À¯Çü String sId = pStringList->Strings[1]; //¾ÆÀ̵ð String sName = pStringList->Strings[2]; //¾ÆÀ̵ð delete pStringList; if (cxCheckBox1->Checked) { EdStartSpotId->Text = sId; EdStartSpotNm->Text = sName; int nAutoNum; if (MyItsDsrcOfferSectManager->GetAutoRseDrctNum(EdStartSpotId->Text, nAutoNum)) { EdRseSectLength->Text = String(nAutoNum); } } else if (cxCheckBox2->Checked) { EdEndSpotId->Text = sId; EdEndSpotNm->Text = sName; } } } } catch(Exception &exception) { } } //--------------------------------------------------------------------------- void __fastcall TDSRM040M::ChkViewIconClick(TObject *Sender) { if (!MapStart) return; String sShowIcon = ChkViewIcon->Checked ? "1" : "0"; String sShowName = ChkViewName->Checked ? "1" : "0"; TCommFlash::CallFunc(FRAMEGisMap1->ShockwaveFlash1, "ShowFacility", "RSE|" + sShowIcon + "|" + sShowName); } //---------------------------------------------------------------------------