//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSDbF.h" #include "AppGlobalF.h" #include "WindowMsgF.h" #include "CDSCodeF.h" #include "CDSNodeF.h" #include "CDSLinkF.h" #include "CDSIfscF.h" #include "CDSRoadF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "FrmGisSearchF.h" #include "ITS0000MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalc" #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 "cxMaskEdit" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" TFrmGisSearch *FrmGisSearch = NULL; //--------------------------------------------------------------------------- __fastcall TFrmGisSearch::TFrmGisSearch(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); m_pGDC = TvList->DataController; m_bClose = false; } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::FormClose(TObject *Sender, TCloseAction &Action) { m_bClose = true; try { if (TmrClear->Enabled == true) { TmrClear->Enabled = false; //ITS00MAP->xclntMap->ClearPathInfo(); //ITS00MAP->xclntMap->ReDraw(); } //if (m_bClose == false) { if (ITS0000M) ITS0000M->ChkGisSearch->Checked = false; } } catch(...) { } CMM_SaveForm(g_sFormsDir, this); Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::FormDestroy(TObject *Sender) { FrmGisSearch = NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::TmrShowTimer(TObject *Sender) { Enabled = true; EdSearch->Enabled = true; EdSearch->BringToFront(); } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::BtnSearchClick(TObject *Sender) { Application->ProcessMessages(); TSqlCursor sqlCrs((TControl*)BtnSearch); SelList(); } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::EdSearchKeyPress(TObject *Sender, wchar_t &Key) { if (Key == VK_RETURN) { Key = 0; BtnSearchClick(NULL); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelList() { TSqlCursor crs; String sParam = ""; m_nType = CbType->ItemIndex; sParam = EdSearch->Text.Trim(); switch(m_nType) { case 0: SelNode(sParam); break; case 1: SelLink(sParam); break; case 2: SelServiceLink(sParam); break; case 3: SelRoad(sParam); break; } TvList->ApplyBestFit(NULL, false, false); } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelNode(String AParam) { Column01->Caption = "ID"; Column02->Caption = lblNode1->Caption;//"³ëµå¸í"; Column03->Caption = lblNode2->Caption;//"³ëµåÀ¯Çü"; Column04->Visible = false; Column05->Visible = false; Column06->Visible = false; Column07->Visible = false; TItsSubCode *pSubCode; TItsCode *FCodeNodeT = ItsCodeManager->FLists.Find("NDT"); //³ëµåÀ¯Çü CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); try { ItsNodeManager->FLists.Lock(); FOR_STL(TItsNode *, pNode, ItsNodeManager->FLists) { if (AParam == "" || pNode->NODE_ID.Pos(AParam) || pNode->NODE_NAME.Pos(AParam) ) { nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][Column01->Index] = pNode->NODE_ID; //³ëµåID m_pGDC->Values[nRow][Column02->Index] = pNode->NODE_NAME; //±³Â÷·Î¸íĪ String sNodeType = "[" + pNode->NODE_TYPE + "] "; if (FCodeNodeT) { pSubCode = FCodeNodeT->FSubLists.Find(pNode->NODE_TYPE); if (pSubCode) sNodeType = sNodeType + pSubCode->CMMN_CD_KOR_NM; } m_pGDC->Values[nRow][Column03->Index] = sNodeType; //³ëµåÀ¯Çü m_pGDC->Values[nRow][Column04->Index] = String(pNode->X_CRDN); //X ÁÂÇ¥ m_pGDC->Values[nRow][Column05->Index] = String(pNode->Y_CRDN); //Y ÁÂÇ¥ m_pGDC->Values[nRow][Column99->Index] = (int)pNode; } } } __finally { ItsNodeManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; CxList->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelLink(String AParam) { Column01->Caption = "ID"; Column02->Caption = lblLink1->Caption;//"µµ·Î¸í"; Column03->Caption = lblLink2->Caption;//"½ÃÀÛ³ëµå"; Column04->Caption = lblLink3->Caption;//"Á¾·á³ëµå"; Column04->Visible = true; Column05->Visible = false; Column06->Visible = false; Column07->Visible = false; TItsNode *pNode; CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); try { ItsLinkManager->FLists.Lock(); FOR_STL(TItsLink*, pLink, ItsLinkManager->FLists) { if (AParam == "" || pLink->LINK_ID.Pos(AParam) || pLink->ROAD_NAME.Pos(AParam) ) { nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][Column01->Index] = pLink->LINK_ID; m_pGDC->Values[nRow][Column02->Index] = pLink->ROAD_NAME; //'µµ·Î¸í'; String sFNodeName = "[" + pLink->F_NODE_ID + "] "; pNode = ItsNodeManager->FLists.Find(pLink->F_NODE_ID); if (pNode) sFNodeName = sFNodeName + pNode->NODE_NAME; m_pGDC->Values[nRow][Column03->Index] = sFNodeName; //'½ÃÀÛ³ëµåID'; String sTNodeName = "[" + pLink->T_NODE_ID + "] "; pNode = ItsNodeManager->FLists.Find(pLink->T_NODE_ID); if (pNode) sTNodeName = sTNodeName + pNode->NODE_NAME; m_pGDC->Values[nRow][Column04->Index] = sTNodeName; //'Á¾·á³ëµåID'; m_pGDC->Values[nRow][Column99->Index] = (int)pLink; } } } __finally { ItsLinkManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; CxList->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelServiceLink(String AParam) { Column01->Caption = "ID"; Column02->Caption = lblIfsc1->Caption;//"¸íĪ"; Column03->Caption = lblIfsc2->Caption;//"¹æÇâ"; Column04->Caption = lblIfsc3->Caption;//"½ÃÁ¡¸í"; Column05->Caption = lblIfsc4->Caption;//"Á¾Á¡¸í"; Column04->Visible = true; Column05->Visible = true; Column06->Visible = false; Column07->Visible = false; TItsSubCode *pSubCode; TItsCode *FCodeIFD = ItsCodeManager->FLists.Find("IFD"); // ¹æÇâÄÚµå CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); try { ItsIfscManager->FLists.Lock(); FOR_STL(TItsIfsc*, pIfsc, ItsIfscManager->FLists) { if (AParam == "" || pIfsc->IFSC_ID.Pos(AParam) || pIfsc->IFSC_NM.Pos(AParam) ) { nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][Column01->Index] = pIfsc->IFSC_ID; //'Á¤º¸Á¦°ø±¸°£ ID' m_pGDC->Values[nRow][Column02->Index] = pIfsc->IFSC_NM; //'Á¤º¸Á¦°ø±¸°£ ¸í' String sIFD = "[" + pIfsc->DRCT_CD + "] "; pSubCode = FCodeIFD->FSubLists.Find(pIfsc->DRCT_CD); // ¹æÇâÄÚµå if (pSubCode) sIFD = sIFD + pSubCode->CMMN_CD_KOR_NM; m_pGDC->Values[nRow][Column03->Index] = sIFD; //'¹æÇâ ÄÚµå' m_pGDC->Values[nRow][Column04->Index] = pIfsc->STRT_NM; //'½ÃÁ¡ ¸í' m_pGDC->Values[nRow][Column05->Index] = pIfsc->END_NM; //'Á¾Á¡ ¸í' m_pGDC->Values[nRow][Column99->Index] = (int)pIfsc; } } } __finally { ItsIfscManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; CxList->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelRoad(String AParam) { Column01->Caption = "ID"; Column02->Caption = lblIfsc1->Caption;//"¸íĪ"; Column03->Caption = lblIfsc2->Caption;//"¹æÇâ"; Column04->Caption = lblIfsc3->Caption;//"½ÃÁ¡¸í"; Column05->Caption = lblIfsc4->Caption;//"Á¾Á¡¸í"; Column04->Visible = true; Column05->Visible = true; Column06->Visible = false; Column07->Visible = false; TItsSubCode *pSubCode; TItsCode *FCodeIFD = ItsCodeManager->FLists.Find("IFD"); // ¹æÇâÄÚµå CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); try { ItsRoadManager->FLists.Lock(); FOR_STL(TItsRoad*, pRoad, ItsRoadManager->FLists) { if (AParam == "" || pRoad->ROAD_ID.Pos(AParam) || pRoad->ROAD_NM.Pos(AParam) ) { nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][Column01->Index] = pRoad->ROAD_ID; //'µµ·Î ID' m_pGDC->Values[nRow][Column02->Index] = pRoad->ROAD_NM; //'µµ·Î¸í' String sIFD = "[" + pRoad->DRCT_CD + "] "; pSubCode = FCodeIFD->FSubLists.Find(pRoad->DRCT_CD); // ¹æÇâÄÚµå if (pSubCode) sIFD = sIFD + pSubCode->CMMN_CD_KOR_NM; m_pGDC->Values[nRow][Column03->Index] = sIFD; //'¹æÇâ ÄÚµå' m_pGDC->Values[nRow][Column04->Index] = pRoad->STRT_NM; //'½ÃÁ¡ ¸í' m_pGDC->Values[nRow][Column05->Index] = pRoad->END_NM; //'Á¾Á¡ ¸í' m_pGDC->Values[nRow][Column99->Index] = (int)pRoad; } } } __finally { ItsRoadManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; CxList->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::SelGisItem() { try { int nIndex = m_pGDC->FocusedRecordIndex; if (nIndex < 0) return; String sId = VarToStr(m_pGDC->Values[nIndex][Column01->Index]); TmrClear->Enabled = false; ITS0000M->SelGisItem(m_nType, sId); TmrClear->Enabled = true; } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::TmrClearTimer(TObject *Sender) { try { //TXiMapUtil::ClearPath(ITS00MAP->xclntMap); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (ACellViewInfo) { SelGisItem(); } } //--------------------------------------------------------------------------- void __fastcall TFrmGisSearch::TvListDataControllerFilterChanged(TObject *Sender) { CMM_SetFilterLike(TvList); } //---------------------------------------------------------------------------