//--------------------------------------------------------------------------- #pragma hdrstop #include #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #pragma hdrstop #include "FrmVmsMsgScheMngrF.h" #include "FrmVmsMsgScheMngrSRCF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) bool __fastcall TFrmVmsMsgScheMngr::LoadVmsFormDsplCndt() { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.VMS_FORM_DSPL_CNDT_ID, \r\n" " A.VMS_FORM_DSPL_CNDT, \r\n" " A.VMS_FORM_DSPL_CNDT_NM \r\n" " FROM TB_VMS_FORM_DSPL_CNDT A \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { TVmsDsplCndt *pObj = new TVmsDsplCndt(); pObj->VMS_FORM_DSPL_CNDT_ID = pADO->FieldByName("VMS_FORM_DSPL_CNDT_ID")->AsString; pObj->VMS_FORM_DSPL_CNDT = pADO->FieldByName("VMS_FORM_DSPL_CNDT")->AsString; pObj->VMS_FORM_DSPL_CNDT_NM = pADO->FieldByName("VMS_FORM_DSPL_CNDT_NM")->AsString; FVmsFormDsplCndtList.Push(pObj->VMS_FORM_DSPL_CNDT_ID, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormDsplCndt", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormDsplCndt", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- String __fastcall TFrmVmsMsgScheMngr::GetNextVmsScnrId(String AVmsCtlrId) { String sQry; TADOQuery *pADO = NULL; String result = "S000000100"; sQry = "SELECT 'S' || LPAD(NVL(MAX(SUBSTR(VMS_SCNR_ID, -9)), '000000000') + 1, 9, '0') AS NEWID FROM TB_VMS_SCNR WHERE SUBSTR(VMS_SCNR_ID,1,1) = 'S' AND VMS_CTLR_ID = :p01"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLOpen(pADO); pADO->Open(); result = pADO->FieldByName("NEWID")->AsString; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::GetNextVmsScnrId", String(E.ClassName()), E.Message, sQry); return result; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::GetNextVmsScnrId", String(e.ClassName()), e.Message, sQry); return result; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return result; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVmsScenarionForm(String AVmsCtlrId, String AScnrId) { String sQry; TADOQuery *pADO = NULL; FMaxFormSn = 0; CMM_ClearGridTableView(TvSche); CMM_ClearGridTableView(TvPreview); TcxDataController *pDcScnr = TvSche->DataController; TcxDataController *pDcView = TvPreview->DataController; sQry = "SELECT A.VMS_CTLR_ID, A.VMS_SCNR_ID, \r\n" " A.VMS_SCNR_NM, \r\n" " B.SN AS FORM_SN, \r\n" " B.VMS_FORM_ID, \r\n" " B.TXT_FORM_APLY_VMS_SECT_ID, \r\n" " B.VMS_FORM_DSPL_CNDT_ID, \r\n" " B.DSPL_HR, \r\n" " C.VMS_MODL_KIND, \r\n" " C.VMS_FORM_TYPE, \r\n" " C.VMS_FORM_NM, \r\n" " C.VMS_FORM_IMG, \r\n" " D.VMS_FORM_DSPL_CNDT, \r\n" " D.VMS_FORM_DSPL_CNDT_NM \r\n" " FROM TB_VMS_SCNR A, \r\n" " TB_VMS_SCNR_VMS_FORM B, \r\n" " TB_VMS_FORM C, \r\n" " TB_VMS_FORM_DSPL_CNDT D \r\n" " WHERE 1=1 \r\n" " AND A.VMS_CTLR_ID = :p01 \r\n" " AND A.VMS_SCNR_ID = :p02 \r\n" " AND A.VMS_CTLR_ID = B.VMS_CTLR_ID \r\n" " AND A.VMS_SCNR_ID = B.VMS_SCNR_ID \r\n" " AND B.VMS_FORM_ID = C.VMS_FORM_ID \r\n" " AND B.VMS_FORM_DSPL_CNDT_ID = \r\n" " D.VMS_FORM_DSPL_CNDT_ID(+) \r\n" " ORDER BY A.VMS_SCNR_ID, B.SN \r\n"; try { TvSche->BeginUpdate(); TvPreview->BeginUpdate(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { String VMS_SCNR_ID = pADO->FieldByName("VMS_SCNR_ID")->AsString; int FORM_SN = pADO->FieldByName("FORM_SN")->AsInteger; String VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; String TXT_FORM_APLY_VMS_SECT_ID = pADO->FieldByName("TXT_FORM_APLY_VMS_SECT_ID")->AsString; String VMS_FORM_DSPL_CNDT_ID = pADO->FieldByName("VMS_FORM_DSPL_CNDT_ID")->AsString; int DSPL_HR = pADO->FieldByName("DSPL_HR")->AsInteger; String VMS_MODL_KIND = pADO->FieldByName("VMS_MODL_KIND")->AsString; String VMS_FORM_TYPE = pADO->FieldByName("VMS_FORM_TYPE")->AsString; String VMS_FORM_NM = pADO->FieldByName("VMS_FORM_NM")->AsString; String VMS_FORM_DSPL_CNDT_NM = pADO->FieldByName("VMS_FORM_DSPL_CNDT_NM")->AsString; int nRowS = pDcScnr->AppendRecord(); //if (VMS_FORM_DSPL_CNDT_ID == "") VMS_FORM_DSPL_CNDT_ID = FORM_DSPL_CNDT_DEFAULT; pDcScnr->Values[nRowS][Col00->Index] = VMS_FORM_ID; pDcScnr->Values[nRowS][Col01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant; pDcScnr->Values[nRowS][Col02->Index] = VMS_FORM_NM; pDcScnr->Values[nRowS][Col03->Index] = DSPL_HR; pDcScnr->Values[nRowS][Col04->Index] = TXT_FORM_APLY_VMS_SECT_ID; pDcScnr->Values[nRowS][Col05->Index] = VMS_FORM_DSPL_CNDT_ID; pDcScnr->Values[nRowS][Col06->Index] = VMS_MODL_KIND; pDcScnr->Values[nRowS][Col07->Index] = VMS_FORM_TYPE; pDcScnr->Values[nRowS][ColDsplCndtId->Index] = VMS_FORM_DSPL_CNDT_ID; pDcScnr->Values[nRowS][ColDsplCndtNm->Index] = VMS_FORM_DSPL_CNDT_NM; pDcScnr->Values[nRowS][ColFormSn->Index] = FORM_SN; if (FORM_SN > FMaxFormSn) { FMaxFormSn = FORM_SN; } TVmsFormScnr *pVmsScnr = new TVmsFormScnr(FORM_SN); FVmsScnrLists.Push(pVmsScnr->FORM_SN, pVmsScnr); InitVmsScnrFormObject(AVmsCtlrId, AScnrId, VMS_FORM_ID, pVmsScnr); #if 0 int nRowV = pDcView->AppendRecord(); pDcView->Values[nRowV][ColView00->Index] = VMS_FORM_ID; pDcView->Values[nRowV][ColView01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant; pDcView->Values[nRowV][ColView03->Index] = DSPL_HR; pDcView->Values[nRowV][ColViewDslplCndtNm->Index] = VMS_FORM_DSPL_CNDT_NM; #endif } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenarionForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenarionForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvSche->EndUpdate(); TvPreview->EndUpdate(); TvPreview->ApplyBestFit(NULL, false, false); } return LoadVmsScenarionFormObj(AVmsCtlrId, AScnrId); } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVmsScenarionFormObj(String AVmsCtlrId, String AScnrId) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.VMS_CTLR_ID, A.VMS_SCNR_ID, \r\n" " A.FORM_SN, A.VMS_FORM_ID, A.FORM_OBJ_SN, \r\n" " A.VMS_FORM_OBJ_ID, A.FIGR_FORM_APLY_VMS_SECT_ID \r\n" " FROM TB_VMS_SCNR_VMS_FORM_OBJ A \r\n" " WHERE 1=1 \r\n" " AND A.VMS_CTLR_ID = :p01 \r\n" " AND A.VMS_SCNR_ID = :p02 \r\n" " AND A.FIGR_FORM_APLY_VMS_SECT_ID IS NOT NULL \r\n" " ORDER BY A.FORM_SN, A.VMS_FORM_OBJ_ID \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { int FORM_SN = pADO->FieldByName("FORM_SN")->AsInteger; String VMS_FORM_OBJ_ID = pADO->FieldByName("VMS_FORM_OBJ_ID")->AsString; TVmsFormScnr *pFormScnr = FVmsScnrLists.Find(FORM_SN); if (pFormScnr == NULL) { continue; } TVmsFormScnrObj *pScnrObj = pFormScnr->FLists.Find(VMS_FORM_OBJ_ID); if (pScnrObj == NULL) { continue; } pScnrObj->FIGR_FORM_APLY_VMS_SECT_ID = pADO->FieldByName("FIGR_FORM_APLY_VMS_SECT_ID")->AsString; } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenarionFormObj", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsScenarionFormObj", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } PreviewVmsScenarionForm(); return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVmsFormList(String AVmsModlKind) { ClearSymbloList(); CMM_ClearGridTableView(TvForm); FVmsFormLists.RemoveAll(); 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.VMS_FORM_IMG, \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 NOT IN ('P', 'E') \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" " AND A.VMS_MODL_KIND = :p01 \r\n" " ORDER BY A.VMS_MODL_KIND, A.VMS_FORM_ID \r\n"; try { TvForm->BeginUpdate(); TcxDataController *pGDC = TvForm->DataController; int nRow; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsModlKind); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { nRow = pGDC->AppendRecord(); String VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; pGDC->Values[nRow][ColFrm00->Index] = VMS_FORM_ID; pGDC->Values[nRow][ColFrm02->Index] = pADO->FieldByName("VMS_FORM_NM")->AsString; pGDC->Values[nRow][ColFrm03->Index] = pADO->FieldByName("DSPL_HR")->AsString; pGDC->Values[nRow][ColFrm09->Index] = pADO->FieldByName("FORM_TYPE_NM")->AsString; pGDC->Values[nRow][ColFrm08->Index] = pADO->FieldByName("VMS_MODL_KIND")->AsString; pGDC->Values[nRow][ColFrm07->Index] = pADO->FieldByName("VMS_FORM_TYPE")->AsString; pGDC->Values[nRow][ColFrm01->Index] = pADO->FieldByName("VMS_FORM_IMG")->AsVariant; TFormImage *pImage = new TFormImage(); pImage->formId = VMS_FORM_ID; pImage->bitmap = new Graphics::TBitmap; try { pImage->bitmap->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("VMS_FORM_IMG"), bmRead)); } catch(Exception &e) { delete pImage->bitmap; pImage->bitmap = NULL; } FFormLists.Push(pImage->formId, pImage); TVmsFormObj *pVmsFormObj = FVmsFormLists.Find(VMS_FORM_ID); if (pVmsFormObj == NULL) { pVmsFormObj = new TVmsFormObj(); pVmsFormObj->VMS_FORM_ID = VMS_FORM_ID; pVmsFormObj->BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; FVmsFormLists.Push(pVmsFormObj->VMS_FORM_ID, pVmsFormObj); } } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormList", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormList", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvForm->EndUpdate(); } return LoadVmsFormObjectList(AVmsModlKind); } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::LoadVmsFormObjectList(String AVmsModlKind) { 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 IN (SELECT VMS_FORM_ID \r\n" " FROM TB_VMS_FORM \r\n" " WHERE 1=1 \r\n" // " AND VMS_FORM_TYPE NOT IN ('P', 'E') \r\n" " AND VMS_MODL_KIND = :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"; String sOldVmsFormId = ""; bool bFirst = true; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsModlKind); ITSDb_SQLOpen(pADO); int nDrawType; for( ; !pADO->Eof; pADO->Next()) { TFormObj *pFormObj = new TFormObj(); String VMS_FORM_ID = pADO->FieldByName("VMS_FORM_ID")->AsString; TVmsFormObj *pVmsFormObj = FVmsFormLists.Find(VMS_FORM_ID); if (pVmsFormObj == NULL) { pVmsFormObj = new TVmsFormObj(); pVmsFormObj->VMS_FORM_ID = VMS_FORM_ID; pVmsFormObj->BACK_CLR = "00"; FVmsFormLists.Push(pVmsFormObj->VMS_FORM_ID, pVmsFormObj); } if (sOldVmsFormId != "" && sOldVmsFormId != VMS_FORM_ID) { TFormImage *pImage = new TFormImage(); pImage->formId = sOldVmsFormId; pImage->bitmap = new Graphics::TBitmap; m_pEdtDesigner->GetVmsFormImage(ImgForm); try { pImage->bitmap->Assign(ImgForm->Picture->Bitmap); } catch(Exception &e) { } FFormBackLists.Push(pImage->formId, pImage); bFirst = true; } sOldVmsFormId = VMS_FORM_ID; if (bFirst) { m_pEdtDesigner->Clear(); m_pEdtDesigner->BkColorCode = pVmsFormObj->BACK_CLR; bFirst = false; } pFormObj->VMS_FORM_ID = VMS_FORM_ID; pFormObj->VMS_FORM_OBJ_ID = pADO->FieldByName("VMS_FORM_OBJ_ID")->AsString; pFormObj->OBJ_SEQ = pADO->FieldByName("OBJ_SEQ")->AsInteger; pFormObj->VMS_FORM_OBJ_KIND = pADO->FieldByName("VMS_FORM_OBJ_KIND")->AsString; pFormObj->BACK_CLR = pADO->FieldByName("BACK_CLR")->AsString; pFormObj->FORM_OBJ_PSTN_X = pADO->FieldByName("FORM_OBJ_PSTN_X")->AsInteger; pFormObj->FORM_OBJ_PSTN_Y = pADO->FieldByName("FORM_OBJ_PSTN_Y")->AsInteger; pFormObj->FORM_OBJ_BLNK_YN = pADO->FieldByName("FORM_OBJ_BLNK_YN")->AsString == "N" ? false : true; pFormObj->FORM_OBJ_DSPL_WDTH = pADO->FieldByName("FORM_OBJ_DSPL_WDTH")->AsString.ToIntDef(0); pFormObj->FORM_OBJ_DSPL_HGHT = pADO->FieldByName("FORM_OBJ_DSPL_HGHT")->AsString.ToIntDef(0); pFormObj->IS_CCTV_OBJ = pADO->FieldByName("IS_CCTV_OBJ")->AsInteger == 1; pFormObj->IS_TEXT_OBJ = pADO->FieldByName("IS_TEXT_OBJ")->AsInteger == 1; pFormObj->IS_SYMB_OBJ = pADO->FieldByName("IS_SYMB_OBJ")->AsInteger == 1; pFormObj->IS_MOVE_OBJ = pADO->FieldByName("IS_MOVE_OBJ")->AsInteger == 1; pFormObj->CCTV_ID = pADO->FieldByName("CCTV_ID")->AsString; pFormObj->TXT_WDTH = pADO->FieldByName("TXT_WDTH")->AsString.ToIntDef(0); pFormObj->TXT_HGHT = pADO->FieldByName("TXT_HGHT")->AsString.ToIntDef(0); pFormObj->TXT_ALGN_MTHD = pADO->FieldByName("TXT_ALGN_MTHD")->AsString; pFormObj->FONT_CLR = pADO->FieldByName("FONT_CLR")->AsString; pFormObj->FONT_TYPE = pADO->FieldByName("FONT_TYPE")->AsString; pFormObj->FONT_SZ = pADO->FieldByName("FONT_SZ")->AsString.ToIntDef(0); pFormObj->FONT_THCK = pADO->FieldByName("FONT_THCK")->AsString == "N" ? false : true; pFormObj->VMS_TXT_ITEM_ID = pADO->FieldByName("VMS_TXT_ITEM_ID")->AsString; pFormObj->DSPL_TXT = pADO->FieldByName("DSPL_TXT")->AsString; pFormObj->PICT_NM = pADO->FieldByName("PICT_NM")->AsString; pFormObj->PICT_WDTH = pADO->FieldByName("PICT_WDTH")->AsString.ToIntDef(0); pFormObj->PICT_HGHT = pADO->FieldByName("PICT_HGHT")->AsString.ToIntDef(0); pFormObj->PICT_DATA_SZ = pADO->FieldByName("PICT_DATA_SZ")->AsString.ToIntDef(0); pFormObj->PICT_DATA = NULL; pFormObj->PICT_TYPE = pADO->FieldByName("PICT_NM")->AsString; pFormObj->MOV_NM = pADO->FieldByName("MOV_NM")->AsString; pFormObj->MOV_DATA_SZ = pADO->FieldByName("MOV_DATA_SZ")->AsString.ToIntDef(0); pFormObj->MOV_TYPE = pADO->FieldByName("MOV_TYPE")->AsString; pFormObj->THMB_IMG = NULL; if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_TEXT && pFormObj->IS_TEXT_OBJ) { nDrawType = 0; //¹®ÀÚ¿­±×¸®±â pFormObj->DSPL_SIZE = pFormObj->DSPL_TXT.Length(); } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_IMAGE && pFormObj->IS_SYMB_OBJ) { nDrawType = 1; //À̹ÌÁö±×¸®±â pFormObj->DSPL_TXT = pADO->FieldByName("PICT_NM")->AsString; pFormObj->DSPL_SIZE = pFormObj->PICT_DATA_SZ; if (pFormObj->FORM_OBJ_DSPL_WDTH <= 0 || pFormObj->FORM_OBJ_DSPL_HGHT <= 0) { pFormObj->FORM_OBJ_DSPL_WDTH = pFormObj->PICT_WDTH; pFormObj->FORM_OBJ_DSPL_HGHT = pFormObj->PICT_HGHT; } TMemoryStream *pictData = new TMemoryStream(); try { String sPictExt = DbPictTypeToReal(pFormObj->PICT_TYPE); if (pictData != NULL) { pictData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead)); if (pictData && pictData->Size > 0) { imageFilePath = saveDirPath + pFormObj->VMS_FORM_OBJ_ID + "." + sPictExt; pictData->SaveToFile(imageFilePath); pFormObj->PICT_DATA = new TImage(NULL); pFormObj->PICT_DATA->Picture->LoadFromFile(imageFilePath); } } } __finally { SAFE_DELETE(pictData); } } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_CCTV && pFormObj->IS_CCTV_OBJ) { nDrawType = 1; //À̹ÌÁö±×¸®±â pFormObj->DSPL_TXT = pADO->FieldByName("CCTV_ID")->AsString; pFormObj->DSPL_SIZE = pFormObj->PICT_WDTH * pFormObj->PICT_HGHT; if (pFormObj->FORM_OBJ_DSPL_WDTH <= 0 || pFormObj->FORM_OBJ_DSPL_HGHT <= 0) { pFormObj->FORM_OBJ_DSPL_WDTH = pFormObj->PICT_WDTH; pFormObj->FORM_OBJ_DSPL_HGHT = pFormObj->PICT_HGHT; } pFormObj->THMB_IMG = new Graphics::TBitmap; pFormObj->THMB_IMG->Assign(ImgStream->Picture->Bitmap); } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_MOVIE && pFormObj->IS_MOVE_OBJ) { nDrawType = 1; //À̹ÌÁö±×¸®±â pFormObj->DSPL_TXT = pADO->FieldByName("MOV_NM")->AsString; pFormObj->DSPL_SIZE = pADO->FieldByName("MOV_DATA_SZ")->AsInteger; if (pFormObj->FORM_OBJ_DSPL_WDTH <= 0 || pFormObj->FORM_OBJ_DSPL_HGHT <= 0) { pFormObj->FORM_OBJ_DSPL_WDTH = pFormObj->PICT_WDTH; pFormObj->FORM_OBJ_DSPL_HGHT = pFormObj->PICT_HGHT; } try { pFormObj->THMB_IMG = new Graphics::TBitmap; pFormObj->THMB_IMG->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("THMB_IMG"), bmRead)); } catch(Exception &e) { } TMemoryStream *pictData = new TMemoryStream(); try { if (pictData != NULL) { pictData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("THMB_IMG"), bmRead)); if (pictData && pictData->Size > 0) { imageFilePath = saveDirPath + pFormObj->VMS_FORM_OBJ_ID + ".bmp"; pictData->SaveToFile(imageFilePath); } } } __finally { SAFE_DELETE(pictData); } } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_FIGURE) { // add form fill object } else { delete pFormObj; continue; } pVmsFormObj->FLists.Push(pFormObj->OBJ_SEQ, pFormObj); //////////////// //////////////// ¹è°æÀ̹ÌÁö ±×¸®±â //////////////// if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_FIGURE) { continue; } if (pFormObj->VMS_TXT_ITEM_ID == "C1001" || // µµ·Î¸í pFormObj->VMS_TXT_ITEM_ID == "C1002" || // ½ÃÁ¡¸í pFormObj->VMS_TXT_ITEM_ID == "C1003" || // Á¾Á¡¸í pFormObj->VMS_TXT_ITEM_ID == "C2001" || // ¼ÒÅë»óȲ pFormObj->VMS_TXT_ITEM_ID == "C2002" || // ½Ã°£ pFormObj->VMS_TXT_ITEM_ID == "C2003" || // ¼Óµµ pFormObj->VMS_TXT_ITEM_ID == "C3001" || // ¿ìȸ-µµ·Î¸í pFormObj->VMS_TXT_ITEM_ID == "C3002" || // ¿ìȸ-½ÃÁ¡¸í pFormObj->VMS_TXT_ITEM_ID == "C3003" || // ¿ìȸ-Á¾Á¡¸í pFormObj->VMS_TXT_ITEM_ID == "C4001" || // ¿ìȸ-¼ÒÅë»óȲ pFormObj->VMS_TXT_ITEM_ID == "C4002" || // ¿ìȸ-½Ã°£ pFormObj->VMS_TXT_ITEM_ID == "C4003" ) // ¿ìȸ-¼Óµµ { continue; } else if (pFormObj->VMS_TXT_ITEM_ID == "C0001" && // ´Ü¼ø¹®ÀÚ¿­ pFormObj->FONT_CLR == "99" ) // ÀÚµ¿»ö»ó { continue; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) { continue; } pObj->Text = pFormObj->DSPL_TXT; pObj->RunText = pObj->Text; pObj->SetPos(pFormObj->FORM_OBJ_PSTN_X, pFormObj->FORM_OBJ_PSTN_Y); if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_TEXT && pFormObj->IS_TEXT_OBJ) // ¹®ÀÚ¿­ { int nTextAlign = 0; if (pFormObj->TXT_ALGN_MTHD == "R") nTextAlign = 1; if (pFormObj->TXT_ALGN_MTHD == "C") nTextAlign = 2; pObj->FillIn = pFormObj->VMS_TXT_ITEM_ID; pObj->FontNameCode = pFormObj->FONT_TYPE; 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 = pFormObj->FONT_CLR; pObj->FontSize = pFormObj->FONT_SZ; pObj->FontBold = pFormObj->FONT_THCK; pObj->TextAlign = nTextAlign; } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_IMAGE && pFormObj->IS_SYMB_OBJ) { pObj->GetImage()->Picture->LoadFromFile(imageFilePath); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = pFormObj->FORM_OBJ_DSPL_WDTH; pObj->GetImage()->Height = pFormObj->FORM_OBJ_DSPL_HGHT; pObj->SetSize(pFormObj->FORM_OBJ_DSPL_WDTH, pFormObj->FORM_OBJ_DSPL_HGHT); pObj->SetPos(pFormObj->FORM_OBJ_PSTN_X, pFormObj->FORM_OBJ_PSTN_Y); } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_CCTV && pFormObj->IS_CCTV_OBJ) { pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = false; pObj->GetImage()->Center = true; pObj->GetImage()->Width = pFormObj->FORM_OBJ_DSPL_WDTH; pObj->GetImage()->Height = pFormObj->FORM_OBJ_DSPL_HGHT; pObj->GetImage()->Picture->Bitmap->Assign(ImgStream->Picture->Bitmap); pObj->SetSize(pFormObj->FORM_OBJ_DSPL_WDTH, pFormObj->FORM_OBJ_DSPL_HGHT); pObj->SetPos(pFormObj->FORM_OBJ_PSTN_X, pFormObj->FORM_OBJ_PSTN_Y); } else if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_MOVIE && pFormObj->IS_MOVE_OBJ) { pObj->GetImage()->Picture->LoadFromFile(imageFilePath); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = pFormObj->FORM_OBJ_DSPL_WDTH; pObj->GetImage()->Height = pFormObj->FORM_OBJ_DSPL_HGHT; pObj->SetSize(pFormObj->FORM_OBJ_DSPL_WDTH, pFormObj->FORM_OBJ_DSPL_HGHT); pObj->SetPos(pFormObj->FORM_OBJ_PSTN_X, pFormObj->FORM_OBJ_PSTN_Y); } pObj->Show(); pObj->BringToFront(); } if (sOldVmsFormId != "") { TFormImage *pImage = new TFormImage(); pImage->formId = sOldVmsFormId; pImage->bitmap = new Graphics::TBitmap; m_pEdtDesigner->GetVmsFormImage(ImgForm); try { pImage->bitmap->Assign(ImgForm->Picture->Bitmap); } catch(Exception &e) { } FFormBackLists.Push(pImage->formId, pImage); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormObjectList", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::LoadVmsFormObjectList", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgScheMngr::InitVmsScnrFormObject(String AVmsCtlrId, String AScnrId, String AVmsFormId, TVmsFormScnr *AFormScnr) { TVmsFormObj *pVmsFormObj = FVmsFormLists.Find(AVmsFormId); if (pVmsFormObj == NULL) { // ¾øÀ¸¸é ¾ÈµÊ return; } int formObjSn = 1; FOR_STL(TFormObj*, pFormObj, pVmsFormObj->FLists) { bool isAddObj = false; if (pFormObj->VMS_FORM_OBJ_KIND == FORM_OBJ_KIND_FIGURE) { isAddObj = true; } else if (pFormObj->VMS_TXT_ITEM_ID == "C1001" || // µµ·Î¸í pFormObj->VMS_TXT_ITEM_ID == "C1002" || // ½ÃÁ¡¸í pFormObj->VMS_TXT_ITEM_ID == "C1003" || // Á¾Á¡¸í pFormObj->VMS_TXT_ITEM_ID == "C2001" || // ¼ÒÅë»óȲ pFormObj->VMS_TXT_ITEM_ID == "C2002" || // ½Ã°£ pFormObj->VMS_TXT_ITEM_ID == "C2003" || // ¼Óµµ pFormObj->VMS_TXT_ITEM_ID == "C3001" || // ¿ìȸ-µµ·Î¸í pFormObj->VMS_TXT_ITEM_ID == "C3002" || // ¿ìȸ-½ÃÁ¡¸í pFormObj->VMS_TXT_ITEM_ID == "C3003" || // ¿ìȸ-Á¾Á¡¸í pFormObj->VMS_TXT_ITEM_ID == "C4001" || // ¿ìȸ-¼ÒÅë»óȲ pFormObj->VMS_TXT_ITEM_ID == "C4002" || // ¿ìȸ-½Ã°£ pFormObj->VMS_TXT_ITEM_ID == "C4003" ) // ¿ìȸ-¼Óµµ { isAddObj = true; } else if (pFormObj->VMS_TXT_ITEM_ID == "C0001" && // ´Ü¼ø¹®ÀÚ¿­ pFormObj->FONT_CLR == "99" ) // ÀÚµ¿»ö»ó { isAddObj = true; } if (isAddObj) { TVmsFormScnrObj *pScnrObj = new TVmsFormScnrObj(); pScnrObj->VMS_CTLR_ID = AVmsCtlrId; pScnrObj->VMS_SCNR_ID = AScnrId; pScnrObj->FORM_SN = AFormScnr->FORM_SN; pScnrObj->VMS_FORM_ID = AVmsFormId; pScnrObj->FORM_OBJ_SN = formObjSn++; pScnrObj->VMS_FORM_OBJ_ID = pFormObj->VMS_FORM_OBJ_ID; pScnrObj->FIGR_FORM_APLY_VMS_SECT_ID = ""; pScnrObj->VMS_FORM_OBJ_KIND = pFormObj->VMS_FORM_OBJ_KIND; pScnrObj->VMS_TXT_ITEM_ID = pFormObj->VMS_TXT_ITEM_ID; pScnrObj->FORM_OBJ_PSTN_X = pFormObj->FORM_OBJ_PSTN_X; pScnrObj->FORM_OBJ_PSTN_Y = pFormObj->FORM_OBJ_PSTN_Y; AFormScnr->FLists.Push(pScnrObj->VMS_FORM_OBJ_ID, pScnrObj); } } } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::CheckScenarioUse(String AScnrId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "SELECT VMS_SCNR_ID, COUNT(1) AS CNT \r\n" " FROM TB_VMS_CTLR \r\n" " WHERE VMS_SCNR_ID = :p01 \r\n" " GROUP BY VMS_SCNR_ID \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AScnrId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { if (pADO->FieldByName("CNT")->AsInteger > 0) { String sMsg; sMsg = "VMS ½Ã³ª¸®¿À »ç¿ëÈ®ÀÎ\r\n»èÁ¦ÇÒ VMS ½Ã³ª¸®¿À Á¤º¸°¡ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù.\r\n¸ÕÀú ÇØ´ç Á¤º¸¸¦ »èÁ¦ÇØÁֽñ⠹ٶø´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return true; } } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::CheckScenarioUse", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::CheckScenarioUse", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return false; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::DeleteVmsScenario(String AVmsCtlrId, String AScnrId, bool ADelScnr) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "DELETE TB_VMS_SCNR_VMS_FORM_OBJ \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n" " AND VMS_SCNR_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); pADO->ExecSQL(); sQry = "DELETE TB_VMS_SCNR_VMS_FORM \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n" " AND VMS_SCNR_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); pADO->ExecSQL(); if (ADelScnr) { sQry = "DELETE TB_VMS_SCNR \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n" " AND VMS_SCNR_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); pADO->ExecSQL(); } return true; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::DeleteVmsScenario", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::DeleteVmsScenario", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::UpdateVmsDefScenario(String AVmsCtlrId, String AScnrId) { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "UPDATE TB_VMS_CTLR \r\n" " SET VMS_SCNR_ID = :p02 \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AVmsCtlrId); ITSDb_SQLBind(pADO, "p02", AScnrId); pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgFormMngr::UpdateVmsDefScenario", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgFormMngr::UpdateVmsDefScenario", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::SaveVmsScenarioForm(String AVmsCtlrId, String AScnrId) { String sQry; TADOQuery *pADO = NULL; TcxDataController *pGDC = TvSche->DataController; sQry = "INSERT INTO TB_VMS_SCNR_VMS_FORM ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_SCNR_ID, \r\n" " SN, \r\n" " VMS_FORM_ID, \r\n" " TXT_FORM_APLY_VMS_SECT_ID, \r\n" " VMS_FORM_DSPL_CNDT_ID, \r\n" " DSPL_HR, \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"; try { TvSche->BeginUpdate(); int nRows = pGDC->RecordCount; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nRows; ii++) { String VMS_CTLR_ID = AVmsCtlrId; String VMS_SCNR_ID = AScnrId; int SN = ii+1; String VMS_FORM_ID = VarToStr(pGDC->Values[ii][Col00->Index]); String TXT_FORM_APLY_VMS_SECT_ID = ""; String VMS_FORM_DSPL_CNDT_ID = VarToStr(pGDC->Values[ii][ColDsplCndtId->Index]); int DSPL_HR = VarToStr(pGDC->Values[ii][Col03->Index]).ToIntDef(5); String RGSTR_ID = g_AppCfg.OPER_ID; if (VMS_FORM_DSPL_CNDT_ID == "") VMS_FORM_DSPL_CNDT_ID = FORM_DSPL_CNDT_DEFAULT; pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = VMS_SCNR_ID; pADO->Parameters->ParamByName("p03")->Value = SN; pADO->Parameters->ParamByName("p04")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p05")->Value = TXT_FORM_APLY_VMS_SECT_ID; pADO->Parameters->ParamByName("p06")->Value = VMS_FORM_DSPL_CNDT_ID; pADO->Parameters->ParamByName("p07")->Value = DSPL_HR; pADO->Parameters->ParamByName("p08")->Value = RGSTR_ID; pADO->ExecSQL(); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScenarioForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScenarioForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvSche->EndUpdate(); } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgScheMngr::SaveVmsScenarioFormObj(String AVmsCtlrId, String AScnrId) { String sQry; TADOQuery *pADO = NULL; TcxDataController *pGDC = TvSche->DataController; sQry = "INSERT INTO TB_VMS_SCNR_VMS_FORM_OBJ ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_SCNR_ID, \r\n" " FORM_SN, \r\n" " VMS_FORM_ID, \r\n" " FORM_OBJ_SN, \r\n" " VMS_FORM_OBJ_ID, \r\n" " FIGR_FORM_APLY_VMS_SECT_ID, \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"; try { TvSche->BeginUpdate(); int nRows = pGDC->RecordCount; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < nRows; ii++) { String VMS_CTLR_ID = AVmsCtlrId; String VMS_SCNR_ID = AScnrId; int FORM_SN = ii+1; String VMS_FORM_ID = VarToStr(pGDC->Values[ii][Col00->Index]); int MAP_FROM_SN = pGDC->Values[ii][ColFormSn->Index]; String RGSTR_ID = g_AppCfg.OPER_ID; TVmsFormScnr *pFormScnr = FrmVmsMsgScheMngr->FVmsScnrLists.Find(MAP_FROM_SN); if (pFormScnr == NULL) { continue; } int FORM_OBJ_SN = 1; FOR_STL(TVmsFormScnrObj*, pScnrObj, pFormScnr->FLists) { if (pScnrObj->FIGR_FORM_APLY_VMS_SECT_ID.IsEmpty()) { continue; } pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = VMS_SCNR_ID; pADO->Parameters->ParamByName("p03")->Value = FORM_SN; pADO->Parameters->ParamByName("p04")->Value = VMS_FORM_ID; pADO->Parameters->ParamByName("p05")->Value = FORM_OBJ_SN; pADO->Parameters->ParamByName("p06")->Value = pScnrObj->VMS_FORM_OBJ_ID; pADO->Parameters->ParamByName("p07")->Value = pScnrObj->FIGR_FORM_APLY_VMS_SECT_ID; pADO->Parameters->ParamByName("p08")->Value = RGSTR_ID; pADO->ExecSQL(); FORM_OBJ_SN++; } } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScenarioFormObj", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgScheMngr::SaveVmsScenarioFormObj", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } TvSche->EndUpdate(); } return true; } //---------------------------------------------------------------------------