//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSDbF.h" #include "AppGlobalF.h" #include "WindowMsgF.h" #pragma hdrstop #include "IDB0050MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxCalc" #pragma link "cxCheckBox" #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 "cxLabel" #pragma link "cxStyles" #pragma link "dxSkinscxPCPainter" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "FRAME_LinkListF" #pragma link "FRAME_ServiceLinkListF" #pragma link "cxMaskEdit" #pragma link "cxSpinEdit" #pragma link "cxTextEdit" #pragma link "cxRadioGroup" #pragma link "FRAME_RoadListF" #pragma resource "*.dfm" TIDB0050M *IDB0050M = NULL; //--------------------------------------------------------------------------- __fastcall TIDB0050M::TIDB0050M(TComponent* Owner) : TForm(Owner) { int nWidth = PnlRight->Width; int nClientW = ClientWidth; ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); if (ClientWidth < nClientW) ClientWidth = nClientW; PnlRight->Width = nWidth; FTitle = "°¡°øÆÄ¶ó¹ÌÅÍ °ü¸®"; TvList0->OptionsView->NoDataToDisplayInfoText = ""; TvList1->OptionsView->NoDataToDisplayInfoText = ""; TvList2->OptionsView->NoDataToDisplayInfoText = ""; TvList3->OptionsView->NoDataToDisplayInfoText = ""; FRAMELinkList1->TvList->OptionsData->Editing = true; FRAMEServiceLinkList1->TvList->OptionsData->Editing = true; FRAMERoadList1->TvList->OptionsData->Editing = true; FRAMELinkList1->ColumnSel->Visible = true; FRAMEServiceLinkList1->ColumnSel->Visible = true; FRAMERoadList1->ColumnSel->Visible = true; #if 0 if (!MyItsColSysManager) { MyItsColSysManager = new TItsColSysManager(); } #endif FInit = false; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TIDB0050M::CommClose() { try { #if 0 if (MyItsColSysManager) { delete MyItsColSysManager; MyItsColSysManager = NULL; } #endif CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TIDB0050M::FormInit() { PgLink->Properties->ActivePage = cxTabSheet1; ADOQry->Connection = ITSDb_GetConnection(); //MyItsColSysManager->LoadFromDb(); LoadCollectSysInfo(); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::LoadCollectSysInfo() { CMM_ClearGridTableView(TvList0); CMM_ClearGridTableView(TvList1); CMM_ClearGridTableView(TvList2); CMM_ClearGridTableView(TvList3); TcxDataController *pGDC0 = TvList0->DataController; TcxDataController *pGDC2 = TvList2->DataController; TcxDataController *pGDC3 = TvList3->DataController; int nRow0 = 0; int nRow2 = 0; int nRow3 = 0; try { TvList0->BeginUpdate(); TvList1->BeginUpdate(); TvList2->BeginUpdate(); TvList3->BeginUpdate(); //FOR_STL(TItsColSys*, pObj, MyItsColSysManager->FLists) FOR_STL(TItsColSys*, pObj, ItsColSysManager->FLists) { if (pObj->USE_YN == "N") continue; nRow2 = pGDC2->AppendRecord(); pGDC2->Values[nRow2][ColumnA01->Index] = pObj->CLCT_SYST_NM; pGDC2->Values[nRow2][ColumnA02->Index] = pObj->CLCT_SYST_CD; nRow3 = pGDC3->AppendRecord(); pGDC3->Values[nRow3][ColumnC01->Index] = pObj->CLCT_SYST_NM; pGDC3->Values[nRow3][ColumnC02->Index] = pObj->CLCT_SYST_CD; pGDC3->Values[nRow3][ColumnC03->Index] = 10; nRow0 = pGDC0->AppendRecord(); pGDC0->Values[nRow0][ColumnD01->Index] = pObj->CLCT_SYST_NM; pGDC0->Values[nRow0][ColumnD02->Index] = pObj->CLCT_SYST_CD; pGDC0->Values[nRow0][ColumnD03->Index] = (nRow0+1); pGDC0->Values[nRow0][ColumnD04->Index] = nRow3; } } __finally { TvList0->EndUpdate(); TvList1->EndUpdate(); TvList2->EndUpdate(); TvList3->EndUpdate(); } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIDB0050M::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIDB0050M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; BtnSearchClick((TObject*)BtnSearch); } //--------------------------------------------------------------------------- /* * Search ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIDB0050M::BtnSearchClick(TObject *Sender) { RefreshData(); } //--------------------------------------------------------------------------- /* * Refresh Data Event Function * arguments * * return * void */ void __fastcall TIDB0050M::RefreshData() { FRAMELinkList1->UpdateList(); FRAMEServiceLinkList1->UpdateList(); FRAMERoadList1->UpdateList(); FInit = true; } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TIDB0050M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); IDB0050M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkFMT0Click(TObject *Sender) { ChkFMT1->Checked = !ChkFMT0->Checked; ChangeFMT(ChkFMT1->Checked); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkFMT1Click(TObject *Sender) { ChkFMT0->Checked = !ChkFMT1->Checked; ChangeFMT(ChkFMT1->Checked); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChangeFMT(bool AUse) { if (AUse) { GrpFMT1->Color = clSkyBlue; GrpFMT1->Enabled = true; } else { GrpFMT1->Color = clSilver; GrpFMT1->Enabled = false; } } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkFST1Click(TObject *Sender) { ChkFST2->Checked = !ChkFST1->Checked; ChangeFST(ChkFST1->Checked); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkFST2Click(TObject *Sender) { ChkFST1->Checked = !ChkFST2->Checked; ChangeFST(ChkFST1->Checked); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChangeFST(bool AUse) { if (AUse) { GrpFST1->Color = clSkyBlue; GrpFST1->Enabled = true; GrpFST2->Color = clSilver; GrpFST2->Enabled = false; } else { GrpFST1->Color = clSilver; GrpFST1->Enabled = false; GrpFST2->Color = clSkyBlue; GrpFST2->Enabled = true; } } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkMCA0Click(TObject *Sender) { //»ç¿ë¾ÈÇÔ if (ChkMCA0->Checked == false) ChkMCA0->Checked = true; else ChangeMCA(0); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkMCA2Click(TObject *Sender) { //ÆÐÅÏÀû¿ë if (ChkMCA2->Checked == false) ChkMCA2->Checked = true; else ChangeMCA(2); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkMCA1Click(TObject *Sender) { //´Ü±â(15ºÐÀ̵¿Æò±Õ)/Àå±â(ÆÐÅÏ) if (ChkMCA1->Checked == false) ChkMCA1->Checked = true; else ChangeMCA(1); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChangeMCA(int AType) { TNotifyEvent OnChkMCA0 = ChkMCA0->OnClick; TNotifyEvent OnChkMCA1 = ChkMCA1->OnClick; TNotifyEvent OnChkMCA2 = ChkMCA2->OnClick; ChkMCA0->OnClick = NULL; ChkMCA1->OnClick = NULL; ChkMCA2->OnClick = NULL; if (AType == 1) { GrpMCA1->Color = clSkyBlue; GrpMCA1->Enabled = true; ChkMCA0->Checked = false; ChkMCA2->Checked = false; } else { GrpMCA1->Color = clSilver; GrpMCA1->Enabled = false; if (AType == 0) { ChkMCA1->Checked = false; ChkMCA2->Checked = false; } else { ChkMCA0->Checked = false; ChkMCA1->Checked = false; } } ChkMCA0->OnClick = OnChkMCA0; ChkMCA1->OnClick = OnChkMCA1; ChkMCA2->OnClick = OnChkMCA2; } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkSMT0Click(TObject *Sender) { //»ç¿ë¾ÈÇÔ if (ChkSMT0->Checked == false) ChkSMT0->Checked = true; else ChangeSMT(0); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkSMT1Click(TObject *Sender) { //¹üÀ§°ª »ç¿ë if (ChkSMT1->Checked == false) ChkSMT1->Checked = true; else ChangeSMT(1); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChkSMT2Click(TObject *Sender) { //15ºÐ À̵¿Æò±Õ if (ChkSMT2->Checked == false) ChkSMT2->Checked = true; else ChangeSMT(2); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::ChangeSMT(int AType) { TNotifyEvent OnChkSMT0 = ChkSMT0->OnClick; TNotifyEvent OnChkSMT1 = ChkSMT1->OnClick; TNotifyEvent OnChkSMT2 = ChkSMT2->OnClick; ChkSMT0->OnClick = NULL; ChkSMT1->OnClick = NULL; ChkSMT2->OnClick = NULL; if (AType == 0) { GrpSMT1->Color = clSilver; GrpSMT1->Enabled = false; GrpSMT2->Color = clSilver; GrpSMT2->Enabled = false; ChkSMT1->Checked = false; ChkSMT2->Checked = false; } else if (AType == 1) { GrpSMT1->Color = clSkyBlue; GrpSMT1->Enabled = true; GrpSMT2->Color = clSilver; GrpSMT2->Enabled = false; ChkSMT0->Checked = false; ChkSMT2->Checked = false; } else { GrpSMT1->Color = clSilver; GrpSMT1->Enabled = false; GrpSMT2->Color = clSkyBlue; GrpSMT2->Enabled = true; ChkSMT0->Checked = false; ChkSMT1->Checked = false; } ChkSMT0->OnClick = OnChkSMT0; ChkSMT1->OnClick = OnChkSMT1; ChkSMT2->OnClick = OnChkSMT2; } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::BtnListAddClick(TObject *Sender) { int nSelRows = TvList1->Controller->SelectedRowCount; if (nSelRows <= 0) { return; } try { TcxGridDataController *pGDC = (TcxGridDataController *)TvList2->DataController; TvList1->BeginUpdate(); TvList2->BeginUpdate(); try { for (int ii = 0; ii < nSelRows; ii++) { int nSelIdx = TvList1->Controller->SelectedRows[ii]->RecordIndex; int nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColumnB01->Index] = TvList1->DataController->Values[nSelIdx][ColumnA01->Index]; pGDC->Values[nRow][ColumnB02->Index] = TvList1->DataController->Values[nSelIdx][ColumnA02->Index]; } TvList1->Controller->DeleteSelection(); } catch(...) { } } __finally { TvList1->EndUpdate(); TvList2->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::BtnListDeleteClick(TObject *Sender) { int nSelRows = TvList2->Controller->SelectedRowCount; if (nSelRows <= 0) { return; } try { TcxGridDataController *pGDC = (TcxGridDataController *)TvList1->DataController; TvList1->BeginUpdate(); TvList2->BeginUpdate(); try { for (int ii = 0; ii < nSelRows; ii++) { int nSelIdx = TvList2->Controller->SelectedRows[ii]->RecordIndex; int nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColumnA01->Index] = TvList2->DataController->Values[nSelIdx][ColumnB01->Index]; pGDC->Values[nRow][ColumnA02->Index] = TvList2->DataController->Values[nSelIdx][ColumnB02->Index]; } TvList2->Controller->DeleteSelection(); } catch(...) { } } __finally { TvList1->EndUpdate(); TvList2->EndUpdate(); } } //--------------------------------------------------------------------------- bool __fastcall TIDB0050M::CheckParameterValue() { //ÇÊÅ͸µ ÆÄ¶ó¹ÌÅÍ FFMTVolMin = FFMTVolMax = FFMTSpdMin = FFMTSpdMax = 0; if (ChkFMT0->Checked) { FFMT = "FMT0"; //»ç¿ë¾ÈÇÔ } else if (ChkFMT1->Checked) { FFMT = "FMT1"; //¹üÀ§°ª»ç¿ë FFMTVolMin = SeVolMin->Value; FFMTVolMax = SeVolMax->Value; FFMTSpdMin = SeSpdMin->Value; FFMTSpdMax = SeSpdMax->Value; if (FFMTVolMin >= FFMTVolMax) { Application->MessageBox(L"ÇÊÅ͸µ ÆÄ¶ó¹ÌÅÍ - ¹üÀ§°ª »ç¿ë.\r\n±³Åë·® ÃÖÀú°ªÀº ±³Åë·® ÃÖ´ë°ª ¹Ì¸¸À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } if (FFMTSpdMin >= FFMTSpdMax) { Application->MessageBox(L"ÇÊÅ͸µ ÆÄ¶ó¹ÌÅÍ - ¹üÀ§°ª »ç¿ë.\r\¼Óµµ ÃÖÀú°ªÀº ¼Óµµ ÃÖ´ë°ª ¹Ì¸¸À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } else return false; //Ç»Àü ÆÄ¶ó¹ÌÅÍ if (ChkFST1->Checked) { FFST = "FST1"; //¿ì¼±¼øÀ§ #if 0 if (TvList2->DataController->RecordCount == 0) { Application->MessageBox(L"Ç»Àü ÆÄ¶ó¹ÌÅÍ - ¿ì¼±¼øÀ§.\r\¿ì¼±¼øÀ§ Ç׸ñÀ» ¼±ÅÃÇÏ¼Å¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } #else int nSeq = 0; int nTot = 0; try { TcxGridDataController *pGDC = TvList0->DataController; TvList0->BeginUpdate(); for(int ii = 0; ii < pGDC->RecordCount; ii++) { int nTmp = pGDC->Values[ii][ColumnD03->Index]; nSeq += nTmp; nTot += (ii+1); } } __finally { TvList0->EndUpdate(); } if (nSeq != nTot) { Application->MessageBox(L"Ç»Àü ÆÄ¶ó¹ÌÅÍ - ¿ì¼±¼øÀ§.\r\¿ì¼±¼øÀ§´Â ¼ø¼­¿¡ ¸Â°Ô °¢ÀÚ ´Ù¸¥°ªÀ» °¡Á®¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } #endif } else if (ChkFST2->Checked) { FFST = "FST2"; //°¡ÁßÄ¡ int dFST = 0; try { TcxGridDataController *pGDC = TvList3->DataController; TvList3->BeginUpdate(); for(int ii = 0; ii < pGDC->RecordCount; ii++) { int fTmp = pGDC->Values[ii][ColumnC03->Index]; dFST += fTmp; } } __finally { TvList3->EndUpdate(); } if (dFST != 100) { Application->MessageBox(L"Ç»Àü ÆÄ¶ó¹ÌÅÍ - °¡ÁßÄ¡.\r\°¡ÁßÄ¡ÀÇ ÀüüÇÕÀº 100 À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } else return false; //º¸Á¤ ÆÄ¶ó¹ÌÅÍ FMCAVal3 = FMCAVal2 = FMCAVal1 = 0; if (ChkMCA0->Checked) { FMCA = "MCA0"; //»ç¿ë¾ÈÇÔ } else if (ChkMCA1->Checked) { FMCA = "MCA1"; //´Ü±â(15ºÐÀ̵¿Æò±Õ)/Àå±â(ÆÐÅÏ) FMCAVal3 = SeMCAVal3->Value; FMCAVal2 = SeMCAVal2->Value; FMCAVal1 = SeMCAVal1->Value; int nTotVal = (FMCAVal3+FMCAVal2+FMCAVal1); if (nTotVal != 100) { Application->MessageBox(L"º¸Á¤ ÆÄ¶ó¹ÌÅÍ - ´Ü±â(15ºÐÀ̵¿Æò±Õ)/Àå±â(ÆÐÅÏ).\r\Æò±Õ °¡ÁßÄ¡ÀÇ ÀüüÇÕÀº 100 À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } else if (ChkMCA2->Checked) { FMCA = "MCA2"; //ÆÐÅÏÀû¿ë } else return false; //ÆòȰȭ ÆÄ¶ó¹ÌÅÍ FSMTSpdMin = FSMTSpdMax = FSMTVal2 = FSMTVal1 = FSMTValC = 0; if (ChkSMT0->Checked) { FSMT = "SMT0"; //»ç¿ë¾ÈÇÔ } else if (ChkSMT1->Checked) { FSMT = "SMT1"; //ÆÐÅÏÀû¿ë FSMTSpdMin = SeSMTValMin->Value; FSMTSpdMax = SeSMTValMax->Value; if (FFMTSpdMin >= FFMTSpdMax) { Application->MessageBox(L"ÆòȰȭ ÆÄ¶ó¹ÌÅÍ - ÆíÂ÷Á¦ÇÑ.\r\ÃÖÀú¼Óµµ°è¼ö°ªÀº ÃÖ´ë¼Óµµ°è¼ö°ª ¹Ì¸¸À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } else if (ChkSMT2->Checked) { FSMT = "SMT2"; //15ºÐ À̵¿Æò±Õ FSMTVal2 = SeSMTVal2->Value; FSMTVal1 = SeSMTVal1->Value; FSMTValC = SeSMTValC->Value; int nTotVal = (FSMTVal2+FSMTVal1+FSMTValC); if (nTotVal != 100) { Application->MessageBox(L"ÆòȰȭ ÆÄ¶ó¹ÌÅÍ - 15ºÐ À̵¿Æò±Õ.\r\15ºÐ À̵¿Æò±Õ°ª °¡ÁßÄ¡ÀÇ ÀüüÇÕÀº 100 À̾î¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } else return false; return true; } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::BtnApplyAllClick(TObject *Sender) { //Àüü±¸°£Àû¿ë if (!CheckParameterValue()) { return; } String sMsg; sMsg = "Àüü±¸°£¿¡ ´ëÇÏ¿© ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ ¼³Á¤ÇÕ´Ï´Ù. \r\n" "¼±ÅÃÇÑ ±¸°£¿¡ ´ëÇÏ¿© ÀÛ¾÷À» ¿øÇϽô °æ¿ì [¼±Åñ¸°£ Àû¿ë]À» ÇϽʽÿä.\r\n" "Àüü±¸°£¿¡ ´ëÇÏ¿© ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ Àû¿ëÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; if (PgLink->ActivePageIndex == 0) { ModifyLinkParam(1, NULL); } else if (PgLink->ActivePageIndex == 1) { ModifyLinkParam(2, NULL); } else { ModifyLinkParam(3, NULL); } POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_07, 0); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::BtnApplySelClick(TObject *Sender) { //¼±Åñ¸°£Àû¿ë if (!CheckParameterValue()) { return; } String sMsg; sMsg = "¼±ÅÃÇÑ ±¸°£¿¡ ´ëÇÏ¿© ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ ¼³Á¤ÇÕ´Ï´Ù. \r\n" "Àüü ±¸°£¿¡ ´ëÇÏ¿© ÀÛ¾÷À» ¿øÇϽô °æ¿ì [Àüü±¸°£ Àû¿ë]À» ÇϽʽÿä.\r\n" "¼±ÅÃÇÑ ±¸°£¿¡ ´ëÇÏ¿© ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ Àû¿ëÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; int nSelCnt = 0; TStringList *pStringList = NULL; try { pStringList = new TStringList(); if (PgLink->ActivePageIndex == 0) { //·¹º§1 ¸µÅ© nSelCnt = FRAMELinkList1->GetSelLinkIds(pStringList); if (nSelCnt <= 0) { Application->MessageBox(L"¸ñ·Ï¿¡¼­ ±¸°£À» ¼±ÅÃÇÏ¼Å¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #if 0 if (nSelCnt > 500) { Application->MessageBox(L"¼±ÅÃÇÑ ±¸°£ÀÌ ³Ê¹« ¸¹¾Æ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù[ÃÖ´ë 500°³].", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #endif ModifyLinkParam(1, pStringList); } else if (PgLink->ActivePageIndex == 1) { //¼­ºñ½º ¸µÅ©(·¹º§2) nSelCnt = FRAMEServiceLinkList1->GetSelLinkIds(pStringList); if (nSelCnt <= 0) { Application->MessageBox(L"¸ñ·Ï¿¡¼­ ±¸°£À» ¼±ÅÃÇÏ¼Å¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #if 0 if (nSelCnt > 500) { Application->MessageBox(L"¼±ÅÃÇÑ ±¸°£ÀÌ ³Ê¹« ¸¹¾Æ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù[ÃÖ´ë 500°³].", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #endif ModifyLinkParam(2, pStringList); } else { //µµ·Î(·¹º§3) nSelCnt = FRAMERoadList1->GetSelLinkIds(pStringList); if (nSelCnt <= 0) { Application->MessageBox(L"¸ñ·Ï¿¡¼­ ±¸°£À» ¼±ÅÃÇÏ¼Å¾ß ÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #if 0 if (nSelCnt > 500) { Application->MessageBox(L"¼±ÅÃÇÑ ±¸°£ÀÌ ³Ê¹« ¸¹¾Æ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù[ÃÖ´ë 500°³].", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return ; } #endif ModifyLinkParam(3, pStringList); } } __finally { if (pStringList) delete pStringList; } POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_07, 0); } //--------------------------------------------------------------------------- bool __fastcall TIDB0050M::ModifyLinkParam(int ALevel, TStringList *AStringList) { String sQry; String sWhere = ""; String sIdList = ""; if (AStringList) { if (AStringList->Count > 0) { for (int ii = 0; ii < AStringList->Count; ii++) { sIdList += "'" + AStringList->Strings[ii] +"',"; } } if (AStringList->Count > 0) sIdList.Delete(sIdList.Length(), 1); } if (!sIdList.IsEmpty()) { switch(ALevel) { case 1: sWhere = "LINK_ID IN(" + sIdList + ") \r\n"; break; case 2: sWhere = "LINK_ID IN((SELECT LINK_ID FROM TB_IFSC_LINK_RLTN WHERE IFSC_ID IN( " + sIdList + "))) \r\n"; break; case 3: sWhere = "LINK_ID IN (SELECT LINK_ID \r\n" " FROM TB_IFSC_LINK_RLTN \r\n" " WHERE IFSC_ID IN((SELECT IFSC_ID \r\n" " FROM TB_ROAD_IFSC_RLTN \r\n" " WHERE ROAD_ID IN( " + sIdList + " )))) \r\n"; break; default: return false; } } String s15MinPtrn = Chk15MinPtrn->Checked ? "Y" : "N"; int nMissCycle = SeMissCycle->Value; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_GetConnection()->BeginTrans(); // TB_LINK_PARA_STUP sQry = "UPDATE TB_LINK_PARA_STUP \r\n" " SET FLTR_MTHD_CD = :p01, \r\n" " FUSN_MTHD_CD = :p02, \r\n" " ADJS_MTHD_CD = :p03, \r\n" " SMTH_MTHD_CD = :p04 \r\n"; if (!sWhere.IsEmpty()) { sQry += " WHERE " + sWhere; } ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FFMT); ITSDb_SQLBind(pADO, "p02", FFST); ITSDb_SQLBind(pADO, "p03", FMCA); ITSDb_SQLBind(pADO, "p04", FSMT); ITSDb_SQLExec(pADO); sQry = "UPDATE TB_LINK_PARA_DETL \r\n" " SET FLTR_MIN_TFVL = :p01, \r\n" " FLTR_MAX_TFVL = :p02, \r\n" " FLTR_LWST_SPED = :p03, \r\n" " FLTR_HGHS_SPED = :p04, \r\n" " ADJS_WGHT_AVRG_PRE_1CYCL = :p05, \r\n" " ADJS_WGHT_AVRG_PRE_2CYCL = :p06, \r\n" " ADJS_WGHT_AVRG_PRE_3CYCL = :p07, \r\n" " ADJS_15M_PTRN_APLY_YN = :p08, \r\n" " ADJS_SHTR_MISS_DECS_CYCL = :p09, \r\n" " SMTH_LWST_SPED_FCTR = :p10, \r\n" " SMTH_HGHS_SPED_FCTR = :p11, \r\n" " SMTH_WGHT_AVRG_PRST = :p12, \r\n" " SMTH_WGHT_AVRG_PRE_1CYCL = :p13, \r\n" " SMTH_WGHT_AVRG_PRE_2CYCL = :p14 \r\n"; if (!sWhere.IsEmpty()) { sQry += " WHERE " + sWhere; } ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FFMTVolMin); ITSDb_SQLBind(pADO, "p02", FFMTVolMax); ITSDb_SQLBind(pADO, "p03", FFMTSpdMin); ITSDb_SQLBind(pADO, "p04", FFMTSpdMax); ITSDb_SQLBind(pADO, "p05", FMCAVal1/100); ITSDb_SQLBind(pADO, "p06", FMCAVal2/100); ITSDb_SQLBind(pADO, "p07", FMCAVal3/100); ITSDb_SQLBind(pADO, "p08", s15MinPtrn); ITSDb_SQLBind(pADO, "p09", nMissCycle); ITSDb_SQLBind(pADO, "p10", FSMTSpdMin); ITSDb_SQLBind(pADO, "p11", FSMTSpdMax); ITSDb_SQLBind(pADO, "p12", FSMTValC/100); ITSDb_SQLBind(pADO, "p13", FSMTVal1/100); ITSDb_SQLBind(pADO, "p14", FSMTVal2/100); ITSDb_SQLExec(pADO); sQry = "UPDATE TB_LINK_PARA_CLCT_SYST \r\n" " SET FUSN_PRRT = :p02, \r\n" " FUSN_WGHT = :p03 \r\n" " WHERE CLCT_SYST_CD = :p01 \r\n"; if (!sWhere.IsEmpty()) { sQry += " AND " + sWhere; } ITSDb_SQLText(pADO, sQry); try { TcxGridDataController *pGDC = TvList0->DataController; TvList0->BeginUpdate(); for(int ii = 0; ii < pGDC->RecordCount; ii++) { String sCode = pGDC->Values[ii][ColumnD02->Index]; int nOrdr = pGDC->Values[ii][ColumnD03->Index]; int nIndx = pGDC->Values[ii][ColumnD04->Index]; int nWigt = TvList3->DataController->Values[nIndx][ColumnC03->Index]; double dWeight = nWigt/100.; ITSDb_SQLBind(pADO, "p01", sCode); ITSDb_SQLBind(pADO, "p02", nOrdr); ITSDb_SQLBind(pADO, "p03", dWeight); ITSDb_SQLExec(pADO); } } __finally { TvList0->EndUpdate(); } ITSDb_GetConnection()->CommitTrans(); Application->MessageBox(L"ÆÄ¶ó¹ÌÅÍ Á¤º¸¸¦ ¼³Á¤ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage(String(exception.ClassName()) + exception.Message); } catch(...) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage("µ¥ÀÌÅÍ ÀÛ¾÷ Áß¿¡ ¾Ë¼ö¾ø´Â DB ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::FRAMELinkList1TvListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!FInit) return; if (!AFocusedRecord) return; if (FRAMELinkList1->TvList->ViewData->RecordCount <= 0) return; int nIndex = FRAMELinkList1->TvList->DataController->FocusedRecordIndex; if (nIndex < 0) return; String sLinkId = VarToStr(FRAMELinkList1->TvList->DataController->Values[nIndex][FRAMELinkList1->Column01->Index]); DisplayLinkParam(1, sLinkId); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::FRAMEServiceLinkList1TvListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!FInit) return; if (!AFocusedRecord) return; if (FRAMEServiceLinkList1->TvList->ViewData->RecordCount <= 0) return; int nIndex = FRAMEServiceLinkList1->TvList->DataController->FocusedRecordIndex; if (nIndex < 0) return; String sLinkId = VarToStr(FRAMEServiceLinkList1->TvList->DataController->Values[nIndex][FRAMEServiceLinkList1->Column01->Index]); DisplayLinkParam(2, sLinkId); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::FRAMERoadList1TvListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!FInit) return; if (!AFocusedRecord) return; if (FRAMERoadList1->TvList->ViewData->RecordCount <= 0) return; int nIndex = FRAMERoadList1->TvList->DataController->FocusedRecordIndex; if (nIndex < 0) return; String sLinkId = VarToStr(FRAMERoadList1->TvList->DataController->Values[nIndex][FRAMERoadList1->Column01->Index]); DisplayLinkParam(3, sLinkId); } //--------------------------------------------------------------------------- void __fastcall TIDB0050M::DisplayLinkParam(int ALevel, String ALinkId) { if (ALevel != 1) return; TSqlCursor sqlCursor; String sQry; TADOQuery *pADO = ADOQry; try { try { sQry = "SELECT FLTR_MTHD_CD, \r\n" " FUSN_MTHD_CD, \r\n" " ADJS_MTHD_CD, \r\n" " SMTH_MTHD_CD \r\n" " FROM TB_LINK_PARA_STUP \r\n" " WHERE LINK_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ALinkId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { String sFMT = pADO->FieldByName("FLTR_MTHD_CD")->AsString; String sFST = pADO->FieldByName("FUSN_MTHD_CD")->AsString; String sMCA = pADO->FieldByName("ADJS_MTHD_CD")->AsString; String sSMT = pADO->FieldByName("SMTH_MTHD_CD")->AsString; if (sFMT == "FMT0") { if (!ChkFMT0->Checked) ChkFMT0->Checked = true; } else { if (!ChkFMT1->Checked) ChkFMT1->Checked = true; } if (sFST == "FST1") { if (!ChkFST1->Checked) ChkFST1->Checked = true; } else { if (!ChkFST2->Checked) ChkFST2->Checked = true; } if (sMCA == "MCA0") { if (!ChkMCA0->Checked) ChkMCA0->Checked = true; } else if (sMCA == "MCA1") { if (!ChkMCA1->Checked) ChkMCA1->Checked = true; } else { if (!ChkMCA2->Checked) ChkMCA2->Checked = true; } if (sSMT == "SMT0") { if (!ChkSMT0->Checked) ChkSMT0->Checked = true; } else if (sSMT == "SMT1") { if (!ChkSMT1->Checked) ChkSMT1->Checked = true; } else { if (!ChkSMT2->Checked) ChkSMT2->Checked = true; } } sQry = "SELECT FLTR_MIN_TFVL, \r\n" " FLTR_MAX_TFVL, \r\n" " FLTR_LWST_SPED, \r\n" " FLTR_HGHS_SPED, \r\n" " ADJS_WGHT_AVRG_PRE_1CYCL, \r\n" " ADJS_WGHT_AVRG_PRE_2CYCL, \r\n" " ADJS_WGHT_AVRG_PRE_3CYCL, \r\n" " ADJS_15M_PTRN_APLY_YN, \r\n" " ADJS_SHTR_MISS_DECS_CYCL, \r\n" " SMTH_LWST_SPED_FCTR, \r\n" " SMTH_HGHS_SPED_FCTR, \r\n" " SMTH_WGHT_AVRG_PRST, \r\n" " SMTH_WGHT_AVRG_PRE_1CYCL, \r\n" " SMTH_WGHT_AVRG_PRE_2CYCL \r\n" " FROM TB_LINK_PARA_DETL \r\n" " WHERE LINK_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ALinkId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { SeVolMin->Value = pADO->FieldByName("FLTR_MIN_TFVL")->AsInteger; SeVolMax->Value = pADO->FieldByName("FLTR_MAX_TFVL")->AsInteger; SeSpdMin->Value = pADO->FieldByName("FLTR_LWST_SPED")->AsInteger; SeSpdMax->Value = pADO->FieldByName("FLTR_HGHS_SPED")->AsInteger; SeMCAVal1->Value = pADO->FieldByName("ADJS_WGHT_AVRG_PRE_1CYCL")->AsFloat * 100; SeMCAVal2->Value = pADO->FieldByName("ADJS_WGHT_AVRG_PRE_2CYCL")->AsFloat * 100; SeMCAVal3->Value = pADO->FieldByName("ADJS_WGHT_AVRG_PRE_3CYCL")->AsFloat * 100; String sPtrnYn = pADO->FieldByName("ADJS_15M_PTRN_APLY_YN")->AsString; Chk15MinPtrn->Checked = sPtrnYn == "N" ? false : true; SeMissCycle->Value = pADO->FieldByName("ADJS_SHTR_MISS_DECS_CYCL")->AsInteger; SeSMTValMin->Value = pADO->FieldByName("SMTH_LWST_SPED_FCTR")->AsFloat;// * 100; SeSMTValMax->Value = pADO->FieldByName("SMTH_HGHS_SPED_FCTR")->AsFloat;// * 100; SeSMTValC->Value = pADO->FieldByName("SMTH_WGHT_AVRG_PRST")->AsFloat * 100; SeSMTVal1->Value = pADO->FieldByName("SMTH_WGHT_AVRG_PRE_1CYCL")->AsFloat * 100; SeSMTVal2->Value = pADO->FieldByName("SMTH_WGHT_AVRG_PRE_2CYCL")->AsFloat * 100; } sQry = "SELECT FUSN_PRRT, \r\n" " FUSN_WGHT, \r\n" " CLCT_SYST_CD \r\n" " FROM TB_LINK_PARA_CLCT_SYST \r\n" " WHERE LINK_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ALinkId); ITSDb_SQLOpen(pADO); try { int ii, nIndx; TcxGridDataController *pGDC = TvList0->DataController; TvList0->BeginUpdate(); TvList3->BeginUpdate(); for( ; !pADO->Eof; pADO->Next()) { String sCLCT_SYST_CD = pADO->FieldByName("CLCT_SYST_CD")->AsString; int nFUSN_PRRT = pADO->FieldByName("FUSN_PRRT")->AsInteger; double dFUSN_WGHT = pADO->FieldByName("FUSN_WGHT")->AsFloat * 100; for(ii = 0; ii < pGDC->RecordCount; ii++) { String sCode = pGDC->Values[ii][ColumnD02->Index]; if (sCode == sCLCT_SYST_CD) { pGDC->Values[ii][ColumnD03->Index] = nFUSN_PRRT; nIndx = pGDC->Values[ii][ColumnD04->Index]; TvList3->DataController->Values[nIndx][ColumnC03->Index] = dFUSN_WGHT; break; } } } } __finally { TvList0->EndUpdate(); TvList3->EndUpdate(); } } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage(String(exception.ClassName()) + exception.Message); } catch(...) { ITSDb_GetConnection()->RollbackTrans(); ShowMessage("µ¥ÀÌÅÍ ÀÛ¾÷ Áß¿¡ ¾Ë¼ö¾ø´Â DB ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } __finally { pADO->Close(); } } //---------------------------------------------------------------------------