//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSCodeF.h" #include "CDSFacilityF.h" #include "ITS_OPLibF.h" #pragma hdrstop #include "PRK0060MF.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 "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "cxTimeEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "FRAME_OpenMapF" #pragma link "dxSkinMcSkin" #pragma link "cxCalc" #pragma resource "*.dfm" TPRK0060M *PRK0060M = NULL; //--------------------------------------------------------------------------- __fastcall TPRK0060M::TPRK0060M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); Position = poOwnerFormCenter; FUpdate= false; FTitle = "ÁÖÂ÷Àå ¿î¿µ Á¤º¸ °ü¸®"; m_pGDC = TvList->DataController; EditMode = false; } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::CommClose() { try { //CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::FormShow(TObject *Sender) { Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::FormInit() { int ii; PRK_PLCE_NMBR->Text = ""; PRK_PLCE_MANAGE_NO->Text = ""; PRK_PLCE_NM->Text = ""; PRK_PLCE_ADRES->Text = ""; OPR_INFO->Text = ""; FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; UpdateList(); } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); PRK0060M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::DisplayInfo(TPrkPlce* AObj, bool AMoveObj/*=true*/) { FormInit(); PRK_PLCE_NMBR->Text = AObj->CTLR_NMBR; PRK_PLCE_MANAGE_NO->Text = AObj->CTLR_ID; PRK_PLCE_STTUS_VER->Text = AObj->PRK_PLCE_STTUS_VER; PRK_PLCE_NM->Text = AObj->NAME; PRK_PLCE_ADRES->Text = AObj->ISTL_LCTN_ADDR; OPR_INFO->Text = AObj->OPR_INFO; ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::UpdateList() { CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); TItsSubCode *pSubCode; try { PrkPlceManager->FLists.Lock(); FOR_STL(TPrkPlce*, pObj, PrkPlceManager->FLists) { if (pObj->DEL_YN != "N") continue; nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][ColumnSel->Index] = false; //¼±Åà m_pGDC->Values[nRow][Column00->Index] = "-"; //ÆíÁý m_pGDC->Values[nRow][Column01->Index] = pObj->CTLR_NMBR; m_pGDC->Values[nRow][Column11->Index] = pObj->CTLR_ID; m_pGDC->Values[nRow][Column04->Index] = pObj->NAME; m_pGDC->Values[nRow][Column02->Index] = pObj->OPR_INFO; m_pGDC->Values[nRow][Column10->Index] = pObj->PRK_CMPRT_CO; // ÃþÁ¤º¸ String sFlrs = ""; FOR_STL(TPrkPlceFlr*, pFlr, pObj->FFlrs) { if (sFlrs == "") { sFlrs = pFlr->FLR_NO; } else { sFlrs += ", " + pFlr->FLR_NO; } } m_pGDC->Values[nRow][Column12->Index] = sFlrs; m_pGDC->Values[nRow][Column13->Index] = "»ç¿ë"; m_pGDC->Values[nRow][Column99->Index] = (int)pObj; } } __finally { PrkPlceManager->FLists.UnLock(); } } __finally { TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; //CxList->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::BtnEditClick(TObject *Sender) { String sId = PRK_PLCE_NMBR->Text; TPrkPlce *pObj = PrkPlceManager->FLists.Find(sId); FNewDb = false; if (BtnEdit->Caption == FrmLang->lblEdit->Caption)//"ÆíÁý") { //ÆíÁý¸ðµå ½ÃÀÛ ChangeEditMode(0); #if 0 if (pObj) { //½Ã¼³¹°¾ÆÀÌÄÜÀ» ÆíÁý¾ÆÀÌÄÜÀ¸·Î º¯°æ //function editFacilityObject(ALyrIdx, ANmbr, AComm(0:¿À·ù-ÆíÁý,1:Á¤»ó), AEdit(ÆíÁý¸ðµå:1-ÆíÁý,0-ÆíÁýÃë¼Ò)) sJs.printf(L"editFacilityObject(%d, %s, 1, 1)", FLayerIdx, pObj->CTLR_NMBR.c_str()); FRAMEOpenMap1->ExecScript(sJs); } #endif } else { //ÆíÁý¸ðµå Ãë¼Ò ChangeEditMode(1); if (pObj) { CMM_SetGridRow(CxList, TvList, sId, Column01->Index); DisplayInfo(pObj, false); //Ãß°¡ ¸ðµå¿¡¼­ Ãë¼ÒÇÏ´Â °æ¿ì Áöµµ¿¡ ½Å±Ô·Î Ãß°¡ÇÑ °´Ã¼¸¦ ã¾Æ¼­ »èÁ¦ÇØ ÁÖ´Â°Í º¸´Ù //»õ·Ó°Ô ´Ù½Ã ±×¸®ÀÚ } else { #if 0 //°´Ã¼°¡ ¾ø´Â °æ¿ì´Â Ãß°¡ ¸ðµå¿¡¼­ Ãë¼ÒÇÑ °æ¿ìÀÓ sJs.printf(L"removeFacilityObject(%d, %s)", FLayerIdx, sId.c_str()); FRAMEOpenMap1->ExecScript(sJs); #endif } } } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::ChangeEditMode(int AEdit) { 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; } 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; GrpInfo->Enabled = true; } else { CxList->Enabled = true; GrpInfo->Enabled = false; } //PnlEdit->Enabled = EditMode; } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::BtnInsertClick(TObject *Sender) { #if 0 FormInit(); //½Å±Ô¾ÆÀ̵𸦠¾ò¾î¿Í¼­ È­¸éÀ» ÃʱâÈ­ÇÑ´Ù. int nNmbr, nId; if (!PrkPlceManager->GetNextPrkNmbr(nNmbr, nId)) { Application->MessageBox(L"»õ·Î¿î ÁÖÂ÷Àå Á¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } PRK_PLCE_NMBR->Text = String(nNmbr); //PRK_PLCE_ENTRC_LA->Value = FRAMEOpenMap1->CenterX; //PRK_PLCE_ENTRC_LO->Value = FRAMEOpenMap1->CenterY; PRK_PLCE_ENTRC_LA->Value = FRAMEOpenMap1->CenterY; PRK_PLCE_ENTRC_LO->Value = FRAMEOpenMap1->CenterX; //Áöµµ¿¡ »õ·Î¿î ½Ã¼³¹° ¾ÆÀÌÄÜ Ãß°¡Çϸ鼭 ÆíÁý¸ðµå·Î º¯°æ String arrObj = ""; arrObj.printf(L"%d,New,New,%.6f,%.6f,0", nNmbr, FRAMEOpenMap1->CenterX, FRAMEOpenMap1->CenterY); sJs.printf(L"addFacilityObject(%d, '%s')", FLayerIdx, arrObj.c_str()); FRAMEOpenMap1->ExecScript(sJs); ChangeEditMode(2); FNewDb = true; #endif } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::BtnDeleteClick(TObject *Sender) { #if 0 if (!FRAMEOpenMap1->MapStart) return; int nIdx = m_pGDC->FocusedRecordIndex; if (nIdx < 0) return; String sId = PRK_PLCE_NMBR->Text; if (sId.IsEmpty()) { Application->MessageBox(L"»èÁ¦ÇÒ ÁÖÂ÷ÀåÁ¤º¸¸¦ ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.\r\n¸ñ·Ï¿¡¼­ ´õºíŬ¸¯ÇÏ¿© ¼±ÅÃÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sMsg; sMsg = "ID: " + sId; sMsg+= "\r\n¼±ÅÃÇϽŠÁÖÂ÷Àå Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; TPrkPlce *pObj = PrkPlceManager->FLists.Find(sId); if (pObj) { if (PrkPlceManager->DeletePrkPlce(pObj)) { pObj->DEL_YN = "Y"; UpdateList(); } Application->MessageBox(L"ÁÖÂ÷Àå Á¤º¸»èÁ¦\r\nÁÖÂ÷Àå Á¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormInit(); ChangeEditMode(1); } #endif } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::BtnSaveClick(TObject *Sender) { if (PRK_PLCE_NMBR->Text.IsEmpty() || PRK_PLCE_MANAGE_NO->Text.Trim().IsEmpty() || PRK_PLCE_NM->Text.Trim().IsEmpty() || PRK_PLCE_ADRES->Text.Trim().IsEmpty() || OPR_INFO->Text.Trim().IsEmpty() ) { Application->MessageBox(L"[*]Ç׸ñÀº Çʼö ÀÔ·Â Ç׸ñÀÔ´Ï´Ù.\r\n¸ðµÎ ÀÔ·ÂÈÄ ÁøÇàÇØ ÁÖ¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sNmbr = PRK_PLCE_NMBR->Text; TPrkPlce *pObj = PrkPlceManager->FLists.Find(sNmbr); if (pObj == NULL) { Application->MessageBox(L"ÁÖÂ÷Àå Á¤º¸¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù.\r\nÁÖÂ÷Àå Á¤º¸¸¦ ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (pObj) { pObj->CTLR_NMBR = PRK_PLCE_NMBR->Text; pObj->NAME = PRK_PLCE_NM->Text.Trim(); pObj->ISTL_LCTN_ADDR = PRK_PLCE_ADRES->Text.Trim(); pObj->OPR_INFO = OPR_INFO->Text.Trim(); bool bResult = PrkPlceManager->UpdatePrkPlceOprInfo(pObj); if (bResult) { Application->MessageBox(FrmLang->lblDbSave->Caption.c_str(),//L"ÁÖÂ÷Àå Á¤º¸ÀúÀå\r\nÁÖÂ÷Àå Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; UpdateList(); CMM_SetGridRow(CxList, TvList, sNmbr, Column01->Index); DisplayInfo(pObj, true); } } } //--------------------------------------------------------------------------- void __fastcall TPRK0060M::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]; TPrkPlce* pObj = (TPrkPlce*)nMemPtr; DisplayInfo(pObj, true); } //---------------------------------------------------------------------------