//--------------------------------------------------------------------------- #include #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #pragma hdrstop #include "VMSM530MF.h" #include "FrmVmsMsgFormMngrF.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 "VmsDesignerF" #pragma link "cxCalc" #pragma resource "*.dfm" TVMSM530M *VMSM530M = NULL; //--------------------------------------------------------------------------- __fastcall TVMSM530M::TVMSM530M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); ////CMM_LoadForm(g_sFormsDir, this); FTitle = Caption; m_bSelected = false; PnlOrg->ParentColor = false; PnlCopy1->ParentColor = false; PnlOrg->Color = clBlack; PnlCopy1->Color = clBlack; //PnlCopyForm1->ParentColor = false; //PnlCopyForm1->Color = clBlack; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::CommClose() { try { ////CMM_SaveForm(g_sFormsDir, this); SAFE_DELETE(m_pEdtDesigner1); SAFE_DELETE(m_pEdtDesigner2); CComm_Terminate(); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::FormShow(TObject *Sender) { int nResult = CComm_Initialize((long)Handle, g_AppCfg.PRCS_ID, "P04010", 0); m_pEdtDesigner1 = new TVmsFormDesigner(PnlCopyForm1); m_pEdtDesigner1->ApplicationHandle = (long)Handle; FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) { m_pEdtDesigner1->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL); } FOR_STL(TCDSBackColor*, pObj, CDSFontManager->FBackColors) { m_pEdtDesigner1->InitBackColor(pObj->VMS_BACK_COLR_CD, (TColor)pObj->VMS_BACK_COLR_VAL); } FOR_STL(TCDSFontName*, pObj, CDSFontManager->FFontNames) { m_pEdtDesigner1->InitFontName(pObj->VMS_FONT_NAME_CD, pObj->VMS_FONT_NAME_NM); } m_pEdtDesigner2 = new TVmsFormDesigner(PnlCopyForm2); m_pEdtDesigner2->ApplicationHandle = (long)Handle; FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) { m_pEdtDesigner2->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL); } FOR_STL(TCDSBackColor*, pObj, CDSFontManager->FBackColors) { m_pEdtDesigner2->InitBackColor(pObj->VMS_BACK_COLR_CD, (TColor)pObj->VMS_BACK_COLR_VAL); } FOR_STL(TCDSFontName*, pObj, CDSFontManager->FFontNames) { m_pEdtDesigner2->InitFontName(pObj->VMS_FONT_NAME_CD, pObj->VMS_FONT_NAME_NM); } Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::FormInit() { if (!CenterCommManager) { CenterCommManager = new TCenterCommManager(); } CenterCommManager->LoadFromDb(g_AppCfg.PRCS_ID); FCommCtrlTarget = CenterCommManager->FLists.Find("24"); // ±ä±Þ¹®¾Èµî·Ï if (FVmsFormType == FORM_TYPE_EMER) { GrpMessage->Caption = "¢º ¸Þ½ÃÁö ¼öµ¿Ç¥Ãâ *** ±ä±Þ¸Þ½ÃÁö"; } else { GrpMessage->Caption = "¢º ¸Þ½ÃÁö ¼öµ¿Ç¥Ãâ *** È«º¸¸Þ½ÃÁö"; } TDateTime dtEnd = Now() + ((double)1 / (double)24); DtStrDate->Date = Now(); DtEndDate->Date = dtEnd; DtStrTime->Time = Now(); DtEndTime->Time = dtEnd; BtnSaveMessage->Enabled = false; ChkCopy1->Checked = false; ChkCopy1->Enabled = false; BtnCenter1->Enabled = false; BtnFit1->Enabled = false; ChkCopy2->Checked = false; ChkCopy2->Enabled = false; BtnCenter2->Enabled = false; BtnFit2->Enabled = false; if (FVmsModlKind == "C0312_32") { GrpOrg->Caption = "¢º Æû ¿øº» (C0312_32) - " + FVmsFormId; GrpCopy1->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (F0312_32)"; GrpCopy2->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (F0315_32)"; formW = 384; formH = 96; copyW1 = 384; copyH1 = 96; copyW2 = 480; copyH2 = 96; FVmsModlKind_1 = "F0312_32"; FVmsModlKind_2 = "F0315_32"; } else if (FVmsModlKind == "F0312_32") { GrpOrg->Caption = "¢º Æû ¿øº» (F0312_32)"; GrpCopy1->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (C0312_32)"; GrpCopy2->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (F0315_32)"; formW = 384; formH = 96; copyW1 = 384; copyH1 = 96; copyW2 = 480; copyH2 = 96; FVmsModlKind_1 = "C0312_32"; FVmsModlKind_2 = "F0315_32"; } else if (FVmsModlKind == "F0315_32") { GrpOrg->Caption = "¢º Æû ¿øº» (F0315_32)"; GrpCopy1->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (C0312_32)"; GrpCopy2->Caption = "¢º º¹»çÇÒ ¸ðµâ Æû (F0312_32)"; formW = 480; formH = 96; copyW1 = 384; copyH1 = 96; copyW2 = 384; copyH2 = 96; FVmsModlKind_1 = "C0312_32"; FVmsModlKind_2 = "F0312_32"; } PnlOrg->Width = formW+4; PnlOrg->Height= formH+4; PnlCopy1->Width = copyW1+4; PnlCopy1->Height= copyH1+4; PnlCopy2->Width = copyW2+4; PnlCopy2->Height= copyH2+4; ImgOrg->Width = formW; ImgOrg->Height = formH; ImgOrg->Picture->Bitmap->Width = formW; ImgOrg->Picture->Bitmap->Height = formH; ImgOrg->Picture->Bitmap->Assign(ImgForm->Picture->Bitmap); m_pEdtDesigner1->Clear(); m_pEdtDesigner1->SizeType = FVmsModlKind; m_pEdtDesigner1->SetSize(copyW1, copyH1); m_pEdtDesigner1->SetPos(0, 0); m_pEdtDesigner1->BkColorCode = FBkColorCode; m_pEdtDesigner1->SetBkColor(m_pEdtDesigner1->BkColorCode); m_pEdtDesigner1->EditMode = false; m_pEdtDesigner1->Show(); m_pObj1 = m_pEdtDesigner1->AddObject(odtBmp); if (!m_pObj1) { String errMsg = "Æû º¹»ç °´Ã¼ ó¸® Áß¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù."; Application->MessageBox(errMsg.c_str(), L"Æû º¹»ç °´Ã¼ Ãß°¡ ½ÇÆÐ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } m_pObj1->ObjSeq = 1; m_pObj1->ObjId = "1"; m_pObj1->ObjKind = FORM_OBJ_KIND_IMAGE; m_pObj1->ObjType = m_pObj1->ObjKind; m_pObj1->ObjSize = 0; m_pObj1->ObjSize = ImgForm->Picture->Bitmap->Width * ImgForm->Picture->Bitmap->Height; m_pObj1->BkColorCode = m_pEdtDesigner1->BkColorCode; m_pObj1->Blink = false; m_pObj1->Tag = "N"; m_pObj1->Text = "ÆûÀ̹ÌÁö"; m_pObj1->ImageId = m_pObj1->ObjId; m_pObj1->SetSize(copyW1, copyH1); m_pObj1->GetImage()->AutoSize= false; m_pObj1->GetImage()->Stretch = true; m_pObj1->GetImage()->Width = copyW1; m_pObj1->GetImage()->Height = copyH1; m_pObj1->SetSize(copyW1, copyH1); m_pObj1->SetPos(0, 0); m_pObj1->GetImage()->Picture->LoadFromFile(FImageFileName); if (m_pObj1->Left < 0) m_pObj1->Left = 0; if (m_pObj1->Top < 0) m_pObj1->Top = 0; m_pObj1->Show(); m_pObj1->BringToFront(); m_pEdtDesigner2->Clear(); m_pEdtDesigner2->SizeType = FVmsModlKind; m_pEdtDesigner2->SetSize(copyW2, copyH2); m_pEdtDesigner2->SetPos(0, 0); m_pEdtDesigner2->BkColorCode = FBkColorCode; m_pEdtDesigner2->SetBkColor(m_pEdtDesigner2->BkColorCode); m_pEdtDesigner2->EditMode = false; m_pEdtDesigner2->Show(); m_pObj2 = m_pEdtDesigner2->AddObject(odtBmp); if (!m_pObj2) { String errMsg = "Æû º¹»ç °´Ã¼ ó¸® Áß¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù."; Application->MessageBox(errMsg.c_str(), L"Æû º¹»ç °´Ã¼ Ãß°¡ ½ÇÆÐ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } m_pObj2->ObjSeq = 1; m_pObj2->ObjId = "1"; m_pObj2->ObjKind = FORM_OBJ_KIND_IMAGE; m_pObj2->ObjType = m_pObj2->ObjKind; m_pObj2->ObjSize = 0; m_pObj2->ObjSize = ImgForm->Picture->Bitmap->Width * ImgForm->Picture->Bitmap->Height; m_pObj2->BkColorCode = m_pEdtDesigner2->BkColorCode; m_pObj2->Blink = false; m_pObj2->Tag = "N"; m_pObj2->Text = "ÆûÀ̹ÌÁö"; m_pObj2->ImageId = m_pObj2->ObjId; m_pObj2->SetSize(copyW2, copyH2); m_pObj2->GetImage()->AutoSize= false; m_pObj2->GetImage()->Stretch = true; m_pObj2->GetImage()->Width = copyW2; m_pObj2->GetImage()->Height = copyH2; m_pObj2->SetSize(copyW2, copyH2); m_pObj2->SetPos(0, 0); m_pObj2->GetImage()->Picture->LoadFromFile(FImageFileName); if (m_pObj2->Left < 0) m_pObj2->Left = 0; if (m_pObj2->Top < 0) m_pObj2->Top = 0; m_pObj2->Show(); m_pObj2->BringToFront(); ChkCopy1->Checked = true; ChkCopy1->Enabled = true; BtnCenter1->Enabled = true; BtnFit1->Enabled = true; ChkCopy2->Checked = true; ChkCopy2->Enabled = true; BtnCenter2->Enabled = true; BtnFit2->Enabled = true; m_pGDC = TvList->DataController; CMM_ClearGridTableView(TvList); TvList->BeginUpdate(); try { VmsCtlrManager->FLists.Lock(); FillVmsListByModlType(FVmsModlKind, FVmsFormId); FillVmsListByModlType(FVmsModlKind_1, ""); FillVmsListByModlType(FVmsModlKind_2, ""); } __finally { VmsCtlrManager->FLists.UnLock(); TvList->EndUpdate(); TvList->DataController->GotoFirst(); TvList->DataController->FocusedRecordIndex = 0; } } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::FillVmsListByModlType(String AModlType, String AFormId) { int nRow = 0; FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->USE_YN != "Y") continue; if (pObj->VMS_MODL_KIND != AModlType) continue; nRow = m_pGDC->AppendRecord(); m_pGDC->Values[nRow][ColumnSel->Index] = true; m_pGDC->Values[nRow][Column00->Index] = "-"; m_pGDC->Values[nRow][Column01->Index] = pObj->VMS_CTLR_ID; m_pGDC->Values[nRow][Column02->Index] = pObj->VMS_NM; m_pGDC->Values[nRow][Column03->Index] = pObj->VMS_TYPE_NM; m_pGDC->Values[nRow][Column11->Index] = pObj->LCS_CTLR_ID; m_pGDC->Values[nRow][Column12->Index] = pObj->VMS_MODL_KIND; m_pGDC->Values[nRow][Column13->Index] = AFormId; m_pGDC->Values[nRow][Column99->Index] = (int)pObj; } } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::UpdateVmsFormId(String AModlType, String AFormId) { try { TvList->BeginUpdate(); try { for(int nRow = 0; nRow < m_pGDC->RecordCount; nRow++) { String sVmsModlKind = VarToStr(m_pGDC->Values[nRow][Column12->Index]); if (AModlType == sVmsModlKind) { m_pGDC->Values[nRow][Column13->Index] = AFormId; } } } catch(Exception &e) { } } __finally { TvList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); VMSM530M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnCenter1Click(TObject *Sender) { TcxButton *pBtn = (TcxButton*)Sender; if (pBtn->Tag == 0) { m_pObj1->GetImage()->AutoSize= false; m_pObj1->GetImage()->Stretch = false; m_pObj1->GetImage()->Center = true; } else { m_pObj2->GetImage()->AutoSize= false; m_pObj2->GetImage()->Stretch = false; m_pObj2->GetImage()->Center = true; } EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnFit1Click(TObject *Sender) { TcxButton *pBtn = (TcxButton*)Sender; if (pBtn->Tag == 0) { m_pObj1->GetImage()->AutoSize= false; m_pObj1->GetImage()->Stretch = true; m_pObj1->GetImage()->Transparent = false; } else { m_pObj2->GetImage()->AutoSize= false; m_pObj2->GetImage()->Stretch = true; m_pObj2->GetImage()->Transparent = false; } EdFocus->SetFocus(); } //--------------------------------------------------------------------------- int __fastcall TVMSM530M::GetImageFileSize(String AFileName) { int nImageSize = 0; TMemoryStream *pPicStream = new TMemoryStream(); try { try { pPicStream->LoadFromFile(AFileName); nImageSize = pPicStream->Size; } catch(Exception &e) { String errMsg = "À̹ÌÁö ÆÄÀÏ Ã³¸® Áß¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.\r\n" + e.Message; Application->MessageBox(errMsg.c_str(), L"À̹ÌÁö ÆÄÀÏ Å©±â È®ÀÎ ½ÇÆÐ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return nImageSize; } } __finally { SAFE_DELETE(pPicStream); } return nImageSize; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnSaveClick(TObject *Sender) { if (!ChkCopy1->Checked && !ChkCopy2->Checked) { String errMsg = "ÆûÀ» º¹»ç ÇÒ ¸ðµâÀÌ ¼±Åà µÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nº¹»çÇÒ ¸ðµâ Æû¿¡¼­ 'Æû ÀúÀå' À» Ã¼Å©ÇØ ÁÖ¼¼¿ä."; Application->MessageBox(errMsg.c_str(), L"¸ðµâ Æû º¹»ç Ãß°¡", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } bool bResult = false; ITSDb_GetConnection()->BeginTrans(); if (ChkCopy1->Checked) { m_pEdtDesigner1->GetVmsFormImage(ImgCopy1); VMS_FORM_ID_1 = FrmVmsMsgFormMngr->GetNextVmsFormId(FVmsFormType); PICT_VMS_FORM_OBJ_ID_1 = FrmVmsMsgFormMngr->GetNewVmsFormPictObjId(); String imageFileName; String saveDirPath = TPath::GetTempPath() + "VMS\\"; ForceDirectories(saveDirPath.c_str()); imageFileName = saveDirPath + VMS_FORM_ID_1 + "_8.bmp"; ImgCopy1->Picture->SaveToFile(imageFileName); int nImageSize = GetImageFileSize(imageFileName); if (!FrmVmsMsgFormMngr->InsertVmsSymbLib(PICT_VMS_FORM_OBJ_ID_1, VMS_FORM_ID_1, "B", nImageSize, copyW1, copyH1, "Y", imageFileName)) { Application->MessageBox(L"VMS ¸ðµâ Æû ¿ÀºêÁ§Æ® Ãß°¡ ½ÇÆÐ\r\nVMS ¸ðµâ Æû Á¤º¸¸¦ º¹»ç Ãß°¡ Çϴµ¥ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ITSDb_GetConnection()->RollbackTrans(); return; } bResult = SaveVmsForm(VMS_FORM_ID_1, FVmsModlKind_1, ImgCopy1); if (bResult) { bResult = SaveVmsFormObject(VMS_FORM_ID_1, FVmsModlKind_1, PICT_VMS_FORM_OBJ_ID_1, copyW1, copyH1, ChkBlinking1->Checked ? "Y" : "N"); } } if (ChkCopy2->Checked) { m_pEdtDesigner2->GetVmsFormImage(ImgCopy2); VMS_FORM_ID_2 = FrmVmsMsgFormMngr->GetNextVmsFormId(FVmsFormType); PICT_VMS_FORM_OBJ_ID_2 = FrmVmsMsgFormMngr->GetNewVmsFormPictObjId(); String imageFileName; String saveDirPath = TPath::GetTempPath() + "VMS\\"; ForceDirectories(saveDirPath.c_str()); imageFileName = saveDirPath + VMS_FORM_ID_2 + "_8.bmp"; ImgCopy2->Picture->SaveToFile(imageFileName); int nImageSize = GetImageFileSize(imageFileName); if (!FrmVmsMsgFormMngr->InsertVmsSymbLib(PICT_VMS_FORM_OBJ_ID_2, VMS_FORM_ID_2, "B", nImageSize, copyW2, copyH2, "Y", imageFileName)) { Application->MessageBox(L"VMS ¸ðµâ Æû ¿ÀºêÁ§Æ® Ãß°¡ ½ÇÆÐ\r\nVMS ¸ðµâ Æû Á¤º¸¸¦ º¹»ç Ãß°¡ Çϴµ¥ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); ITSDb_GetConnection()->RollbackTrans(); return; } bResult = SaveVmsForm(VMS_FORM_ID_2, FVmsModlKind_2, ImgCopy2); if (bResult) { bResult = SaveVmsFormObject(VMS_FORM_ID_2, FVmsModlKind_2, PICT_VMS_FORM_OBJ_ID_2, copyW2, copyH2, ChkBlinking2->Checked ? "Y" : "N"); } } if (bResult) { ITSDb_GetConnection()->CommitTrans(); Application->MessageBox(L"VMS ¸ðµâ Æû º¹»ç Ãß°¡\r\nVMS ¸ðµâ Æû Á¤º¸¸¦ º¹»ç Ãß°¡ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); if (ChkCopy1->Checked) { GrpCopy1->Caption = GrpCopy1->Caption + " - " + VMS_FORM_ID_1; UpdateVmsFormId(FVmsModlKind_1, VMS_FORM_ID_1); } if (ChkCopy2->Checked) { GrpCopy2->Caption = GrpCopy2->Caption + " - " + VMS_FORM_ID_2; UpdateVmsFormId(FVmsModlKind_2, VMS_FORM_ID_2); } BtnSave->Enabled = false; BtnSaveMessage->Enabled = true; } else { ITSDb_GetConnection()->RollbackTrans(); Application->MessageBox(L"VMS ¸ðµâ Æû º¹»ç Ãß°¡ ½ÇÆÐ\r\nVMS ¸ðµâ Æû Á¤º¸¸¦ º¹»ç Ãß°¡ Çϴµ¥ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); } } //--------------------------------------------------------------------------- bool __fastcall TVMSM530M::SaveVmsForm(String AVMS_FORM_ID, String AVMS_MODL_KIND, TImage *AImgForm) { String sQry; TADOQuery *pADO = NULL; String VMS_FORM_ID = AVMS_FORM_ID; String VMS_MODL_KIND = AVMS_MODL_KIND; String VMS_FORM_TYPE = FVmsFormType; String VMS_FORM_NM = FVmsFormNm; String DSPL_EFF = FDsplEff; int DSPL_HR = FDsplHr; String BACK_CLR = FBkColorCode; String OPER_ID = g_AppCfg.OPER_ID; if (BACK_CLR == "0") BACK_CLR = "00"; sQry = "MERGE INTO TB_VMS_FORM L \r\n" "USING (SELECT :p01 AS VMS_FORM_ID, \r\n" " :p02 AS VMS_MODL_KIND, \r\n" " :p03 AS VMS_FORM_TYPE, \r\n" " :p04 AS VMS_FORM_NM, \r\n" " :p05 AS DSPL_EFF, \r\n" " :p06 AS DSPL_HR, \r\n" " :p07 AS BACK_CLR, \r\n" " :p08 AS OPER_ID \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_FORM_ID = M.VMS_FORM_ID) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET L.VMS_MODL_KIND = M.VMS_MODL_KIND, \r\n" " L.VMS_FORM_TYPE = M.VMS_FORM_TYPE, \r\n" " L.VMS_FORM_NM = M.VMS_FORM_NM, \r\n" " L.DSPL_EFF = M.DSPL_EFF, \r\n" " L.DSPL_HR = M.DSPL_HR, \r\n" " L.BACK_CLR = M.BACK_CLR, \r\n" " L.CHNGR_ID = M.OPER_ID, \r\n" " L.CHG_DT = SYSDATE \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT (VMS_FORM_ID, \r\n" " VMS_MODL_KIND, \r\n" " VMS_FORM_TYPE, \r\n" " VMS_FORM_NM, \r\n" " DSPL_EFF, \r\n" " DSPL_HR, \r\n" " BACK_CLR, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES (M.VMS_FORM_ID, \r\n" " M.VMS_MODL_KIND, \r\n" " M.VMS_FORM_TYPE, \r\n" " M.VMS_FORM_NM, \r\n" " M.DSPL_EFF, \r\n" " M.DSPL_HR, \r\n" " M.BACK_CLR, \r\n" " M.OPER_ID, \r\n" " SYSDATE ) \r\n"; TMemoryStream *dataStream = new TMemoryStream(); AImgForm->Picture->Bitmap->SaveToStream(dataStream); try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); pADO->Parameters->ParamByName("p01")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p02")->Value = VMS_MODL_KIND; pADO->Parameters->ParamByName("p03")->Value = VMS_FORM_TYPE; pADO->Parameters->ParamByName("p04")->Value = VMS_FORM_NM; pADO->Parameters->ParamByName("p05")->DataType = ftString; pADO->Parameters->ParamByName("p05")->Value = DSPL_EFF; pADO->Parameters->ParamByName("p06")->Value = DSPL_HR; pADO->Parameters->ParamByName("p07")->DataType = ftString; pADO->Parameters->ParamByName("p07")->Value = BACK_CLR; pADO->Parameters->ParamByName("p08")->DataType = ftString; pADO->Parameters->ParamByName("p08")->Value = OPER_ID; ITSDb_SQLExec(pADO); sQry = "UPDATE TB_VMS_FORM \r\n" " SET VMS_FORM_IMG = :p02 \r\n" " WHERE VMS_FORM_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", VMS_FORM_ID); if (dataStream->Size == 0) { ITSDb_SQLBind(pADO, "p01", ""); } else { pADO->Parameters->ParamByName("p02")->LoadFromStream(dataStream, ftBlob); } ITSDb_SQLExec(pADO); return true; } catch(EDatabaseError &E) { DBERRORMSG("TVMSM530M::SaveVmsForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVMSM530M::SaveVmsForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } if (dataStream) delete dataStream; dataStream = NULL; } return true; } //--------------------------------------------------------------------------- bool __fastcall TVMSM530M::SaveVmsFormObject(String AVMS_FORM_ID, String AVMS_MODL_KIND, String AVMS_FORM_OBJ_ID, int AWdth, int AHght, String AFORM_OBJ_BLNK_YN) { String sQry; TADOQuery *pADO = NULL; String VMS_FORM_ID = AVMS_FORM_ID; int SN = 1; String VMS_FORM_OBJ_KIND = FORM_OBJ_KIND_IMAGE; String VMS_FORM_OBJ_ID = AVMS_FORM_OBJ_ID; String BACK_CLR = "00"; int FORM_OBJ_PSTN_X = 0; int FORM_OBJ_PSTN_Y = 0; int FORM_OBJ_DSPL_WDTH = AWdth; int FORM_OBJ_DSPL_HGHT = AHght; String FORM_OBJ_BLNK_YN = AFORM_OBJ_BLNK_YN; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); // Æû ¿ÀºêÁ§Æ® ±¸¼ºÁ¤º¸ ÀúÀå sQry = "INSERT INTO TB_VMS_FORM_VMS_FORM_OBJ ( \r\n" " VMS_FORM_ID, \r\n" " SN, \r\n" " VMS_FORM_OBJ_KIND, \r\n" " VMS_FORM_OBJ_ID, \r\n" " BACK_CLR, \r\n" " FORM_OBJ_PSTN_X, \r\n" " FORM_OBJ_PSTN_Y, \r\n" " FORM_OBJ_DSPL_WDTH, \r\n" " FORM_OBJ_DSPL_HGHT, \r\n" " FORM_OBJ_BLNK_YN ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05, \r\n" " :p06, \r\n" " :p07, \r\n" " :p08, \r\n" " :p09, \r\n" " :p10 ) \r\n"; ITSDb_SQLText(pADO, sQry); pADO->Parameters->ParamByName("p01")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p02")->Value = SN; pADO->Parameters->ParamByName("p03")->Value = VMS_FORM_OBJ_KIND; pADO->Parameters->ParamByName("p04")->Value = VMS_FORM_OBJ_ID; pADO->Parameters->ParamByName("p05")->Value = BACK_CLR; pADO->Parameters->ParamByName("p06")->Value = FORM_OBJ_PSTN_X; pADO->Parameters->ParamByName("p07")->Value = FORM_OBJ_PSTN_Y; pADO->Parameters->ParamByName("p08")->Value = FORM_OBJ_DSPL_WDTH; pADO->Parameters->ParamByName("p09")->Value = FORM_OBJ_DSPL_HGHT; pADO->Parameters->ParamByName("p10")->Value = FORM_OBJ_BLNK_YN; ITSDb_SQLExec(pADO); } catch(EDatabaseError &E) { DBERRORMSG("TVMSM530M::SaveVmsFormObject", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVMSM530M::SaveVmsFormObject", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnAllSelectClick(TObject *Sender) { TcxButton *pBtn = (TcxButton*)Sender; CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag); } //--------------------------------------------------------------------------- void __fastcall TVMSM530M::BtnSaveMessageClick(TObject *Sender) { int nSelCnt = GetSelListItems(); if (0 == nSelCnt) { Application->MessageBox(L"VMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò°Å³ª ¼±ÅÃµÈ VMS¿¡¼­ VMS Æû ID Á¤º¸°¡ ¾ø½À´Ï´Ù.\r\nVMS ¸ñ·Ï¿¡¼­ ¼±ÅÃÇÑ VMS¿Í VMS Æû ID¸¦ È®ÀÎ ÇϽʽÿä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxList->SetFocus(); return; } FStrDay = DtStrDate->Date.FormatString("yyyymmdd"); FStrTime = DtStrTime->DateTime.FormatString("HHnn"); FEndDay = DtEndDate->Date.FormatString("yyyymmdd"); FEndTime = DtEndTime->DateTime.FormatString("HHnn"); String sStrTime = FStrDay + FStrTime; String sEndTime = FEndDay + FEndTime; if (sStrTime > sEndTime) { Application->MessageBox(L"Ç¥Ãâ ½ÃÀ۽ð¢ÀÌ Ç¥Ãâ Á¾·á½Ã°¢ º¸´Ù Å®´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = DtStrDate; return; } FWeek = ""; FWeek = FWeek + (ChkWeek0->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek1->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek2->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek3->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek4->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek5->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek6->Checked ? "1" : "0"); bool bResult; if (FVmsFormType == FORM_TYPE_EMER) { if (Application->MessageBox(L"[[[ ¸Þ½ÃÁö ¼öµ¿Ç¥Ãâ *** ±ä±Þ¸Þ½ÃÁö *** ]]]\r\n±ä±Þ¸Þ½ÃÁö¸¦ ¼öµ¿À¸·Î Ç¥ÃâÇÏ´Â °æ¿ì ÇöÀç ¸Þ½ÃÁö°¡ ´Üµ¶À¸·Î Ç¥ÃâµË´Ï´Ù.\r\n±ä±Þ¸Þ½ÃÁö ¼öµ¿Ç¥ÃâÀ» ÁøÇàÇϽðڽÀ´Ï±î?", FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; } BtnSaveMessage->Enabled = false; ITSDb_GetConnection()->BeginTrans(); if (FVmsFormType == FORM_TYPE_EMER) { FCommCtrlTarget = CenterCommManager->FLists.Find("24"); // ±ä±Þ¹®¾Èµî·Ï bResult = SaveEmerForm(); } else { FCommCtrlTarget = CenterCommManager->FLists.Find("22"); // VMSÇ¥Ãâ¹®¾È µî·Ï ¾Ë¸² bResult = SavePubrForm(); } if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } ITSDb_GetConnection()->CommitTrans(); if (FVmsFormType == FORM_TYPE_PUBR) { if (FCommCtrlTarget != NULL) { FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { int sendResult = CComm_VmsNotiRegDsplMsg(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT); if (VERR_NONE == sendResult) { } Sleep(200); } } } // OK Application->MessageBox(L"VMS ¸Þ½ÃÁö ¼öµ¿Ç¥ÃâÀ» Á¤»óÀûÀ¸·Î ÀúÀå ÇÏ¿´½À´Ï´Ù", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- bool __fastcall TVMSM530M::SavePubrForm() { String sQry; TADOQuery *pADO = NULL; try { TvList->BeginUpdate(); int nRows = TvList->ViewData->RecordCount; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); #if 0 sQry = "INSERT INTO TB_VMS_PUBRL_FORM ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_YMD, \r\n" " DSPL_FNSH_YMD, \r\n" " DSPL_WEEK, \r\n" " DSPL_BGN_HM, \r\n" " DSPL_FNSH_HM, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05, \r\n" " :p06, \r\n" " :p07, \r\n" " :p08, \r\n" " SYSDATE ) \r\n"; #else sQry = "MERGE INTO TB_VMS_PUBRL_FORM L \r\n" "USING (SELECT \r\n" " :p01 AS VMS_CTLR_ID, \r\n" " :p02 AS VMS_FORM_ID, \r\n" " :p03 AS DSPL_BGN_YMD, \r\n" " :p04 AS DSPL_FNSH_YMD, \r\n" " :p05 AS DSPL_WEEK, \r\n" " :p06 AS DSPL_BGN_HM, \r\n" " :p07 AS DSPL_FNSH_HM, \r\n" " :p08 AS RGSTR_ID, \r\n" " SYSDATE AS REG_DT \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_CTLR_ID = M.VMS_CTLR_ID \r\n" " AND L.VMS_FORM_ID = M.VMS_FORM_ID) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET \r\n" " L.DSPL_BGN_YMD = M.DSPL_BGN_YMD, \r\n" " L.DSPL_FNSH_YMD = M.DSPL_FNSH_YMD, \r\n" " L.DSPL_WEEK = M.DSPL_WEEK, \r\n" " L.DSPL_BGN_HM = M.DSPL_BGN_HM, \r\n" " L.DSPL_FNSH_HM = M.DSPL_FNSH_HM, \r\n" " L.CHNGR_ID = M.RGSTR_ID, \r\n" " L.CHG_DT = M.REG_DT \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_YMD, \r\n" " DSPL_FNSH_YMD, \r\n" " DSPL_WEEK, \r\n" " DSPL_BGN_HM, \r\n" " DSPL_FNSH_HM, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " M.VMS_CTLR_ID, \r\n" " M.VMS_FORM_ID, \r\n" " M.DSPL_BGN_YMD, \r\n" " M.DSPL_FNSH_YMD, \r\n" " M.DSPL_WEEK, \r\n" " M.DSPL_BGN_HM, \r\n" " M.DSPL_FNSH_HM, \r\n" " M.RGSTR_ID, \r\n" " M.REG_DT ) \r\n"; #endif ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nRows; ii++) { String VMS_FORM_ID; TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii]; bool bSelected = (bool)ARow->Values[ColumnSel->Index]; if (bSelected) { VMS_FORM_ID = VarToStr(ARow->Values[Column13->Index]); if (VMS_FORM_ID == "") { continue; } } String VMS_CTLR_ID = VarToStr(ARow->Values[Column01->Index]); pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p03")->Value = FStrDay; pADO->Parameters->ParamByName("p04")->Value = FEndDay; pADO->Parameters->ParamByName("p05")->Value = FWeek; pADO->Parameters->ParamByName("p06")->Value = FStrTime; pADO->Parameters->ParamByName("p07")->Value = FEndTime; pADO->Parameters->ParamByName("p08")->Value = g_AppCfg.OPER_ID; ITSDb_SQLExec(pADO); } } catch(EDatabaseError &E) { DBERRORMSG("TVMSM530M::SavePubrForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVMSM530M::SavePubrForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { TvList->EndUpdate(); if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TVMSM530M::SaveEmerForm() { String sQry; TADOQuery *pADO = NULL; try { TvList->BeginUpdate(); int nRows = TvList->ViewData->RecordCount; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); #if 0 sQry = "INSERT INTO TB_VMS_EMGNC_FORM ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_DT, \r\n" " DSPL_FNSH_DT, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p08, \r\n" " SYSDATE ) \r\n"; #else sQry = "MERGE INTO TB_VMS_EMGNC_FORM L \r\n" "USING (SELECT \r\n" " :p01 AS VMS_CTLR_ID, \r\n" " :p02 AS VMS_FORM_ID, \r\n" " :p03 AS DSPL_BGN_DT, \r\n" " :p04 AS DSPL_FNSH_DT, \r\n" " :p08 AS RGSTR_ID, \r\n" " SYSDATE AS REG_DT \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_CTLR_ID = M.VMS_CTLR_ID \r\n" " AND L.VMS_FORM_ID = M.VMS_FORM_ID \r\n" " AND TO_CHAR(L.DSPL_BGN_DT, \r\n" " 'YYYYMMDDHH24MISS') = M.DSPL_BGN_DT) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET \r\n" " L.DSPL_FNSH_DT = \r\n" " TO_DATE(M.DSPL_FNSH_DT, 'YYYYMMDDHH24MISS'), \r\n" " L.RGSTR_ID = M.RGSTR_ID, \r\n" " L.REG_DT = M.REG_DT \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_DT, \r\n" " DSPL_FNSH_DT, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " M.VMS_CTLR_ID, \r\n" " M.VMS_FORM_ID, \r\n" " TO_DATE(M.DSPL_BGN_DT, 'YYYYMMDDHH24MISS'), \r\n" " TO_DATE(M.DSPL_FNSH_DT, 'YYYYMMDDHH24MISS'), \r\n" " M.RGSTR_ID, \r\n" " M.REG_DT ) \r\n"; #endif ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nRows; ii++) { String VMS_FORM_ID; TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii]; bool bSelected = (bool)ARow->Values[ColumnSel->Index]; if (bSelected) { VMS_FORM_ID = VarToStr(ARow->Values[Column13->Index]); if (VMS_FORM_ID == "") { continue; } } String VMS_CTLR_ID = VarToStr(ARow->Values[Column01->Index]); pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p03")->Value = FStrDay + FStrTime + "00"; pADO->Parameters->ParamByName("p04")->Value = FEndDay + FEndTime + "00"; pADO->Parameters->ParamByName("p08")->Value = g_AppCfg.OPER_ID; ITSDb_SQLExec(pADO); if (FCommCtrlTarget != NULL) { FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { int sendResult = CComm_VmsNotiRegEmgnMsg(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, VMS_CTLR_ID); if (VERR_NONE == sendResult) { } Sleep(200); } } } } catch(EDatabaseError &E) { DBERRORMSG("TVMSM530M::SaveEmerForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVMSM530M::SaveEmerForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { TvList->EndUpdate(); if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- int __fastcall TVMSM530M::GetSelListItems() { int nSelected = 0; try { bool bSelected; TvList->BeginUpdate(); int nRows = TvList->ViewData->RecordCount; for (int ii = 0; ii < nRows; ii++) { TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii]; bSelected = (bool)ARow->Values[ColumnSel->Index]; if (bSelected) { String sVmsFormId = VarToStr(ARow->Values[Column13->Index]); if (sVmsFormId != "") { nSelected++; } } } } __finally { TvList->EndUpdate(); } return nSelected; } //---------------------------------------------------------------------------