//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSVmsIfscF.h" #include "ITSLangTransF.h" #include "CDSFontF.h" #include "CDSAtmpF.h" #include "CDSVmsFormF.h" #include "CDSVmsIfscF.h" #include "CDSVmsDsplCndtF.h" #pragma hdrstop #include "FrmVmsMsgScheMngrF.h" #include "VMSM610MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalendar" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxTextEdit" #pragma link "cxTimeEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinCaramel" #pragma link "dxSkinCoffee" #pragma link "dxSkinDarkRoom" #pragma link "dxSkinDarkSide" #pragma link "dxSkinFoggy" #pragma link "dxSkinGlassOceans" #pragma link "dxSkiniMaginary" #pragma link "dxSkinLilian" #pragma link "dxSkinLiquidSky" #pragma link "dxSkinLondonLiquidSky" #pragma link "dxSkinMcSkin" #pragma link "dxSkinMoneyTwins" #pragma link "dxSkinOffice2007Black" #pragma link "dxSkinOffice2007Blue" #pragma link "dxSkinOffice2007Green" #pragma link "dxSkinOffice2007Pink" #pragma link "dxSkinOffice2007Silver" #pragma link "dxSkinOffice2010Black" #pragma link "dxSkinOffice2010Blue" #pragma link "dxSkinOffice2010Silver" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "dxSkinSeven" #pragma link "dxSkinSharp" #pragma link "dxSkinSilver" #pragma link "dxSkinStardust" #pragma link "cxRadioGroup" #pragma link "cxClasses" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDBData" #pragma link "cxFilter" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridDBTableView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxStyles" #pragma link "cxCheckBox" #pragma link "cxImage" #pragma link "cxButtonEdit" #pragma link "cxBlobEdit" #pragma link "cxColorComboBox" #pragma link "cxCalc" #pragma link "VmsDesignerF" #pragma link "FRAME_VmsSchListF" #pragma link "cxHint" #pragma link "dxCustomHint" #pragma link "dxGDIPlusClasses" #pragma link "dxScreenTip" #pragma link "dxSkinsForm" #pragma resource "*.dfm" TFrmVmsMsgScheMngr *FrmVmsMsgScheMngr = NULL; //--------------------------------------------------------------------------- __fastcall TFrmVmsMsgScheMngr::TFrmVmsMsgScheMngr(TComponent* Owner) : TForm(Owner) { //CMM_SetFormPosition(g_AppCfg.bSaveForm); ITSSkin_Initialize(Application, g_AppCfg.sLang); ITSSkin_Caption(false); ITSSkin_Load(this); //CMM_LoadForm(g_sFormsDir, this); SetColorScheme(g_AppCfg.sSkinName); FUpdate= false; FTitle = Caption;//"VMS ÀÚµ¿ ½ºÄÉÁÙ °ü¸®"; FListSymb = new TList; EditMode = false; FSelVmsModlType = ""; FSelVmsCtlrId = ""; FVMS_SCH_TYPE = "B"; //±âº»½ºÄÉÁì FEN_DSPL_SCH_TYPE = enScheduleBase; PgSchedule->ActivePage = TsEdit; //GrpPreview->Height = 368; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::SetColorScheme(String ASkinName) { dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::InitTcxList(TcxGridTableView *AView) { AView->OptionsView->DataRowHeight = 0; AView->OptionsView->CellAutoHeight = true; AView->OptionsView->Indicator = false; AView->OptionsCustomize->ColumnMoving = false; AView->OptionsCustomize->ColumnSorting = false; AView->Columns[0]->Width = 40; AView->Columns[0]->Options->HorzSizing = false; AView->Columns[1]->Width = 330; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::CommClose() { try { if (m_pEdtDesigner) { delete m_pEdtDesigner; m_pEdtDesigner = NULL; } APP_DelVmsSizeCombo(CbSizeType); ClearSymbloList(); SAFE_DELETE(FListSymb); ITSSkin_Term(); //CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormCreate(TObject *Sender) { InitDbLoading(); m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm); FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) { m_pEdtDesigner->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL); } FOR_STL(TCDSBackColor*, pObj, CDSFontManager->FBackColors) { m_pEdtDesigner->InitBackColor(pObj->VMS_BACK_COLR_CD, (TColor)pObj->VMS_BACK_COLR_VAL); } FOR_STL(TCDSFontName*, pObj, CDSFontManager->FFontNames) { m_pEdtDesigner->InitFontName(pObj->VMS_FONT_NAME_CD, pObj->VMS_FONT_NAME_NM); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::InitDbLoading() { Application->ProcessMessages(); if (!VmsCtlrManager) { VmsCtlrManager = new TVmsCtlrManager(); } VmsCtlrManager->LoadVmsModlSize(); VmsCtlrManager->LoadFromDb(); if(!CDSFontManager) { CDSFontManager = new TCDSFontManager(); } CDSFontManager->LoadFontInfo(); if (!VmsIfscManager) { VmsIfscManager = new TVmsIfscManager(); } VmsIfscManager->LoadFromDb(); if (!VmsDsplCndtManager) { VmsDsplCndtManager = new TVmsDsplCndtManager(); } VmsDsplCndtManager->LoadFromDb(); LoadVmsFormDsplCndt(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormShow(TObject *Sender) { Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormInit() { TvVmsSche->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â VMS ½Ã³ª¸®¿À Á¤º¸°¡ ¾ø½À´Ï´Ù>"; TvSche->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â VMS ½Ã³ª¸®¿À ±¸¼º Á¤º¸°¡ ¾ø½À´Ï´Ù>"; TvForm->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â ¸Þ½ÃÁö Æû Á¤º¸°¡ ¾ø½À´Ï´Ù>"; //VMS»çÀÌÁî APP_FillVmsSizeType(CbSizeType, false); FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; RefreshData(); CbSizeType->ItemIndex = -1; CbSizeType->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); FrmVmsMsgScheMngr = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::ChangeEditMode(int AEdit) { bool bEnabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; //BtnCopyAdd->Enabled = false; //BtnCopyAdd212->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò";//"Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò";//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormClear(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; //BtnCopyAdd->Enabled = false; //BtnCopyAdd212->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý";//"ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý";//µ¥ÀÌÅÍ ÆíÁý"; //bEnabled = true; EditMode = false; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; //BtnCopyAdd->Enabled = false; //BtnCopyAdd212->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò";//"Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò";//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; //CbVms->Enabled = true; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; //BtnCopyAdd->Enabled = true; //BtnCopyAdd212->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý";//"ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý";//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; EditMode = false; } break; } if (AEdit == 0 || AEdit == 2) { } else { } GrpList->Enabled = !EditMode; PnlScnrEdit->Enabled = EditMode; //PnlFormInfo->Enabled = EditMode; //PnlObjProperty->Enabled = EditMode; //PnlFormObjCmd->Enabled = EditMode; //BtnReApply->Enabled = EditMode; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::ClearSymbloList() { FFormLists.Clear(); for(int ii = 0; ii < FListSymb->Count; ii++) { Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii]; delete bitmap; } FListSymb->Clear(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::CbSizeTypePropertiesChange(TObject *Sender) { // } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnSearchClick(TObject *Sender) { RefreshData(); EdFocus->SetFocus(); ChangeEditMode(1); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::ChangeEditFormPanel() { TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType); if (pVmsSizeType == NULL) return; FVmsTypeCd = pVmsSizeType->TypeCd; FVmsWidth = pVmsSizeType->Width; FVmsHeight = pVmsSizeType->Height; LockWindowUpdate(PnlPreview->Handle); PnlPreview->Width = FVmsWidth+4; PnlPreview->Height= FVmsHeight+4; ImgPreview->Align = alNone; ImgPreview->Picture->Bitmap->Width = FVmsWidth; ImgPreview->Picture->Bitmap->Height= FVmsHeight; APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack); ImgPreview->Align = alClient; LockWindowUpdate(0); PnlEdtBack->Width = FVmsWidth+4; PnlEdtBack->Height= FVmsHeight+4; m_pEdtDesigner->Clear(); m_pEdtDesigner->SizeType = FVmsTypeCd; m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight); m_pEdtDesigner->SetPos(0, 0); m_pEdtDesigner->BkColorCode = "0"; m_pEdtDesigner->EditMode = true; m_pEdtDesigner->Show(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::RefreshData() { FormClear(); FillVmsCombo(); ChangeEditFormPanel(); //LoadVmsFormList(FVmsTypeCd); //ChkAutoWidthPropertiesChange((TObject*)ChkAutoWidth); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FillVmsCombo() { TNotifyEvent evt = CbVms->Properties->OnChange; CbVms->Properties->OnChange = NULL; CbVms->Properties->Items->Clear(); FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { CbVms->Properties->Items->Add(" [" + pObj->VMS_CTLR_ID + "] " + pObj->VMS_NM); } CbVms->ItemIndex = -1; CbVms->Properties->OnChange = evt; CbVms->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::FormClear() { FSelIdx = -1; EdScnrId->Clear(); EdScnrNm->Clear(); CMM_ClearGridTableView(TvSche); CMM_ClearGridTableView(TvPreview); LockWindowUpdate(GrpPreview->Handle); APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack); LockWindowUpdate(0); GrpSchedule->Caption = "¢º VMS ½Ã³ª¸®¿À ¼³Á¤"; FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::DisplayInfo() { FormClear(); FSelIdx = CMM_GetRecordIndex(TvVmsSche); if (FSelIdx < 0) return; TcxDataController *pGDC = TvVmsSche->DataController; String sScnrId = VarToStr(pGDC->Values[FSelIdx][ColScnrId->Index]); String sScnrNm = VarToStr(pGDC->Values[FSelIdx][ColScnrNm->Index]); EdScnrId->Text = sScnrId; EdScnrNm->Text = sScnrNm; GrpSchedule->Caption = "¢º VMS ½Ã³ª¸®¿À ¼³Á¤ (" + sScnrId + ": " + sScnrNm + ")"; LoadVmsScenarionForm(FSelVmsCtlrId, sScnrId); ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnListAdd0Click(TObject *Sender) { String sScnrId = EdScnrId->Text; if (sScnrId.IsEmpty()) return; int nSelIdx = CMM_GetRecordIndex(TvVmsSche); if (nSelIdx < 0) return; TcxGridDataController *pDcFrm = TvForm->DataController; TcxGridDataController *pDcSch = TvSche->DataController; int nFormIdx = CMM_GetRecordIndex(TvForm); if (nFormIdx < 0) return; int nRowS = pDcSch->AppendRecord(); String VMS_SCNR_ID = sScnrId; int FORM_SN = nRowS+1; String VMS_FORM_ID = VarToStr(pDcFrm->Values[nFormIdx][ColFrm00->Index]); String TXT_FORM_APLY_VMS_SECT_ID = ""; String VMS_FORM_DSPL_CNDT_ID = ""; int DSPL_HR = VarToStr(pDcFrm->Values[nFormIdx][ColFrm03->Index]).ToIntDef(5); String VMS_MODL_KIND = VarToStr(pDcFrm->Values[nFormIdx][ColFrm08->Index]); String VMS_FORM_TYPE = VarToStr(pDcFrm->Values[nFormIdx][ColFrm07->Index]); String VMS_FORM_NM = VarToStr(pDcFrm->Values[nFormIdx][ColFrm02->Index]); String VMS_FORM_DSPL_CNDT_NM = ""; pDcSch->Values[nRowS][Col00->Index] = VMS_FORM_ID; pDcSch->Values[nRowS][Col01->Index] = pDcFrm->Values[nFormIdx][ColFrm01->Index]; pDcSch->Values[nRowS][Col02->Index] = VMS_FORM_NM; pDcSch->Values[nRowS][Col03->Index] = DSPL_HR; pDcSch->Values[nRowS][Col04->Index] = TXT_FORM_APLY_VMS_SECT_ID; pDcSch->Values[nRowS][Col05->Index] = VMS_FORM_DSPL_CNDT_ID; pDcSch->Values[nRowS][Col06->Index] = VMS_MODL_KIND; pDcSch->Values[nRowS][Col07->Index] = VMS_FORM_TYPE; pDcSch->Values[nRowS][ColDsplCndtId->Index] = VMS_FORM_DSPL_CNDT_ID; pDcSch->Values[nRowS][ColDsplCndtNm->Index] = VMS_FORM_DSPL_CNDT_NM; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnListDelete0Click(TObject *Sender) { TcxButton *pBtn = (TcxButton*)Sender; int nTag = pBtn->Tag; if (nTag >= eSchTp_max) return; int nSelIdx = CMM_GetRecordIndex(TvVmsSche); if (nSelIdx < 0) return; TcxGridDataController *pDcSch = TvSche->DataController; nSelIdx = CMM_GetRecordIndex(TvSche); if (nSelIdx < 0) return; TvSche->DataController->DeleteRecord(nSelIdx); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::TvScheCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nSelIdx = CMM_GetRecordIndex(TvSche); if (nSelIdx < 0) return; TcxDataController *pGDC = TvSche->DataController; String sVmsCtlrId = FSelVmsCtlrId; String sVmsScnrId = EdScnrId->Text; String sVmsFormId = VarToStr(pGDC->Values[nSelIdx][Col00->Index]); String sVmsFormNm = VarToStr(pGDC->Values[nSelIdx][Col02->Index]); String sDsplCndtId = VarToStr(pGDC->Values[nSelIdx][Col02->Index]); TVMSM610M *pIfscFrm = new TVMSM610M(this); #if 0 pIfscFrm->FVmsCtlrId = FSelVmsCtlrId; pIfscFrm->FFormId = sFormId; pIfscFrm->FVmsTypeCd = FVmsTypeCd; pIfscFrm->FVmsWidth = FVmsWidth; pIfscFrm->FVmsHeight = FVmsHeight; pIfscFrm->FIfscId[0] = VarToStr(pGDC->Values[nRow][9]); pIfscFrm->FIfscId[1] = VarToStr(pGDC->Values[nRow][10]); pIfscFrm->FIfscId[2] = VarToStr(pGDC->Values[nRow][11]); pIfscFrm->FIfscId[3] = VarToStr(pGDC->Values[nRow][12]); pIfscFrm->FIfscId[4] = VarToStr(pGDC->Values[nRow][16]); pIfscFrm->FIfscId[5] = VarToStr(pGDC->Values[nRow][17]); pIfscFrm->FIfscId[6] = VarToStr(pGDC->Values[nRow][18]); pIfscFrm->FIfscId[7] = VarToStr(pGDC->Values[nRow][19]); //pIfscFrm->FVmsType = VarToStr(pGDC->Values[nRow][13]).ToIntDef(0); pIfscFrm->FFormColor = VarToStr(pGDC->Values[nRow][14]); pIfscFrm->FFormType = VarToStr(pGDC->Values[nRow][15]).ToIntDef(0); #endif pIfscFrm->ShowModal(); if (pIfscFrm->FSelected) { #if 0 TStream *pImgStream = new TMemoryStream(); try { void *p; Variant v; pIfscFrm->ImgForm->Picture->Bitmap->SaveToStream(pImgStream); int aBound[]={0, pImgStream->Size - 1}; v = VarArrayCreate(aBound, 1, varByte); p = VarArrayLock(v); pImgStream->Position = 0; pImgStream->Read(p, pImgStream->Size); VarArrayUnlock(v); pGDC->Values[nRow][1] = v; } __finally { SAFE_DELETE(pImgStream); } pGDC->Values[nRow][ 9] = pIfscFrm->FIfscId[0]; pGDC->Values[nRow][10] = pIfscFrm->FIfscId[1]; pGDC->Values[nRow][11] = pIfscFrm->FIfscId[2]; pGDC->Values[nRow][12] = pIfscFrm->FIfscId[3]; pGDC->Values[nRow][16] = pIfscFrm->FIfscId[4]; pGDC->Values[nRow][17] = pIfscFrm->FIfscId[5]; pGDC->Values[nRow][18] = pIfscFrm->FIfscId[6]; pGDC->Values[nRow][19] = pIfscFrm->FIfscId[7]; #endif } delete pIfscFrm; pIfscFrm = NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnSaveClick(TObject *Sender) { if (FSelVmsCtlrId.IsEmpty()) { Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\nVMS Á¤º¸¸¦ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sMsg; String sScnrId = EdScnrId->Text.Trim(); if (sScnrId.IsEmpty()) { Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\nVMS ½Ã³ª¸®¿À ID¸¦ ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ActiveControl = EdScnrId; return; } String sScnrNm = EdScnrNm->Text.Trim(); if (sScnrNm.IsEmpty()) { Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\nVMS ½Ã³ª¸®¿À À̸§À» ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ActiveControl = EdScnrNm; return; } if (AnsiString(sScnrNm).Length() > 32) { Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\n½Ã³ª¸®¿À ¸íĪÀº 32Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ActiveControl = EdScnrNm; return; } TcxGridDataController *pGDC = TvSche->DataController; if (pGDC->DataRowCount <= 0) { sMsg = "*************************************************************\r\n" "VMS ½Ã³ª¸®¿À ±¸¼º Á¤º¸°¡ ¾ø½À´Ï´Ù.\r\n" "VMS ½Ã³ª¸®¿À Á¤º¸¸¦ ÀúÀå ÇϽðڽÀ´Ï±î?\r\n" "*************************************************************"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONERROR|MB_APPLMODAL) != IDYES) return; } bool bResult; /////////////////////////////////// ½Ã³ª¸®¿À Á¤º¸ ÀúÀå ITSDb_GetConnection()->BeginTrans(); bResult = SaveVmsScnr(FSelVmsCtlrId, sScnrId, sScnrNm); if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } if (bResult) { ITSDb_GetConnection()->CommitTrans(); Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\nVMS n½Ã³ª¸®¿À Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsScenario(FSelVmsCtlrId); CMM_SetGridRow(CxVmsSche, TvVmsSche, sScnrId, ColScnrId->Index); //DisplayInfo(); } else { ITSDb_GetConnection()->RollbackTrans(); } } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::SaveVmsScnr(String AVmsCtlrId, String AScnrId, String AScnrNm) { bool bResult = false; String sQry; TADOQuery *pADO = NULL; sQry = "MERGE INTO TB_VMS_SCNR L \r\n" "USING (SELECT \r\n" " :p01 AS VMS_CTLR_ID, \r\n" " :p02 AS VMS_SCNR_ID, \r\n" " :p03 AS VMS_SCNR_NM, \r\n" " :p04 AS OPER_ID \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_CTLR_ID = M.VMS_CTLR_ID \r\n" " AND L.VMS_SCNR_ID = M.VMS_SCNR_ID) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET \r\n" " L.VMS_SCNR_NM = M.VMS_SCNR_NM, \r\n" " L.CHNGR_ID = M.OPER_ID, \r\n" " L.CHG_DT = SYSDATE \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_SCNR_ID, \r\n" " VMS_SCNR_NM, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " M.VMS_CTLR_ID, \r\n" " M.VMS_SCNR_ID, \r\n" " M.VMS_SCNR_NM, \r\n" " M.OPER_ID, \r\n" " SYSDATE ) \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); pADO->Parameters->ParamByName("p01")->Value = AVmsCtlrId; pADO->Parameters->ParamByName("p02")->Value = AScnrId; pADO->Parameters->ParamByName("p03")->Value = AScnrNm; pADO->Parameters->ParamByName("p04")->Value = g_AppCfg.OPER_ID; pADO->ExecSQL(); } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScnr", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScnr", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::SaveVmsScenario(String AVmsNmbr, TcxGridTableView *AListSch) { bool bResult = false; #if 0 String sQry; TADOQuery *pADO = NULL; TcxDataController *pGDC = AListSch->DataController; String sTypeCd = ""; sQry = "INSERT INTO TB_VMS_DSPL_SCH ( \r\n" " VMS_CTLR_NMBR, \r\n" " VMS_SCH_TYPE, \r\n" " VMS_SCH_FORM_TYPE, \r\n" " PHASE, \r\n" " VMS_FORM_ID, \r\n" " DSPL_STRT_HH, \r\n" " DSPL_END_HH, \r\n" " DSPL_HH, \r\n" " FRST_VMS_IFSC_ID, \r\n" " SECD_VMS_IFSC_ID, \r\n" " THIR_VMS_IFSC_ID, \r\n" " FOUR_VMS_IFSC_ID, \r\n" " FRST_IMG_IFSC_ID, \r\n" " SECD_IMG_IFSC_ID, \r\n" " THIR_IMG_IFSC_ID, \r\n" " FOUR_IMG_IFSC_ID, \r\n" " SYMB_LIB_NMBR, \r\n" " STRM_ADDR, \r\n" " USE_YN, \r\n" " SCH_WEEK1, \r\n" " SCH_WEEK2, \r\n" " SCH_WEEK3, \r\n" " SCH_WEEK4, \r\n" " SCH_WEEK5, \r\n" " SCH_WEEK6, \r\n" " SCH_WEEK7, \r\n" " DSPL_CNGS_YN \r\n" " ) \r\n" " VALUES( \r\n" " :p01, :p02, :p03, \r\n" " :p04, :p05, :p06, \r\n" " :p07, :p08, :p09, \r\n" " :p10, :p11, :p12, \r\n" " :p13, :p14, :p15, \r\n" " :p16, :p17, :p18, \r\n" " :p19, \r\n" " :p20, \r\n" " :p21, \r\n" " :p22, \r\n" " :p23, \r\n" " :p24, \r\n" " :p25, \r\n" " :p26, \r\n" " :p27 \r\n" " ) \r\n"; try { AListSch->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); int ii; for (ii = 0; ii < nRows; ii++) { String sFormId = VarToStr(pGDC->Values[ii][ 0]); String sUseYn = VarToStr(pGDC->Values[ii][ 6]); if (sUseYn == "Y") { if (!CDSVmsFormManager->IsValid(sFormId)) { pGDC->Values[ii][ 6] = "N"; } } } for (ii = 0; ii < nRows; ii++) { String sFormId = VarToStr(pGDC->Values[ii][Col00->Index]); String sDispHH = VarToStr(pGDC->Values[ii][Col03->Index]); String sUseYn = VarToStr(pGDC->Values[ii][Col06->Index]); String sStrTime = VarToStr(pGDC->Values[ii][Col07->Index]); String sEndTime = VarToStr(pGDC->Values[ii][Col08->Index]); String sIfscId1 = VarToStr(pGDC->Values[ii][Col09->Index]); String sIfscId2 = VarToStr(pGDC->Values[ii][Col10->Index]); String sIfscId3 = VarToStr(pGDC->Values[ii][Col11->Index]); String sIfscId4 = VarToStr(pGDC->Values[ii][Col12->Index]); String sImgIfscId1 = VarToStr(pGDC->Values[ii][Col16->Index]); String sImgIfscId2 = VarToStr(pGDC->Values[ii][Col17->Index]); String sImgIfscId3 = VarToStr(pGDC->Values[ii][Col18->Index]); String sImgIfscId4 = VarToStr(pGDC->Values[ii][Col19->Index]); String sSymbLibNmbr = VarToStr(pGDC->Values[ii][Col20->Index]); String sStrmAddr = VarToStr(pGDC->Values[ii][Col21->Index]); sTypeCd = VarToStr(pGDC->Values[ii][Col23->Index]); String sSchWeek1 = VarToStr(pGDC->Values[ii][ColWeek1->Index]); String sSchWeek2 = VarToStr(pGDC->Values[ii][ColWeek2->Index]); String sSchWeek3 = VarToStr(pGDC->Values[ii][ColWeek3->Index]); String sSchWeek4 = VarToStr(pGDC->Values[ii][ColWeek4->Index]); String sSchWeek5 = VarToStr(pGDC->Values[ii][ColWeek5->Index]); String sSchWeek6 = VarToStr(pGDC->Values[ii][ColWeek6->Index]); String sSchWeek7 = VarToStr(pGDC->Values[ii][ColWeek7->Index]); String sDsplCngsYn = VarToStr(pGDC->Values[ii][Col25->Index]); if (sDsplCngsYn == "") sDsplCngsYn = "Y"; if (sTypeCd == String(eSchTp_congest)) sDsplCngsYn = "Y"; ITSDb_SQLBind(pADO, "p01", AVmsNmbr); ITSDb_SQLBind(pADO, "p02", FVMS_SCH_TYPE); ITSDb_SQLBind(pADO, "p03", sTypeCd); ITSDb_SQLBind(pADO, "p04", String(ii+1)); ITSDb_SQLBind(pADO, "p05", sFormId); ITSDb_SQLBind(pADO, "p06", sStrTime); ITSDb_SQLBind(pADO, "p07", sEndTime); ITSDb_SQLBind(pADO, "p08", sDispHH); ITSDb_SQLBind(pADO, "p09", sIfscId1); ITSDb_SQLBind(pADO, "p10", sIfscId2); ITSDb_SQLBind(pADO, "p11", sIfscId3); ITSDb_SQLBind(pADO, "p12", sIfscId4); ITSDb_SQLBind(pADO, "p13", sImgIfscId1); ITSDb_SQLBind(pADO, "p14", sImgIfscId2); ITSDb_SQLBind(pADO, "p15", sImgIfscId3); ITSDb_SQLBind(pADO, "p16", sImgIfscId4); ITSDb_SQLBind(pADO, "p17", sSymbLibNmbr); ITSDb_SQLBind(pADO, "p18", sStrmAddr); ITSDb_SQLBind(pADO, "p19", sUseYn); ITSDb_SQLBind(pADO, "p20", sSchWeek1); ITSDb_SQLBind(pADO, "p21", sSchWeek2); ITSDb_SQLBind(pADO, "p22", sSchWeek3); ITSDb_SQLBind(pADO, "p23", sSchWeek4); ITSDb_SQLBind(pADO, "p24", sSchWeek5); ITSDb_SQLBind(pADO, "p25", sSchWeek6); ITSDb_SQLBind(pADO, "p26", sSchWeek7); ITSDb_SQLBind(pADO, "p27", sDsplCngsYn); pADO->ExecSQL(); } bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM600M::SaveVmsScenario", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM600M::SaveVmsScenario", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } pGDC->EndUpdate(); AListSch->EndUpdate(); } #endif return bResult; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::DeleteVmsScenario(String AVmsNmbr) { bool bResult = false; #if 0 String sQry; TADOQuery *pADO = NULL; sQry = "DELETE TB_VMS_DSPL_SCH \r\n" " WHERE VMS_SCH_TYPE = :p01 \r\n" " AND VMS_CTLR_NMBR = :p02 \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FVMS_SCH_TYPE); ITSDb_SQLBind(pADO, "p02", AVmsNmbr); pADO->ExecSQL(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM600M::DeleteVmsScenario", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM600M::DeleteVmsScenario", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } #endif return bResult; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::DrawTrafficScenarioForm() { #if 0 TcxGridTableView *pGrid = TvSche; if (!pGrid) return; TcxDataController *pGDC = pGrid->DataController; try { pGrid->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; try { for (int ii = 0; ii < nRows; ii++) { int nSchFormType = pGDC->Values[ii][Col23->Index]; if (nSchFormType != eSchTp_traffic) continue; String sFormId = VarToStr(pGDC->Values[ii][Col00->Index]); String sFormClr = VarToStr(pGDC->Values[ii][Col14->Index]); int nFormType = VarToStr(pGDC->Values[ii][Col15->Index]).ToIntDef(0); FIfscId[0] = VarToStr(pGDC->Values[ii][Col09->Index]); FIfscId[1] = VarToStr(pGDC->Values[ii][Col10->Index]); FIfscId[2] = VarToStr(pGDC->Values[ii][Col11->Index]); FIfscId[3] = VarToStr(pGDC->Values[ii][Col12->Index]); FIfscId[4] = VarToStr(pGDC->Values[ii][Col16->Index]); FIfscId[5] = VarToStr(pGDC->Values[ii][Col17->Index]); FIfscId[6] = VarToStr(pGDC->Values[ii][Col18->Index]); FIfscId[7] = VarToStr(pGDC->Values[ii][Col19->Index]); switch(nFormType) { case 11:// ' ¼ÒÅë»óȲ(1´Ü) case 12:// ' ¼ÒÅë»óȲ(2´Ü) case 13:// ' ¼ÒÅë»óȲ(3´Ü) case 14:// ' ¼ÒÅë»óȲ(4´Ü) if (LoadTrafficFormObjectInfo(sFormId, sFormClr, m_pEdtDesigner)) { m_pEdtDesigner->GetVmsFormImage(ImgForm); TStream *pImgStream = new TMemoryStream(); try { void *p; Variant v; ImgForm->Picture->Bitmap->SaveToStream(pImgStream); int aBound[]={0, pImgStream->Size - 1}; v = VarArrayCreate(aBound, 1, varByte); p = VarArrayLock(v); pImgStream->Position = 0; pImgStream->Read(p, pImgStream->Size); VarArrayUnlock(v); pGDC->Values[ii][1] = v; } __finally { SAFE_DELETE(pImgStream); } } break; } } } catch(Exception &e) { } } __finally { pGDC->EndUpdate(); pGrid->EndUpdate(); } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::DrawAtmpScenarioForm() { #if 0 TcxGridTableView *pGrid = TvSche; if (!pGrid) return; TcxDataController *pGDC = pGrid->DataController; try { pGrid->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; try { for (int ii = 0; ii < nRows; ii++) { int nSchFormType = pGDC->Values[ii][Col23->Index]; if (nSchFormType != eSchTp_atmp) continue; String sFormId = VarToStr(pGDC->Values[ii][Col00->Index]); String sFormClr = VarToStr(pGDC->Values[ii][Col14->Index]); int nFormType = VarToStr(pGDC->Values[ii][Col15->Index]).ToIntDef(0); FIfscId[0] = VarToStr(pGDC->Values[ii][9]); switch(nFormType) { case 90:// ' ¼ÒÅë»óȲ(1´Ü) if (LoadTrafficFormObjectInfo(sFormId, sFormClr, m_pEdtDesigner)) { m_pEdtDesigner->GetVmsFormImage(ImgForm); TStream *pImgStream = new TMemoryStream(); try { void *p; Variant v; ImgForm->Picture->Bitmap->SaveToStream(pImgStream); int aBound[]={0, pImgStream->Size - 1}; v = VarArrayCreate(aBound, 1, varByte); p = VarArrayLock(v); pImgStream->Position = 0; pImgStream->Read(p, pImgStream->Size); VarArrayUnlock(v); pGDC->Values[ii][1] = v; } __finally { SAFE_DELETE(pImgStream); } } break; } } } catch(Exception &e) { } } __finally { pGDC->EndUpdate(); pGrid->EndUpdate(); } #endif } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadTrafficFormObjectInfo(String AFormId, String ABkColor, TVmsFormDesigner *ADesigner) { #if 0 ADesigner->Clear(); m_pEdtDesigner->BkColorCode = ABkColor; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.*, \r\n" " C.VMS_FONT_NAME_NM, \r\n" " B.IMAG_DATA AS SYMB_IMG, \r\n" " B.SYMB_EXPL AS SYMB_IMG_NM, \r\n" " D.VMS_FORM_TYPE_CD \r\n" " FROM TB_VMS_FORM_OBJECT A, \r\n" " TB_VMS_SYMB_LIB B, \r\n" " TB_VMS_FONT_NAME C, \r\n" " TB_VMS_FORM D \r\n" " WHERE D.VMS_FORM_ID = :p01 \r\n" " AND D.VMS_FORM_ID = A.VMS_FORM_ID \r\n" " AND A.SYMB_LIB_NMBR = B.SYMB_LIB_NMBR(+) \r\n" " AND A.VMS_FONT_NAME_CD = C.VMS_FONT_NAME_CD(+) \r\n" " ORDER BY A.VMS_FORM_OBJECT_ID ASC \r\n"; int VMS_FORM_TYPE_CD = -1; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); int nDrawType; String sObjKind; for( ; !pADO->Eof; pADO->Next()) { VMS_FORM_TYPE_CD = pADO->FieldByName("VMS_FORM_TYPE_CD")->AsInteger; int nFormId = pADO->FieldByName("VMS_FORM_ID")->AsInteger; int nObjId = pADO->FieldByName("VMS_FORM_OBJECT_ID")->AsInteger; int nObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsInteger; if (nObjType == 1 || //½Éº¼ nObjType == 2 || //À̹ÌÁö nObjType == 3 || //¹è°æÀ̹ÌÁö nObjType == 17 || //@¼ÒÅëÁ¤º¸À̹ÌÁö (1¿­) nObjType == 27 || //@¼ÒÅëÁ¤º¸À̹ÌÁö2(2¿­) nObjType == 37 || //@¼ÒÅëÁ¤º¸À̹ÌÁö3(3¿­) nObjType == 47 || //¼ÒÅëÀ̹ÌÁö4 nObjType == 200 || //µ¿¿µ»ó nObjType == 300 || //½ºÆ®¸®¹Ö¿µ»ó nObjType == 406 || //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö nObjType == 407 || //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö nObjType == 408 || //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö nObjType == 413 //@¿ÀÁ¸µî±ÞÀ̹ÌÁö ) { if (nObjType == 1) sObjKind = OBJKIND_IMAGEID; //Image Id else sObjKind = OBJKIND_IMAGE; //Image nDrawType = 1; //À̹ÌÁö±×¸®±â } else { sObjKind = OBJKIND_TEXT; //¹®ÀÚ¿­ nDrawType = 0; //¹®ÀÚ¿­±×¸®±â } //½ÇÀç ¸ÊÇÎµÈ ±¸°£ÀÇ Á¤º¸¸¦ Ç¥ÃâÇϵµ·Ï ÇÑ´Ù. int nBlinking = pADO->FieldByName("VMS_DSPL_BLINKING")->AsInteger; int nPosX = pADO->FieldByName("VMS_DSPL_XCRDN")->AsInteger; int nPosY = pADO->FieldByName("VMS_DSPL_YCRDN")->AsInteger; int nDsplW = pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger; int nDsplH = pADO->FieldByName("VMS_DSPL_HEIGHT")->AsInteger; TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) continue; //11 , ' @±¸°£¸í //12 , ' @½ÃÁ¡¸í //13 , ' @Á¾Á¡¸í //14 , ' @¼ÒÅë»óȲ //15 , ' @ÅëÇà½Ã°£ //16 , ' @ÅëÇà¼Óµµ //17 , ' @¼ÒÅëÀ̹ÌÁö pObj->Text = pADO->FieldByName("VMS_DSPL_TXT")->AsString.Trim(); pObj->RunText = pObj->Text; String sIfscId = ""; if (nObjType >= 11 && nObjType < 17) sIfscId = FIfscId[0]; else if (nObjType >= 21 && nObjType < 27) sIfscId = FIfscId[1]; else if (nObjType >= 31 && nObjType < 37) sIfscId = FIfscId[2]; else if (nObjType >= 41 && nObjType < 47) sIfscId = FIfscId[3]; if (nObjType == 401) sIfscId = FIfscId[0]; switch(nObjType) { case 17: sIfscId = FIfscId[4]; break; case 27: sIfscId = FIfscId[5]; break; case 37: sIfscId = FIfscId[6]; break; case 47: sIfscId = FIfscId[7]; break; } if (sIfscId != "") { if (pADO->FieldByName("VMS_FORM_TYPE_CD")->AsInteger == 90) { TCDSAtmp *pAtmpObj = CDSAtmpManager->FLists.Find(sIfscId); if (pAtmpObj) { pObj->RunText = pAtmpObj->VMS_DISP_NM; } } else { TVmsIfsc *pIfscObj; pIfscObj = VmsIfscManager->FLists.Find(sIfscId.ToIntDef(0)); if (pIfscObj) { switch(nObjType) { case 11: case 21: case 31: case 41: pObj->RunText = pIfscObj->VMS_IFSC_NM; break; case 12: case 22: case 32: case 42: pObj->RunText = pIfscObj->DSPL_STRT_NODE_NM; break; case 13: case 23: case 33: case 43: pObj->RunText = pIfscObj->DSPL_END_NODE_NM; break; } } } } else { if (nObjType == 201) { } else if (nObjType == 301) { } } if (nObjType == 200 || nObjType == 300) { pObj->EditMode = false; } pObj->ObjSeq = nObjId; pObj->ObjId = nObjId; pObj->ObjKind = sObjKind; pObj->Tag = pADO->FieldByName("VMS_IFSC_ID")->AsString; pObj->ObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsString; pObj->ObjSize = pADO->FieldByName("VMS_DSPL_SIZE")->AsInteger; pObj->BkColorCode = pADO->FieldByName("VMS_DSPL_BKCOLOR")->AsString; pObj->Blink = nBlinking == 1 ? true : false; pObj->ImageId = pADO->FieldByName("SYMB_LIB_NMBR")->AsString; pObj->SetPos(nPosX, nPosY); if (pObj->ObjKind == OBJKIND_TEXT) // ¹®ÀÚ¿­ { int nFontBold = pADO->FieldByName("VMS_FONT_BOLD")->AsInteger; pObj->FontName = pADO->FieldByName("VMS_FONT_NAME_NM")->AsString; pObj->FontNameCode = pADO->FieldByName("VMS_FONT_NAME_CD")->AsString; pObj->FontColorCode = pADO->FieldByName("VMS_FONT_COLR_CD")->AsString; pObj->FontSize = pADO->FieldByName("VMS_FONT_SIZE")->AsInteger; pObj->FontBold = nFontBold == 1 ? true : false; pObj->TextAlign = pADO->FieldByName("VMS_FONT_ALIGN")->AsInteger; //pObj->SetSize(pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger, pADO->FieldByName("VMS_DSPL_HEIGHT")->AsInteger); pObj->SetRuntimeText(pObj->RunText); #if 0 Label1->AutoSize = true; Label1->Font->Name = pObj->FontName; Label1->Font->Size = pObj->FontSize; Label1->Caption = pObj->RunText; if (pObj->FontBold) Label1->Font->Style = TFontStyles() << fsBold; else Label1->Font->Style = TFontStyles(); //int nWidth = pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger; //nWidth = Lavel1->Width; #if 1 switch(pObj->TextAlign) { case 0://text_align_left: //ÁÂÃøÁ¤·ÂÀÎ °æ¿ì À§Ä¡Á¶Á¤ ÇÊ¿ä ¾øÀ½. break; case 1://text_align_right: //ÁÂÃø¿¡¼­ ±ÛÀÚ±æÀ̸¦ »«´ÙÀ½ ¸¸¾à À½¼öÀ̸é 0À¸·Î ¼³Á¤ //pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger nPosX = (nPosX+pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger) - Label1->Width; break; case 2://text_align_center: //¿ø·¡ ±ÛÀÚÀÇ Áß¾Ó°ªÀ» ¾òÀº ´ÙÀ½¿¡ Á¶Á¤µÈ ±ÛÀÚÀÇ 1/2 Å©±â¸¦ »«´ÙÀ½ À½¼öÀ̸é 0À¸·Î ¼³Á¤ nPosX = (nPosX+(pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger/2)) - (Label1->Width/2); break; } if (nPosX < 0) nPosX = 0; //AVmsObj->TextWidth = pLabel->Width; #endif pObj->SetSize(Label1->Width, pADO->FieldByName("VMS_DSPL_HEIGHT")->AsInteger); #endif } else //if (sObjKind == "1" || sObjKind == "2") // À̹ÌÁö(1), À̹ÌÁö ID(2) { if (pObj->ObjKind == OBJKIND_IMAGEID) { pObj->Text = pADO->FieldByName("SYMB_LIB_NMBR")->AsString; } TStream *pStream = NULL; pStream = pADO->CreateBlobStream(pADO->FieldByName("VMS_DSPL_FIGR"), bmRead); try { if (pStream && pStream->Size > 0) { Graphics::TBitmap *Bitmap = pObj->GetBitmap(); pStream->Position = 0; Bitmap->LoadFromStream(pStream); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nDsplW; pObj->GetImage()->Height = nDsplH; pObj->SetSize(nDsplW, nDsplH); pObj->SetPos(nPosX, nPosY); //pObj->SetSize(Bitmap->Width, Bitmap->Height); } } __finally { SAFE_DELETE(pStream); } } //pObj->SetPos(nPosX, nPosY); pObj->Show(); pObj->BringToFront(); } if (VMS_FORM_TYPE_CD == eFormTp_traf_1 && FVmsTypeCd == "VMP2") { TVmsFormObject *pArw = NULL; TVmsFormObject *pStr = NULL; TVmsFormObject *pEnd = NULL; int nObjCnt = ADesigner->GetObjectCount(); for(int ii = 0; ii < nObjCnt; ii++) { TVmsFormObject *pObj = ADesigner->GetObject(ii); if (!pObj) continue; int nObjType = pObj->ObjType.ToIntDef(0); switch(nObjType) { case 12: // @½ÃÁ¡¸í Y pStr = pObj; break; case 13: // @Á¾Á¡¸í Y pEnd = pObj; break; } } for(int ii = 0; ii < nObjCnt; ii++) { TVmsFormObject *pObj = ADesigner->GetObject(ii); if (!pObj) continue; int nObjType = pObj->ObjType.ToIntDef(0); switch(nObjType) { case 1: // @½Éº¼ Y case 2: // @À̹ÌÁö Y case 17: // @¼ÒÅëÁ¤º¸À̹ÌÁö Y //if (pFormObj->TRFC_FILL_CD == "T") if (pStr && pObj->Top <= (pStr->Top+pStr->Height) ) { pArw = pObj; } break; } } if (pArw && pStr && pEnd) { int nRange = pStr->Top + pStr->Height; if (pArw->Top <= nRange && pEnd->Top <= nRange) { int ARRAWGAP = 5; int nLeft = 0; int nTotW = pStr->Width + ARRAWGAP + pArw->Width + ARRAWGAP + pEnd->Width; if (nTotW < ADesigner->Width) { nLeft = (ADesigner->Width - nTotW) / 2; } nLeft = (ADesigner->Width - nTotW) / 2; pStr->Left = nLeft; pArw->Left = pStr->Left + pStr->Width + ARRAWGAP; pEnd->Left = pArw->Left + pArw->Width + ARRAWGAP; } } } } catch(EDatabaseError &E) { DBERRORMSG("TVMSM600M::LoadTrafficFormObjectInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { DBERRORMSG("TVMSM600M::LoadTrafficFormObjectInfo", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } #endif return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::DrawVideoStreamScenarioForm(int AFormScheType) { #if 0 TcxGridTableView *pGrid = TvSche; if (!pGrid) return; TcxDataController *pGDC = pGrid->DataController; try { pGrid->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; try { for (int ii = 0; ii < nRows; ii++) { int nSchFormType = pGDC->Values[ii][Col23->Index]; if (nSchFormType != AFormScheType) continue; String sFormId = VarToStr(pGDC->Values[ii][Col00->Index]); String sFormClr = VarToStr(pGDC->Values[ii][Col14->Index]); int nFormType = VarToStr(pGDC->Values[ii][Col15->Index]).ToIntDef(0); String sSymbLibNmbr = VarToStr(pGDC->Values[ii][Col20->Index]); String sStreamAddr = VarToStr(pGDC->Values[ii][Col21->Index]); switch(nFormType) { case 70:// ' µ¿¿µ»ó Y case 80:// ' ½ºÆ®¸®¹Ö¿µ»ó Y if (LoadVideoStreamFormObjectInfo(sFormId, sFormClr, m_pEdtDesigner, sSymbLibNmbr, sStreamAddr)) { m_pEdtDesigner->GetVmsFormImage(ImgForm); TStream *pImgStream = new TMemoryStream(); try { void *p; Variant v; ImgForm->Picture->Bitmap->SaveToStream(pImgStream); int aBound[]={0, pImgStream->Size - 1}; v = VarArrayCreate(aBound, 1, varByte); p = VarArrayLock(v); pImgStream->Position = 0; pImgStream->Read(p, pImgStream->Size); VarArrayUnlock(v); pGDC->Values[ii][1] = v; } __finally { SAFE_DELETE(pImgStream); } } break; } } } catch(Exception &e) { } } __finally { pGDC->EndUpdate(); pGrid->EndUpdate(); } #endif } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVideoStreamFormObjectInfo(String AFormId, String ABkColor, TVmsFormDesigner *ADesigner, String ASymbLibNmbr, String AStreamAddr) { #if 0 ADesigner->Clear(); m_pEdtDesigner->BkColorCode = ABkColor; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.*, \r\n" " C.VMS_FONT_NAME_NM, \r\n" " B.IMAG_DATA AS SYMB_IMG, \r\n" " B.SYMB_EXPL AS SYMB_IMG_NM, \r\n" " B.SYMB_FILE_NM AS SYMB_FILE_NM \r\n" " FROM TB_VMS_FORM_OBJECT A, \r\n" " TB_VMS_SYMB_LIB B, \r\n" " TB_VMS_FONT_NAME C, \r\n" " TB_VMS_FORM D \r\n" " WHERE D.VMS_FORM_ID = :p01 \r\n" " AND D.VMS_FORM_ID = A.VMS_FORM_ID \r\n" " AND B.SYMB_LIB_NMBR = :p02 \r\n" " AND A.VMS_FONT_NAME_CD = C.VMS_FONT_NAME_CD(+) \r\n" " ORDER BY A.VMS_FORM_OBJECT_ID ASC \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLBind(pADO, "p02", ASymbLibNmbr); ITSDb_SQLOpen(pADO); int nDrawType; String sObjKind; for( ; !pADO->Eof; pADO->Next()) { int nFormId = pADO->FieldByName("VMS_FORM_ID")->AsInteger; int nObjId = pADO->FieldByName("VMS_FORM_OBJECT_ID")->AsInteger; int nObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsInteger; if (nObjType == 1 || //½Éº¼ nObjType == 2 || //À̹ÌÁö nObjType == 3 || //¹è°æÀ̹ÌÁö nObjType == 17 || //@¼ÒÅëÁ¤º¸À̹ÌÁö (1¿­) nObjType == 27 || //@¼ÒÅëÁ¤º¸À̹ÌÁö2(2¿­) nObjType == 37 || //@¼ÒÅëÁ¤º¸À̹ÌÁö3(3¿­) nObjType == 47 || //¼ÒÅëÀ̹ÌÁö4 nObjType == 200 || //µ¿¿µ»ó nObjType == 300 || //½ºÆ®¸®¹Ö¿µ»ó nObjType == 406 || //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö nObjType == 407 || //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö nObjType == 408 || //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö nObjType == 413 //@¿ÀÁ¸µî±ÞÀ̹ÌÁö ) { sObjKind = OBJKIND_IMAGEID; //Image Id nDrawType = 1; //À̹ÌÁö±×¸®±â } else { sObjKind = OBJKIND_TEXT; //¹®ÀÚ¿­ nDrawType = 0; //¹®ÀÚ¿­±×¸®±â } int nBlinking = pADO->FieldByName("VMS_DSPL_BLINKING")->AsInteger; int nPosX = pADO->FieldByName("VMS_DSPL_XCRDN")->AsInteger; int nPosY = pADO->FieldByName("VMS_DSPL_YCRDN")->AsInteger; TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) continue; pObj->Text = pADO->FieldByName("SYMB_IMG_NM")->AsString.Trim(); if (AStreamAddr == "") pObj->RunText = pObj->Text; else pObj->RunText = AStreamAddr; //pObj->Text; pObj->EditMode = false; pObj->ObjSeq = nObjId; pObj->ObjId = nObjId; pObj->ObjKind = sObjKind; pObj->Tag = pADO->FieldByName("VMS_IFSC_ID")->AsString; pObj->ObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsString; pObj->ObjSize = pADO->FieldByName("VMS_DSPL_SIZE")->AsInteger; pObj->BkColorCode = pADO->FieldByName("VMS_DSPL_BKCOLOR")->AsString; pObj->Blink = nBlinking == 1 ? true : false; pObj->ImageId = ASymbLibNmbr; //pADO->FieldByName("SYMB_LIB_NMBR")->AsString; pObj->SetPos(nPosX, nPosY); if (pObj->ObjKind == OBJKIND_TEXT) // ¹®ÀÚ¿­ { int nFontBold = pADO->FieldByName("VMS_FONT_BOLD")->AsInteger; pObj->FontName = pADO->FieldByName("VMS_FONT_NAME_NM")->AsString; pObj->FontNameCode = pADO->FieldByName("VMS_FONT_NAME_CD")->AsString; pObj->FontColorCode = pADO->FieldByName("VMS_FONT_COLR_CD")->AsString; pObj->FontSize = pADO->FieldByName("VMS_FONT_SIZE")->AsInteger; pObj->FontBold = nFontBold == 1 ? true : false; pObj->TextAlign = pADO->FieldByName("VMS_FONT_ALIGN")->AsInteger; pObj->SetSize(pADO->FieldByName("VMS_DSPL_WIDTH")->AsInteger, pADO->FieldByName("VMS_DSPL_HEIGHT")->AsInteger); pObj->SetRuntimeText(pObj->RunText); } else //if (sObjKind == "1" || sObjKind == "2") // À̹ÌÁö(1), À̹ÌÁö ID(2) { if (pObj->ObjKind == OBJKIND_IMAGEID) { pObj->Text = pADO->FieldByName("SYMB_LIB_NMBR")->AsString; } TStream *pStream = NULL; //pStream = pADO->CreateBlobStream(pADO->FieldByName("VMS_DSPL_FIGR"), bmRead); pStream = pADO->CreateBlobStream(pADO->FieldByName("SYMB_IMG"), bmRead); try { if (pStream && pStream->Size > 0) { Graphics::TBitmap *Bitmap = pObj->GetBitmap(); pStream->Position = 0; Bitmap->LoadFromStream(pStream); pObj->SetSize(Bitmap->Width, Bitmap->Height); if (ASymbLibNmbr != "200" && ASymbLibNmbr != "300") pObj->SetPos(0, 0); } } __finally { SAFE_DELETE(pStream); } } #if 0 switch(nObjType) { case 200: pObj->Text = ASymbLibNmbr; break; case 201: pObj->Text = AStreamAddr; break; case 300: pObj->Text = ASymbLibNmbr; break; case 301: pObj->Text = AStreamAddr; break; } #endif pObj->Show(); pObj->BringToFront(); } } catch(EDatabaseError &E) { DBERRORMSG("TVMSM600M::LoadTrafficFormObjectInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { DBERRORMSG("TVMSM600M::LoadTrafficFormObjectInfo", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } #endif return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnUpClick(TObject *Sender) { try { TvSche->BeginUpdate(); int nCurIdx = TvSche->DataController->FocusedRowIndex;//FocusedRecordIndex; if (nCurIdx <= 0) { return; } int nUpIdx = nCurIdx-1; try { int nCols = TvSche->ColumnCount; for (int ii = 0; ii < nCols; ii++) { Variant va = TvSche->DataController->Values[nCurIdx][ii]; TvSche->DataController->Values[nCurIdx][ii] = TvSche->DataController->Values[nUpIdx][ii]; TvSche->DataController->Values[nUpIdx][ii] = va; } TvSche->Controller->ClearSelection(); TvSche->Controller->FocusedRowIndex = nUpIdx; TvSche->ViewData->Records[nUpIdx]->Focused = true; TvSche->ViewData->Records[nUpIdx]->Selected = true; CxSche->SetFocus(); } catch(...) { } } __finally { TvSche->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnDownClick(TObject *Sender) { try { TvSche->BeginUpdate(); int nCurIdx = TvSche->DataController->FocusedRowIndex;//FocusedRecordIndex; if (nCurIdx < 0) { return; } if (nCurIdx == TvSche->DataController->RecordCount-1) { return; } int nDnIdx = nCurIdx+1; try { int nCols = TvSche->ColumnCount; for (int ii = 0; ii < nCols; ii++) { Variant va = TvSche->DataController->Values[nCurIdx][ii]; TvSche->DataController->Values[nCurIdx][ii] = TvSche->DataController->Values[nDnIdx][ii]; TvSche->DataController->Values[nDnIdx][ii] = va; } TvSche->Controller->ClearSelection(); TvSche->Controller->FocusedRowIndex = nDnIdx; TvSche->ViewData->Records[nDnIdx]->Focused = true; TvSche->ViewData->Records[nDnIdx]->Selected = true; CxSche->SetFocus(); } catch(...) { } } __finally { TvSche->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::ChkAutoWidthPropertiesChange(TObject *Sender) { try { LockWindowUpdate(Handle); TvSche->BeginUpdate(); if (ChkAutoWidth->Checked) { TvSche->OptionsView->DataRowHeight = 58; TvSche->OptionsView->CellAutoHeight = false; } else { TvSche->OptionsView->DataRowHeight = 0; TvSche->OptionsView->CellAutoHeight = true; } TvSche->OptionsView->ColumnAutoWidth = ChkAutoWidth->Checked; } __finally { TvSche->EndUpdate(); LockWindowUpdate(0); //BtnBestFit->Visible = !ChkAutoWidth->Checked; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnBestFitClick(TObject *Sender) { try { LockWindowUpdate(Handle); TvSche->BeginUpdate(); TvSche->ApplyBestFit(NULL, false, false); } __finally { TvSche->EndUpdate(); LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnSchWeekClick(TObject *Sender) { TcxGridTableView *pTvList = TvSche; TcxGridDataController *pGDC; pGDC = pTvList->DataController; int nFormIdx = CMM_GetRecordIndex(pTvList); if (nFormIdx < 0) { Application->MessageBox(L"¸ñ·Ï¿¡¼­ VMS ½ºÄÉÁìÀ» ¼±ÅÃÇϼ¼¿ä.", L"¿äÀϺ° ½ºÄÉÁì ÆíÁý", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } //int PHASE = pGDC->Values[nFormIdx][Col24->Index]; int nIdx = ColWeek1->Index; TVMSM650M *pFrm = new TVMSM650M(this); for (int ii = 0; ii < 7; ii++) { pFrm->FSchWeek[ii] = pGDC->Values[nFormIdx][nIdx+ii]; } pFrm->ShowModal(); if (pFrm->FSelected) { for (int ii = 0; ii < 7; ii++) { pGDC->Values[nFormIdx][nIdx+ii] = pFrm->FSchWeek[ii]; } } delete pFrm; pFrm = NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::Col05CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { int nRecordIdx = AViewInfo->GridRecord->RecordIndex; if (nRecordIdx < 0) { return; } try { int nItemIdx = AViewInfo->Item->Index; if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[nItemIdx])) return; String sEndDt = AViewInfo->GridRecord->DisplayTexts[nItemIdx]; if (sEndDt < Now().FormatString(STR_HHNN)) { ACanvas->Canvas->Brush->Color = clSilver; } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::Col00CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { #if 0 int nRecordIdx = AViewInfo->GridRecord->RecordIndex; if (nRecordIdx < 0) { return; } try { if (VarToStr(AViewInfo->GridRecord->DisplayTexts[15]).ToIntDef(0) != eFormTp_congest) { return; } if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[9])) { ACanvas->Canvas->Brush->Color = clRed; } else { String IFSC_ID = AViewInfo->GridRecord->DisplayTexts[9].Trim(); if (IFSC_ID == "" || IFSC_ID == "0") { ACanvas->Canvas->Brush->Color = clRed; } } } catch(Exception &e) { } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::Col06CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { int nRecordIdx = AViewInfo->GridRecord->RecordIndex; if (nRecordIdx < 0) { return; } try { int nItemIdx = AViewInfo->Item->Index; if (VarIsNull(AViewInfo->GridRecord->DisplayTexts[nItemIdx])) return; String sUseYn = AViewInfo->GridRecord->DisplayTexts[nItemIdx]; if (sUseYn == "N") { ACanvas->Canvas->Brush->Color = clRed; } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::CbVmsPropertiesChange(TObject *Sender) { if (CbVms->ItemIndex < 0) return; FSelVmsCtlrId = APP_GetCode(CbVms); FormClear(); TVmsCtlr *pVmsCtlr = VmsCtlrManager->FLists.Find(FSelVmsCtlrId); if (pVmsCtlr == NULL) { Application->MessageBox(L"VMS ½ºÄÉÁÙ ÀúÀå\r\n¾Ë¼ö ¾ø´Â VMS Á¤º¸ ÀÔ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ActiveControl = CbVms; return; } String sVmsModlType = pVmsCtlr->VMS_MODL_KIND; if (FSelVmsModlType != sVmsModlType) { FSelVmsModlType = sVmsModlType; APP_SetCode(CbSizeType, FSelVmsModlType); ChangeEditFormPanel(); LoadVmsFormList(sVmsModlType); } LoadVmsScenario(FSelVmsCtlrId); ChangeEditMode(1); CxVmsSche->SetFocus(); } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVmsScenario(String AVMS_CTLR_ID) { CMM_ClearGridTableView(TvVmsSche); CMM_ClearGridTableView(TvPreview); String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.VMS_CTLR_ID, A.VMS_SCNR_ID, A.VMS_SCNR_NM \r\n" " FROM TB_VMS_SCNR A \r\n" " WHERE 1=1 \r\n" " AND VMS_CTLR_ID = :p01 \r\n" " ORDER BY A.VMS_CTLR_ID, A.VMS_SCNR_ID \r\n"; try { TvVmsSche->BeginUpdate(); TcxDataController *pGDC = TvVmsSche->DataController;; int nRow; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVMS_CTLR_ID); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColScnrId->Index] = pADO->FieldByName("VMS_SCNR_ID")->AsString; pGDC->Values[nRow][ColScnrNm->Index] = pADO->FieldByName("VMS_SCNR_NM")->AsString; } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenario", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenario", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvVmsSche->EndUpdate(); } return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == "ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sScnrId = EdScnrId->Text; ChangeEditMode(1); if (CMM_FindGridData(TvVmsSche->DataController, sScnrId, ColScnrId->Index) >= 0) { CMM_SetGridRow(CxVmsSche, TvVmsSche, sScnrId, ColScnrId->Index); DisplayScenarioInfo(); } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnInsertClick(TObject *Sender) { String newFormId = GetNextVmsScnrId(FSelVmsCtlrId); FormClear(); EdScnrId->Text = newFormId; ChangeEditMode(2); FNewDb = true; //ÆûÀ¯ÇüÀ» ¼³Á¤ //APP_SetCode(CbFormType, sFormType); //CbFormDsplEff->ItemIndex = CbFormDsplEff->Properties->Items->Count-1; EdScnrNm->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::BtnDeleteClick(TObject *Sender) { int nIdx = TvVmsSche->DataController->FocusedRecordIndex; if (nIdx < 0) return; String sScnrId = EdScnrId->Text; if (sScnrId.IsEmpty()) { Application->MessageBox(L"VMS ½ºÄÉÁÙ »èÁ¦\r\n»èÁ¦ÇÒ VMS ½ºÄÉÁÙÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); if (CxVmsSche->Enabled) CxVmsSche->SetFocus(); return; } #if 0 if (!CheckVmsFormUse(sFormId)) return; String sMsg; sMsg = lblText3->Caption + ": " + sFormId;//"VMS Æû ID: " + sFormId; sMsg+= "\r\n" + lblText4->Caption;//"¼±ÅÃÇϽŠVMS Æû Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; ITSDb_GetConnection()->BeginTrans(); if (DelVmsForm(sFormId)) { ITSDb_GetConnection()->CommitTrans(); FUpdate = true; Application->MessageBox(lblText5->Caption.c_str(),//L"VMS Æû »èÁ¦\r\nVMS ÆûÁ¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormClear(); ChangeEditMode(1); LoadVmsForm(); } else { ITSDb_GetConnection()->RollbackTrans(); } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::TvVmsScheFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!AFocusedRecord) return; DisplayScenarioInfo(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::DisplayScenarioInfo() { FormClear(); FSelIdx = CMM_GetRecordIndex(TvVmsSche); if (FSelIdx < 0) return; TcxDataController *pGDC = TvVmsSche->DataController; String sScnrId = VarToStr(pGDC->Values[FSelIdx][ColScnrId->Index]); String sScnrNm = VarToStr(pGDC->Values[FSelIdx][ColScnrNm->Index]); EdScnrId->Text = sScnrId; EdScnrNm->Text = sScnrNm; GrpSchedule->Caption = "¢º VMS ½Ã³ª¸®¿À ¼³Á¤ (" + sScnrId + ": " + sScnrNm + ")"; LoadVmsScenarionForm(FSelVmsCtlrId, sScnrId); ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::LoadPreviewForm(String AVmsFormId) { TFormImage *pImage = FFormLists.Find(AVmsFormId); //LockWindowUpdate(GrpPreview->Handle); if (pImage != NULL && pImage->bitmap != NULL) { ImgPreview->Picture->Bitmap->Assign(pImage->bitmap); } else { APP_ImageClear(ImgPreview->Canvas, 0, 0, ImgPreview->Width, ImgPreview->Height, clBlack); } //LockWindowUpdate(0); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::TvScheFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!AFocusedRecord) return; int nSelIdx = CMM_GetRecordIndex(TvSche); if (nSelIdx < 0) return; String sVmsFormId = VarToStr(TvSche->DataController->Values[nSelIdx][Col00->Index]); LoadPreviewForm(sVmsFormId); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::TvFormFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!AFocusedRecord) return; int nSelIdx = CMM_GetRecordIndex(TvForm); if (nSelIdx < 0) return; String sVmsFormId = VarToStr(TvForm->DataController->Values[nSelIdx][ColFrm00->Index]); LoadPreviewForm(sVmsFormId); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::PreviewVmsScenarionForm() { CMM_ClearGridTableView(TvPreview); TcxDataController *pDcScnr = TvSche->DataController; TcxDataController *pDcView = TvPreview->DataController; try { TvSche->BeginUpdate(); TvPreview->BeginUpdate(); try { int nRowS, nRowV; for(int nRowS = 0; nRowS < pDcScnr->RecordCount; nRowS++) { String VMS_FORM_ID = pDcScnr->Values[nRowS][Col00->Index]; int DSPL_HR = pDcScnr->Values[nRowS][Col03->Index]; String VMS_FORM_DSPL_CNDT_NM = pDcScnr->Values[nRowS][ColDsplCndtNm->Index]; nRowV = pDcView->AppendRecord(); pDcView->Values[nRowV][ColView00->Index] = VMS_FORM_ID; pDcView->Values[nRowV][ColView01->Index] = pDcScnr->Values[nRowS][Col01->Index]; pDcView->Values[nRowV][ColView03->Index] = DSPL_HR; pDcView->Values[nRowV][ColViewDslplCndtNm->Index] = VMS_FORM_DSPL_CNDT_NM; } } catch(Exception &e) { } } __finally { TvSche->EndUpdate(); TvPreview->EndUpdate(); TvPreview->ApplyBestFit(NULL, false, false); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::PgSchedulePageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { if (TsPreview == NewPage) { PreviewVmsScenarionForm(); } } //---------------------------------------------------------------------------