//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSRoadF.h" #include "CDSIfscF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "TAS0050MF.h" #include "TAS00501F.h" #include "CDSCodeF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxTextEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" TTAS0050M *TAS0050M = NULL; //--------------------------------------------------------------------------- __fastcall TTAS0050M::TTAS0050M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FTitle = Caption;//"¿ìȸµµ·ÎºÐ¼®"; m_pFormList = new TList(); TsList01->TabVisible = false; MyItsAtrdManager = new TItsAtrdManager(); MyItsAtrdManager->LoadFromDb(); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::CommClose() { try { if (MyItsAtrdManager) { delete MyItsAtrdManager; MyItsAtrdManager = NULL; } for (int idx = m_pFormList->Count-1; idx >= 0; idx--) { m_pFormList->Delete(idx); } delete m_pFormList; CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::FormInit() { FAtrdId = ""; FAtrdId1 = ""; CbIfsc->Properties->Items->Clear(); CbIfsc1->Properties->Items->Clear(); CbAtrd->Properties->Items->Clear(); CbAtrd1->Properties->Items->Clear(); try { MyItsAtrdManager->FLists.Lock(); FOR_STL(TItsAtrd*, pObj, MyItsAtrdManager->FLists) { if (pObj->DEL_YN == "Y") continue; String sDir = (pObj->DRCT_CD.Trim() == "0") ? FrmLang->lblUp->Caption : FrmLang->lblDown->Caption;//String("»óÇà") : String("ÇÏÇà"); String sAtr = pObj->ATRD_NM; CbAtrd->Properties->Items->AddObject(sAtr + " [" + sDir + "]", (TObject*)pObj); CbAtrd1->Properties->Items->AddObject(sAtr + " [" + sDir + "]", (TObject*)pObj); } } __finally { MyItsAtrdManager->FLists.UnLock(); CbAtrd->ItemIndex = 0; CbAtrd1->ItemIndex = CbAtrd1->Properties->Items->Count-1; } DtDay->Date = IncHour(Now(), -24); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::RefreshData() { // °Ë»öÁ¶°Ç¿¡ ÀÇÇÑ ¸µÅ© µ¥ÀÌÅÍ Á¶È¸ try { //SelListData(); } __finally { } } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::BtnSearchClick(TObject *Sender) { Application->ProcessMessages(); TSqlCursor sqlCrs((TControl*)BtnSearch); String sTitle; TItsAtrd *pAtrd = (TItsAtrd*)CbAtrd->Properties->Items->Objects[CbAtrd->ItemIndex]; if (!pAtrd) { Application->MessageBox(FrmLang->lblSelErr->Caption.c_str(),//L"°£¼±µµ·Î¸¦ ¸ÕÀú ¼±Åà Çϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = CbAtrd; return; } FAtrdId = pAtrd->ATRD_ID; FAtrdNm = CbAtrd->Text.Trim(); TItsIfsc *pIfsc = (TItsIfsc*)CbIfsc->Properties->Items->Objects[CbIfsc->ItemIndex]; if (!pIfsc) { Application->MessageBox(FrmLang->lblSelErr->Caption.c_str(),//L"°£¼±µµ·Î ±¸°£À» ¸ÕÀú ¼±Åà Çϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = CbIfsc; return; } FLinkId = pIfsc->IFSC_ID; FLinkNm = pIfsc->STRT_NM + " ¡æ " + pIfsc->END_NM; pAtrd = (TItsAtrd*)CbAtrd1->Properties->Items->Objects[CbAtrd1->ItemIndex]; if (!pAtrd) { Application->MessageBox(FrmLang->lblSelErr->Caption.c_str(),//L"°£¼±µµ·Î¸¦ ¸ÕÀú ¼±Åà Çϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = CbAtrd1; return; } FAtrdId1 = pAtrd->ATRD_ID; FAtrdNm1 = CbAtrd1->Text.Trim(); pIfsc = (TItsIfsc*)CbIfsc1->Properties->Items->Objects[CbIfsc1->ItemIndex]; if (!pIfsc) { Application->MessageBox(FrmLang->lblSelErr->Caption.c_str(),//L"°£¼±µµ·Î ±¸°£À» ¸ÕÀú ¼±Åà Çϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = CbIfsc1; return; } FLinkId1 = pIfsc->IFSC_ID; FLinkNm1 = pIfsc->STRT_NM + " ¡æ " + pIfsc->END_NM; if (FLinkId == FLinkId1) { Application->MessageBox(L"°£¼±µµ·Î ±¸°£°ú ¿ìȸµµ·Î ±¸°£ÀÌ ÀÏÄ¡ÇÕ´Ï´Ù. ´Ù¸¥ ±¸°£À» ¼±Åà Çϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = CbAtrd; return; } FQryDay = DtDay->Date.FormatString("yyyymmdd"); sTitle.printf(L"%s/%s [%s] ", FLinkId.c_str(), FLinkId1.c_str(), FQryDay.c_str()); try { Application->ProcessMessages(); LockWindowUpdate(Handle); TcxTabSheet *pSheet = CMM_AddTabSheet(PgTab, sTitle); if (!pSheet) return; TAS00501 = new TTAS00501(this, Handle, FLinkId, FLinkNm, FLinkId1, FLinkNm1, FQryDay); TAS00501->Parent = pSheet; TAS00501->Show(); PgTab->ActivePage = pSheet; pSheet = PgTab->ActivePage; m_pFormList->Add(TAS00501); } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::OnSubFormClose(TMessage Msg) { int nActiveIdx = PgTab->ActivePageIndex; if (nActiveIdx <= 0) return; LockWindowUpdate(Handle); TcxTabSheet *pSheet = PgTab->ActivePage; if (pSheet) { delete pSheet; } nActiveIdx--; // ù¹øÂ° ÅÇÀº È­¸é¿¡ ¼û°ÜÁ® ÀÖ´Ù. m_pFormList->Delete(nActiveIdx); LockWindowUpdate(0); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::PgTabDblClick(TObject *Sender) { TPoint APoint; APoint = PgTab->MouseDownPos; if (PgTab->IndexOfTabAt(APoint.x, APoint.y) != -1) POST_MSG(Handle, WM_SUBFORM_CLOSE, 0, 0); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); TAS0050M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::PgTabCanCloseEx(TObject *Sender, int ATabIndex, bool &ACanClose) { int nActiveIdx = ATabIndex; if (nActiveIdx <= 0) return; nActiveIdx--; // ù¹øÂ° ÅÇÀº È­¸é¿¡ ¼û°ÜÁ® ÀÖ´Ù. m_pFormList->Delete(nActiveIdx); } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::CbAtrdPropertiesChange(TObject *Sender) { TItsAtrd *pObj = (TItsAtrd*)CbAtrd->Properties->Items->Objects[CbAtrd->ItemIndex]; if (!pObj) return; FAtrdId = pObj->ATRD_ID; FAtrdNm = pObj->ATRD_NM; CbIfsc->Properties->Items->Clear(); FOR_STL(TItsAtrdRoad*, pAtrdRoad, pObj->FRoads) { TItsRoad *pRoad = ItsRoadManager->FLists.Find(pAtrdRoad->ROAD_ID); if (!pRoad) continue; std::map::iterator itPos; for(itPos = pRoad->FIfscs.begin(); itPos != pRoad->FIfscs.end(); ++itPos) { String sIfscId = itPos->second; TItsIfsc *pIfsc = ItsIfscManager->FLists.Find(sIfscId); if (!pIfsc) continue; CbIfsc->Properties->Items->AddObject(" [" + pIfsc->IFSC_ID + "] " + pIfsc->STRT_NM + " ¡æ " + pIfsc->END_NM, (TObject*)pIfsc); } } CbIfsc->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TTAS0050M::CbAtrd1PropertiesChange(TObject *Sender) { TItsAtrd *pObj = (TItsAtrd*)CbAtrd1->Properties->Items->Objects[CbAtrd1->ItemIndex]; if (!pObj) return; FAtrdId1 = pObj->ATRD_ID; FAtrdNm1 = pObj->ATRD_NM; CbIfsc1->Properties->Items->Clear(); FOR_STL(TItsAtrdRoad*, pAtrdRoad, pObj->FRoads) { TItsRoad *pRoad = ItsRoadManager->FLists.Find(pAtrdRoad->ROAD_ID); if (!pRoad) continue; std::map::iterator itPos; for(itPos = pRoad->FIfscs.begin(); itPos != pRoad->FIfscs.end(); ++itPos) { String sIfscId = itPos->second; TItsIfsc *pIfsc = ItsIfscManager->FLists.Find(sIfscId); if (!pIfsc) continue; CbIfsc1->Properties->Items->AddObject(" [" + pIfsc->IFSC_ID + "] " + pIfsc->STRT_NM + " ¡æ " + pIfsc->END_NM, (TObject*)pIfsc); } } CbIfsc1->ItemIndex = 0; } //---------------------------------------------------------------------------