//--------------------------------------------------------------------------- #pragma hdrstop #include #include #include #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSVmsFormF.h" #pragma hdrstop #include "FrmVmsMsgFormMngrF.h" #include "FrmVmsMsgFormMngrSRCF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) void __fastcall TFrmVmsMsgFormMngr::LoadFormObjectInfo(String AFormId, TVmsFormDesigner *ADesigner, String AFormType) { FFormObjCellMap.RemoveAll(); ADesigner->Clear(); String sQry; TADOQuery *pADO = NULL; String imageFilePath; String saveDirPath = TPath::GetTempPath() + "VMS-FORM\\"; ForceDirectories(saveDirPath.c_str()); sQry = "SELECT A.VMS_FORM_ID, A.VMS_FORM_OBJ_ID, A.SN AS OBJ_SEQ, A.VMS_FORM_OBJ_KIND, \r\n" " NVL(A.BACK_CLR, '00') AS BACK_CLR, \r\n" " A.FORM_OBJ_PSTN_X, A.FORM_OBJ_PSTN_Y, A.FORM_OBJ_BLNK_YN, \r\n" " NVL(A.FORM_OBJ_DSPL_WDTH, 0) AS FORM_OBJ_DSPL_WDTH, \r\n" " NVL(A.FORM_OBJ_DSPL_HGHT, 0) AS FORM_OBJ_DSPL_HGHT, \r\n" " DECODE(B.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_CCTV_OBJ, \r\n" " DECODE(C.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_TEXT_OBJ, \r\n" " DECODE(D.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_SYMB_OBJ, \r\n" " DECODE(E.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_MOVE_OBJ, \r\n" " B.CCTV_ID, \r\n" " C.TXT_WDTH, C.TXT_HGHT, C.TXT_ALGN_MTHD, \r\n" " C.FONT_CLR, C.FONT_TYPE, C.FONT_SZ, NVL(C.FONT_THCK, 'N') AS FONT_THCK, \r\n" " C.VMS_TXT_ITEM_ID, C.DSPL_TXT, \r\n" " D.PICT_NM, D.PICT_WDTH, D.PICT_HGHT, \r\n" " D.PICT_DATA_SZ, D.PICT_DATA, D.PICT_TYPE, \r\n" " E.MOV_NM, E.MOV_DATA_SZ, E.MOV_TYPE, E.THMB_IMG \r\n" " FROM TB_VMS_FORM_VMS_FORM_OBJ A, \r\n" " TB_VMS_FORM_OBJ_CCTV B, \r\n" " TB_VMS_FORM_OBJ_TXT C, \r\n" " TB_VMS_FORM_OBJ_PICT D, \r\n" " TB_VMS_FORM_OBJ_MOV E \r\n" " WHERE 1=1 \r\n" " AND A.VMS_FORM_ID = :p01 \r\n" " AND A.VMS_FORM_OBJ_ID = B.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = C.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = D.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = E.VMS_FORM_OBJ_ID(+) \r\n" " ORDER BY A.VMS_FORM_ID, A.SN \r\n"; 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; for( ; !pADO->Eof; pADO->Next()) { String sFormId = pADO->FieldByName("VMS_FORM_ID")->AsString; String sObjId = pADO->FieldByName("VMS_FORM_OBJ_ID")->AsString; int nObjSeq = pADO->FieldByName("OBJ_SEQ")->AsInteger; String sObjKind = pADO->FieldByName("VMS_FORM_OBJ_KIND")->AsString; String sBackClr = pADO->FieldByName("BACK_CLR")->AsString; int nPosX = pADO->FieldByName("FORM_OBJ_PSTN_X")->AsInteger; int nPosY = pADO->FieldByName("FORM_OBJ_PSTN_Y")->AsInteger; bool bBlinking = pADO->FieldByName("FORM_OBJ_BLNK_YN")->AsString == "N" ? false : true; int nDsplWdth = pADO->FieldByName("FORM_OBJ_DSPL_WDTH")->AsInteger; int nDsplHght = pADO->FieldByName("FORM_OBJ_DSPL_HGHT")->AsInteger; int isCctvObj = pADO->FieldByName("IS_CCTV_OBJ")->AsInteger; int isTextObj = pADO->FieldByName("IS_TEXT_OBJ")->AsInteger; int isSymbObj = pADO->FieldByName("IS_SYMB_OBJ")->AsInteger; int isMoveObj = pADO->FieldByName("IS_MOVE_OBJ")->AsInteger; int nObjType = 0; int nDsplSize = 0; String sDsplText = ""; if (sObjKind == FORM_OBJ_KIND_FIGURE) { TFormObjCell *pCell = new TFormObjCell(); pCell->OBJ_SEQ = pADO->FieldByName("OBJ_SEQ")->AsInteger; pCell->OBJ_ID = pADO->FieldByName("VMS_FORM_OBJ_ID")->AsString; pCell->OBJ_PSTN_X = pADO->FieldByName("FORM_OBJ_PSTN_X")->AsInteger; pCell->OBJ_PSTN_Y = pADO->FieldByName("FORM_OBJ_PSTN_Y")->AsInteger; FFormObjCellMap.Push(pCell->OBJ_SEQ, pCell); continue; } if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { sDsplText = pADO->FieldByName("CCTV_ID")->AsString; //nDsplWdth = pADO->FieldByName("DSPL_WDTH")->AsInteger; //nDsplHght = pADO->FieldByName("DSPL_HGHT")->AsInteger; nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 2; //À̹ÌÁö nDsplSize = nDsplWdth * nDsplHght; } else if (sObjKind == FORM_OBJ_KIND_TEXT && isTextObj == 1) { sDsplText = pADO->FieldByName("DSPL_TXT")->AsString; nDsplWdth = pADO->FieldByName("TXT_WDTH")->AsInteger; nDsplHght = pADO->FieldByName("TXT_HGHT")->AsInteger; nDsplSize = sDsplText.Length(); nDrawType = 0; //¹®ÀÚ¿­±×¸®±â nObjType = 0; //¹®ÀÚ¿­ } else if (sObjKind == FORM_OBJ_KIND_IMAGE && isSymbObj == 1) { sDsplText = pADO->FieldByName("PICT_NM")->AsString; nDsplSize = pADO->FieldByName("PICT_DATA_SZ")->AsInteger; if (nDsplWdth <= 0 || nDsplHght <= 0) { nDsplWdth = pADO->FieldByName("PICT_WDTH")->AsInteger; nDsplHght = pADO->FieldByName("PICT_HGHT")->AsInteger; } nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 1; //À̹ÌÁö½É¹ú } else if (sObjKind == FORM_OBJ_KIND_MOVIE && isMoveObj == 1) { sDsplText = pADO->FieldByName("MOV_NM")->AsString; nDsplSize = pADO->FieldByName("MOV_DATA_SZ")->AsInteger; nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 1; //À̹ÌÁö½É¹ú } else { continue; } /////// Æû°´Ã¼¸¦ »ý¼ºÇؼ­ Ãß°¡ÇÑ´Ù. TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) continue; pObj->ObjSeq = nObjSeq; pObj->ObjId = sObjId; pObj->ObjKind = sObjKind; pObj->ObjType = sObjKind; pObj->Tag = 0; pObj->ObjSize = nDsplSize; pObj->BkColorCode = sBackClr; pObj->Blink = bBlinking; pObj->ImageId = sObjId; pObj->Text = sDsplText; pObj->RunText = pObj->Text; pObj->SetPos(nPosX, nPosY); if (sObjKind == FORM_OBJ_KIND_TEXT && isTextObj == 1) // ¹®ÀÚ¿­ { String sTxtItemId = pADO->FieldByName("VMS_TXT_ITEM_ID")->AsString; String sTxtAlgn = pADO->FieldByName("TXT_ALGN_MTHD")->AsString; String sFontClr = pADO->FieldByName("FONT_CLR")->AsString; String sFontType = pADO->FieldByName("FONT_TYPE")->AsString; int nFontSize = pADO->FieldByName("FONT_SZ")->AsInteger; bool bFontThck = pADO->FieldByName("FONT_THCK")->AsString == "N" ? false : true; int nTextAlign = 0; if (sTxtAlgn == "R") nTextAlign = 1; if (sTxtAlgn == "C") nTextAlign = 2; pObj->FillIn = sTxtItemId; pObj->FontNameCode = sFontType; TCDSFontName *pFontName = CDSFontManager->FFontNames.Find(pObj->FontNameCode); if (pFontName != NULL) { pObj->FontName = pFontName->VMS_FONT_NAME_NM; } else { pObj->FontName = "¸íÁ¶Ã¼"; pObj->FontNameCode = "00"; } pObj->FontColorCode = sFontClr; pObj->FontSize = nFontSize; pObj->FontBold = bFontThck; pObj->TextAlign = nTextAlign; } else if (sObjKind == FORM_OBJ_KIND_IMAGE && isSymbObj == 1) { if (pObj->ObjKind == OBJKIND_IMAGEID) { if (pObj->Text.Trim() == "") { pObj->Text = pObj->ImageId; } } TMemoryStream *pictData = new TMemoryStream(); try { String sPictType = pADO->FieldByName("PICT_TYPE")->AsString; String sPictExt = DbPictTypeToReal(sPictType); if (pictData != NULL) { pictData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead)); if (pictData && pictData->Size > 0) { imageFilePath = saveDirPath + sObjId + "." + sPictExt; pictData->SaveToFile(imageFilePath); LoadingImage(pObj, imageFilePath, nDsplWdth, nDsplHght); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nDsplWdth; pObj->GetImage()->Height = nDsplHght; pObj->SetSize(nDsplWdth, nDsplHght); pObj->SetPos(nPosX, nPosY); } } } __finally { SAFE_DELETE(pictData); } } else if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { if (pObj->ObjKind == OBJKIND_IMAGEID) { if (pObj->Text.Trim() == "") { pObj->Text = pObj->ImageId; } } pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = false; pObj->GetImage()->Center = true; pObj->GetImage()->Width = nDsplWdth; pObj->GetImage()->Height = nDsplHght; pObj->GetImage()->Picture->Bitmap->Assign(ImgStream->Picture->Bitmap); pObj->SetSize(nDsplWdth, nDsplHght); pObj->SetPos(nPosX, nPosY); } else if (sObjKind == FORM_OBJ_KIND_MOVIE && isMoveObj == 1) { if (pObj->ObjKind == OBJKIND_IMAGEID) { if (pObj->Text.Trim() == "") { pObj->Text = pObj->ImageId; } } TMemoryStream *imagData = new TMemoryStream(); try { String sPictExt = "bmp"; if (imagData != NULL) { imagData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("THMB_IMG"), bmRead)); if (imagData && imagData->Size > 0) { imageFilePath = saveDirPath + sObjId + "." + sPictExt; imagData->SaveToFile(imageFilePath); LoadingImage(pObj, imageFilePath, nDsplWdth, nDsplHght); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nDsplWdth; pObj->GetImage()->Height = nDsplHght; pObj->SetSize(nDsplWdth, nDsplHght); pObj->SetPos(nPosX, nPosY); } } } __finally { SAFE_DELETE(imagData); } } pObj->Show(); pObj->BringToFront(); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::LoadFormObjectInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { DBERRORMSG("TFrmVmsMsgFormMngr::LoadFormObjectInfo", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgFormMngr::LoadVmsForm() { FormClear(); CMM_ClearGridTableView(TvList); ClearSymbloList(); TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType); if (pVmsSizeType == NULL) return; String sWhereQry = ""; if (pVmsSizeType->TypeCd != "ALL") { sWhereQry += " AND A.VMS_MODL_KIND = '" + pVmsSizeType->TypeCd + "' \r\n"; } FVmsTypeCd = pVmsSizeType->TypeCd; FVmsWidth = pVmsSizeType->Width; FVmsHeight = pVmsSizeType->Height; FVmsCols = pVmsSizeType->Cols; FVmsRows = pVmsSizeType->Rows; FIsLcsModl = pVmsSizeType->IsLcs; FVmsModlKind = FVmsTypeCd; SeLeft->Properties->MaxValue = FVmsWidth; SeTop->Properties->MaxValue = FVmsHeight; SeObjW->Properties->MaxValue = FVmsWidth; SeObjH->Properties->MaxValue = FVmsHeight; ImgForm->Width = FVmsWidth; ImgForm->Height = FVmsHeight; ImgForm->Picture->Bitmap->Width = FVmsWidth; ImgForm->Picture->Bitmap->Height = FVmsHeight; { PnlEdtBack->Width = FVmsWidth+4; PnlEdtBack->Height= FVmsHeight+4; PnlRePreview->Width = FVmsWidth+4; PnlRePreview->Height= FVmsHeight+4; PnlRePreview->Color = clWhite; ImgEdtPreview->Left = 2; ImgEdtPreview->Top = 2; ImgEdtPreview->Width = FVmsWidth; ImgEdtPreview->Height= FVmsHeight; ImgEdtPreview->Picture->Bitmap->Width = FVmsWidth; ImgEdtPreview->Picture->Bitmap->Height = FVmsHeight; m_pEdtDesigner->DrawPreviewModuleBack(ImgEdtPreview, clBlack, FVmsRows, FVmsCols); #if 0 #if 0 ReForm->Width = FVmsWidth+22+4; ReForm->Height= FVmsHeight+22+4; #else ReForm->Width = FVmsWidth+4; ReForm->Height= FVmsHeight+4; #endif #endif ReForm->Color = clBlack; m_pEdtDesigner->Clear(); m_pEdtDesigner->SizeType = FVmsTypeCd; m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight); m_pEdtDesigner->SetPos(0, 0); m_pEdtDesigner->BkColorCode = "00"; m_pEdtDesigner->EditMode = true; m_pEdtDesigner->Show(); } String sVmsSizeNm = pVmsSizeType->TypeNm; String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.VMS_FORM_ID, A.VMS_MODL_KIND, A.VMS_FORM_TYPE, A.VMS_FORM_NM, \r\n" " A.DSPL_EFF, NVL(A.DSPL_HR, 0) AS DSPL_HR, A.BACK_CLR, \r\n" " NVL(B.FORM_TYPE_NM, A.VMS_FORM_TYPE) AS FORM_TYPE_NM, \r\n" " NVL(C.FORM_TYPE_NM, A.DSPL_EFF) AS DSPL_EFF_NM, \r\n" " NVL(D.VMS_MODL_KIND_NM, A.VMS_MODL_KIND) AS VMS_MODL_KIND_NM \r\n" " FROM TB_VMS_FORM A, \r\n" " (SELECT CODE_NO, CD_NM AS FORM_TYPE_NM \r\n" " FROM TB_SYS_CD \r\n" " WHERE CLSS_CD = 'VMS_FORM_TYPE_CD') B, \r\n" " (SELECT CODE_NO, CD_NM AS FORM_TYPE_NM \r\n" " FROM TB_SYS_CD \r\n" " WHERE CLSS_CD = 'VMS_FORM_DSPL_EFF_CD') C, \r\n" " TB_VMS_MODL_KIND D \r\n" " WHERE 1=1 \r\n" " AND A.VMS_FORM_TYPE = B.CODE_NO(+) \r\n" " AND A.DSPL_EFF = C.CODE_NO(+) \r\n" " AND A.VMS_MODL_KIND = D.VMS_MODL_KIND(+) \r\n"; sQry += sWhereQry; sQry +=" ORDER BY A.VMS_MODL_KIND, A.VMS_FORM_ID \r\n"; String sFirstFormId = ""; try { int nRow; TcxDataController *pGDC = TvList->DataController; TvList->BeginUpdate(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { nRow = pGDC->AppendRecord(); String sVmsFormId = pADO->FieldByName("VMS_FORM_ID")->AsString; if (sFirstFormId == "") sFirstFormId = sVmsFormId; String DSPL_EFF = pADO->FieldByName("DSPL_EFF")->AsString; pGDC->Values[nRow][ColVMS_FORM_ID->Index] = sVmsFormId; //ÆûID pGDC->Values[nRow][ColVMS_FORM_NM->Index] = pADO->FieldByName("VMS_FORM_NM")->AsVariant; //Æû¸íĪ pGDC->Values[nRow][ColVMS_FORM_TYPE_NM->Index] = pADO->FieldByName("FORM_TYPE_NM")->AsString; //ÆûÁ¾·ù pGDC->Values[nRow][ColDSPL_EFF_NM->Index] = pADO->FieldByName("DSPL_EFF_NM")->AsString; //Ç¥ÃâÈ¿°ú pGDC->Values[nRow][ColVMS_MODL_KIND_NM->Index] = pADO->FieldByName("VMS_MODL_KIND_NM")->AsString; //ÆûÅ©±â pGDC->Values[nRow][ColDSPL_HR->Index] = pADO->FieldByName("DSPL_HR")->AsInteger; //Ç¥Ãâ½Ã°£ pGDC->Values[nRow][ColVMS_FORM_TYPE->Index] = pADO->FieldByName("VMS_FORM_TYPE")->AsString; //ÆûÁ¾·ùÄÚµå- pGDC->Values[nRow][ColDSPL_EFF->Index] = pADO->FieldByName("DSPL_EFF")->AsString; //Ç¥ÃâÈ¿°ú pGDC->Values[nRow][ColBACK_CLR->Index] = pADO->FieldByName("BACK_CLR")->AsString; //¹è°æ»öÄÚµå- pGDC->Values[nRow][ColVMS_MODL_KIND->Index] = pADO->FieldByName("VMS_MODL_KIND")->AsString; //ÆûÅ©±âÄÚµå- #if 0 Graphics::TBitmap *bitmap = new Graphics::TBitmap; try { bitmap->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("VMS_FORM_IMAG"), bmRead)); } catch(Exception &e) { //throw Exception(String(e.ClassName()) + e.Message); } FListSymb->Add(bitmap); #endif } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::LoadVmsForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::LoadVmsForm", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvList->EndUpdate(); if (TvList->DataController->RecordCount > 0) { //CMM_SetGridRow(CxList, TvList, sFirstFormId, ColVMS_FORM_ID->Index); //DisplayInfo(); } } } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgFormMngr::SaveVmsForm(String AVALID_YN) { String sQry; TADOQuery *pADO = NULL; String VMS_FORM_ID = EdFormId->Text; String VMS_MODL_KIND = APP_GetCode(CbSizeType); // FVmsTypeCd String VMS_FORM_TYPE = APP_GetCode(CbFormType); String VMS_FORM_NM = EdFormName->Text.Trim(); String DSPL_EFF = APP_GetCode(CbFormDsplEff); int DSPL_HR = SeDsplHr->Value; String BACK_CLR = CDSFontManager->GetBackColorCode(CbFormBkClr->ItemIndex); 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(); ImgForm->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("TFrmVmsMsgFormMngr::SaveVmsForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::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 TFrmVmsMsgFormMngr::CheckVmsFormUse(String AFormId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); #if 0 sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_DSPL_PLAN_MSG \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMSÇ¥Ãâ°èȹ¸Þ½ÃÁö] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } #endif sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_LCS_PROV_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [LCSÁ¦°øÆû] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_ONE_CLCK_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMS¿øÅ¬¸¯Æû] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_INCD_RES_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMSµ¹¹ß»óȲ´ëÀÀ¸Þ½ÃÁö] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_EMGNC_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMS±ä±Þ¸Þ½ÃÁö] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_PUBRL_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMSÈ«º¸¸Þ½ÃÁö] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_DFLT_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMS±âº»Æû±¸¼º] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_SCNR_VMS_FORM \r\n" " WHERE VMS_FORM_ID = :p01 \r\n" " GROUP BY VMS_FORM_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS Æû »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS Æû Á¤º¸°¡ [VMS½Ã³ª¸®¿À] ¿¡¼­ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::CheckVmsFormUse", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::CheckVmsFormUse", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgFormMngr::DelVmsFormRltnTable(String AFormId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "DELETE TB_VMS_FORM_OBJ_TXT \r\n" " WHERE VMS_FORM_OBJ_ID IN (SELECT VMS_FORM_OBJ_ID \r\n" " FROM TB_VMS_FORM_VMS_FORM_OBJ \r\n" " WHERE VMS_FORM_ID = :p01) \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); pADO->ExecSQL(); sQry = "DELETE TB_VMS_FORM_VMS_FORM_OBJ WHERE VMS_FORM_ID = :p01"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::DelVmsFormRltnTable", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::DelVmsFormRltnTable", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgFormMngr::DelVmsForm(String AFormId) { String sQry; TADOQuery *pADO = NULL; if (!DelVmsFormRltnTable(AFormId)) { return false; } try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "DELETE TB_VMS_FORM WHERE VMS_FORM_ID = :p01"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::DelVmsForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::DelVmsForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- String __fastcall TFrmVmsMsgFormMngr::GetNextVmsFormId(String AFormType) { String sQry; TADOQuery *pADO = NULL; String result = AFormType + "-0000"; sQry = "SELECT '" + AFormType + "-' || LPAD(NVL(MAX(SUBSTR(VMS_FORM_ID, -4)), '0000') + 1, 4, '0') AS NEWID FROM TB_VMS_FORM WHERE SUBSTR(VMS_FORM_ID,1,2)='" + AFormType + "-'"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLOpen(pADO); pADO->Open(); result = pADO->FieldByName("NEWID")->AsString; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::GetNextVmsFormId", String(E.ClassName()), E.Message, sQry); return result; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::GetNextVmsFormId", String(e.ClassName()), e.Message, sQry); return result; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return result; } //---------------------------------------------------------------------------