//--------------------------------------------------------------------------- #pragma hdrstop #include #include #include #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSVmsFormF.h" #pragma hdrstop #include "FrmVmsMsgUserDispF.h" #include "FrmVmsMsgUserDispSrcF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) void __fastcall TFrmVmsMsgUserDisp::LoadFormObjectInfo(String AFormId, TVmsFormDesigner *ADesigner, String AFormType) { 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" " 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" " 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, \r\n" " D.PICT_HGHT, D.PICT_DATA_SZ, \r\n" " D.PICT_DATA, D.PICT_TYPE \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" " 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" " 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; String sObjKind; 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 isCctvObj = pADO->FieldByName("IS_CCTV_OBJ")->AsInteger; int isTextObj = pADO->FieldByName("IS_TEXT_OBJ")->AsInteger; int isSymbObj = pADO->FieldByName("IS_SYMB_OBJ")->AsInteger; int nObjType = 0; int nDsplWdth = 0; int nDsplHght = 0; int nDsplSize = 0; String sDsplText = ""; if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { sDsplText = pADO->FieldByName("CCTV_ID")->AsString; nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 2; //À̹ÌÁö nDsplWdth = ADesigner->Width; nDsplHght = ADesigner->Height; 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; nDsplWdth = pADO->FieldByName("PICT_WDTH")->AsInteger; nDsplHght = pADO->FieldByName("PICT_HGHT")->AsInteger; nDsplSize = pADO->FieldByName("PICT_DATA_SZ")->AsInteger; //TMemoryStream *pictData = pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead); //SAFE_DELETE(pictData); nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 1; //À̹ÌÁö½É¹ú } else { continue; } /////// Æû°´Ã¼¸¦ »ý¼ºÇؼ­ Ãß°¡ÇÑ´Ù. TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) continue; if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { pObj->EditMode = false; } 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(sPictExt); 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); #if 0 Graphics::TBitmap *Bitmap = pObj->GetBitmap(); pictData->Position = 0; Bitmap->LoadFromStream(pictData); #ifdef IMAGE_RESIZE pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nWidth; pObj->GetImage()->Height = nHeight; pObj->SetSize(nDsplWdth, nDsplHght); #else pObj->SetSize(Bitmap->Width, Bitmap->Height); #endif #endif pObj->SetPos(nPosX, nPosY); } } __finally { SAFE_DELETE(pictData); } } pObj->Show(); pObj->BringToFront(); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::LoadFormObjectInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { DBERRORMSG("TFrmVmsMsgUserDisp::LoadFormObjectInfo", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::LoadVmsForm() { #if 0 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; 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("TFrmVmsMsgUserDisp::LoadVmsForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::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(); } } #endif } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::SaveVmsForm(String AVALID_YN) { String sQry; TADOQuery *pADO = NULL; String VMS_FORM_ID = FVMS_FORM_ID; String VMS_MODL_KIND = FVMS_MODL_KIND; String VMS_FORM_TYPE = FVMS_FORM_TYPE; String VMS_FORM_NM = FVMS_FORM_NM; String DSPL_EFF = FDSPL_EFF; int DSPL_HR = FDSPL_HR; String BACK_CLR = FBACK_CLR; String OPER_ID = FOPER_ID; 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("TFrmVmsMsgUserDisp::SaveVmsForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::SaveVmsFormObject() { bool bResult = false; String sQry; TADOQuery *pADO = NULL; TVmsFormObject *pFormObj = NULL; TcxGridDataController *pGDC = TvObjList->DataController; String VMS_FORM_ID = FVMS_FORM_ID; String OBJ_VMS_FORM_ID = FVMS_FORM_ID.SubString(1, 6); int newObjSeq = 1; // ½Å±Ô·Î Ãß°¡ÇÏ´Â ¸Þ½ÃÁö int nObjCnt = pGDC->RecordCount; 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_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"; ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nObjCnt; ii++) { String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]); pFormObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (!pFormObj) continue; //ÀÌ·ÂÀ¸·Î Á¶È¸Çϴ°÷¿¡¼­ ÁÂÇ¥¸¦ 0x02·Î ÀúÀåÇϴµ¥ À½¼ö°¡ ³ª¿À´Â °æ¿ì //2ÀÚ¸®·Î 󸮰¡ µÇÁö ¾Ê±â ¶§¹®¿¡ ¿©±â¼­ ¸·¾ÆÁØ´Ù. if (pFormObj->Left < 0) pFormObj->Left = 0; if (pFormObj->Top < 0) pFormObj->Top = 0; int SN = ii+1; String VMS_FORM_OBJ_KIND = pFormObj->ObjKind; String VMS_FORM_OBJ_ID = pFormObj->ObjId; if (VMS_FORM_OBJ_ID == "") { VMS_FORM_OBJ_ID.printf(L"%s-%03d", OBJ_VMS_FORM_ID, newObjSeq++); pFormObj->ObjId = VMS_FORM_OBJ_ID; } String BACK_CLR = pFormObj->BkColorCode; int FORM_OBJ_PSTN_X = pFormObj->Left; int FORM_OBJ_PSTN_Y = pFormObj->Top; String FORM_OBJ_BLNK_YN = pFormObj->Blink ? "Y" : "N"; 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")->DataType = ftString; 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")->DataType = ftString; pADO->Parameters->ParamByName("p08")->Value = FORM_OBJ_BLNK_YN; ITSDb_SQLExec(pADO); } // ÅØ½ºÆ® ¿ÀºêÁ§Æ® Á¤º¸ ÀúÀå sQry = "INSERT INTO TB_VMS_FORM_OBJ_TXT ( \r\n" " VMS_FORM_OBJ_ID, \r\n" " TXT_WDTH, \r\n" " TXT_HGHT, \r\n" " TXT_ALGN_MTHD, \r\n" " FONT_CLR, \r\n" " FONT_TYPE, \r\n" " FONT_SZ, \r\n" " FONT_THCK, \r\n" " VMS_TXT_ITEM_ID, \r\n" " DSPL_TXT, \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" " :p09, \r\n" " :p10, \r\n" " :p11, \r\n" " SYSDATE ) \r\n"; ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nObjCnt; ii++) { String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]); pFormObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (!pFormObj) continue; if (pFormObj->ObjKind != FORM_OBJ_KIND_TEXT) { continue; } String VMS_FORM_OBJ_ID = pFormObj->ObjId; int TXT_WDTH = pFormObj->GetWidth(); int TXT_HGHT = pFormObj->GetHeight(); String TXT_ALGN_MTHD = "C"; if (pFormObj->TextAlign == 0) { TXT_ALGN_MTHD = "L"; } else if (pFormObj->TextAlign == 1) { TXT_ALGN_MTHD = "R"; } String FONT_CLR = pFormObj->FontColorCode; String FONT_TYPE = pFormObj->FontNameCode; int FONT_SZ = pFormObj->FontSize; String FONT_THCK = pFormObj->FontBold ? "B" : "N"; String VMS_TXT_ITEM_ID = pFormObj->FillIn; String DSPL_TXT = pFormObj->Text; String RGSTR_ID = g_AppCfg.OPER_ID; String BACK_CLR = pFormObj->BkColorCode; int FORM_OBJ_PSTN_X = pFormObj->Left; int FORM_OBJ_PSTN_Y = pFormObj->Top; String FORM_OBJ_BLNK_YN = pFormObj->Blink ? "Y" : "N"; pADO->Parameters->ParamByName("p01")->Value = VMS_FORM_OBJ_ID; pADO->Parameters->ParamByName("p02")->Value = TXT_WDTH; pADO->Parameters->ParamByName("p03")->Value = TXT_HGHT; pADO->Parameters->ParamByName("p04")->Value = TXT_ALGN_MTHD; pADO->Parameters->ParamByName("p05")->DataType = ftString; pADO->Parameters->ParamByName("p05")->Value = FONT_CLR; pADO->Parameters->ParamByName("p06")->DataType = ftString; pADO->Parameters->ParamByName("p06")->Value = FONT_TYPE; pADO->Parameters->ParamByName("p07")->Value = FONT_SZ; pADO->Parameters->ParamByName("p08")->DataType = ftString; pADO->Parameters->ParamByName("p08")->Value = FONT_THCK; pADO->Parameters->ParamByName("p09")->DataType = ftString; pADO->Parameters->ParamByName("p09")->Value = VMS_TXT_ITEM_ID; pADO->Parameters->ParamByName("p10")->DataType = ftString; pADO->Parameters->ParamByName("p10")->Value = DSPL_TXT; pADO->Parameters->ParamByName("p11")->DataType = ftString; pADO->Parameters->ParamByName("p11")->Value = RGSTR_ID; ITSDb_SQLExec(pADO); } bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TFrmVmsMsgUserDisp::SaveVmsFormObject", String(E.ClassName()), E.Message, sQry); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TFrmVmsMsgUserDisp::SaveVmsFormObject", String(e.ClassName()), e.Message, sQry); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return bResult; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::CheckExistForm(String AFormId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "SELECT VMS_FORM_ID, COUNT(1) AS CNT \r\n" " FROM TB_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) { return true; } } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::CheckExistForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::CheckExistForm", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return false; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::CheckVmsFormUse(String AFormId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); 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; } } 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("TFrmVmsMsgUserDisp::CheckVmsFormUse", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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("TFrmVmsMsgUserDisp::DelVmsForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::DelVmsForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- String __fastcall TFrmVmsMsgUserDisp::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("TFrmVmsMsgUserDisp::GetNextVmsFormId", String(E.ClassName()), E.Message, sQry); return result; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::GetNextVmsFormId", String(e.ClassName()), e.Message, sQry); return result; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return result; } //---------------------------------------------------------------------------