/**************************************************************************** * @source : * @description : **************************************************************************** * DATE AUTHOR DESCRIPTION * -------------------------------------------------------------------------- * 2016/07/10 shjung ÃÖÃÊÀÛ¼º * ****************************************************************************/ //--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "VMSM500MF.h" #include "VMSM510MF.h" #include "VMSM520MF.h" #include "VMSM530MF.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 "cxColorComboBox" #pragma link "cxCalc" #pragma resource "*.dfm" TVMSM500M *VMSM500M = NULL; //--------------------------------------------------------------------------- __fastcall TVMSM500M::TVMSM500M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FUpdate= false; FTitle = Caption;//"VMS ¹®ÀÚ½Ä Æû°ü¸®"; FListSymb = new TList; EditMode = false; PgEdit->ActivePage = TsEdit; APP_InitDisplayColor(); //BtnSaveImgFile->Caption = "Save form image"; //BtnSaveImgFile->Hint = "Save the form as an image file."; MyUseManager = new TVmsObjUseManager(); } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TVMSM500M::CommClose() { try { if (MyUseManager) { delete MyUseManager; MyUseManager = NULL; } if (m_pEdtDesigner) { delete m_pEdtDesigner; m_pEdtDesigner = NULL; } //if (m_pDesigner) //{ // delete m_pDesigner; // m_pDesigner = NULL; //} APP_DelVmsSizeCombo(CbSizeType); SAFE_DELETE(MyVmsObjTypeManager); ClearSymbloList(); SAFE_DELETE(FListSymb); CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormCreate(TObject *Sender) { MyVmsObjTypeManager = new TVmsObjTypeManager(); m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm); //m_pDesigner = new TVmsFormDesigner(PnlForm); } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMSM500M::FormShow(TObject *Sender) { Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TVMSM500M::FormInit() { //TvList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â Æû Á¤º¸°¡ ¾ø½À´Ï´Ù>"; MyVmsObjTypeManager->LoadFromDb(); m_pEdtDesigner->ApplicationHandle = (long)Handle; //VMS»çÀÌÁî APP_FillVmsSizeType(CbSizeType, "VUTN", false); //Æû»ö»ó CbFormColor->Items->Clear(); CbFormColor->Items->AddObject("", (TObject*)clBlack); CbFormColor->Items->AddObject("", (TObject*)clRed); CbFormColor->Items->AddObject("", (TObject*)clLime); CbFormColor->Items->AddObject("", (TObject*)clYellow); CbFormColor->ItemIndex = 0; //ÆûÀ¯Çü FillVmsFormType(CbFormKind); //Ç¥Ãâ¹æ¹ý FillVmsFormDispMode(CbFormDispMode); //Ç¥Ãâ¹æÇâ FillVmsFormDispDir(CbFormDispDir); FormObjectInit(); FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormObjectInit() { //TvObjList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â °´Ã¼ Á¤º¸°¡ ¾ø½À´Ï´Ù>"; m_bEdit = false; PnlEdtBack->Left = 6; PnlEdtBack->Top = 4; PnlRePreview->Left = 6; PnlRePreview->Top = 4; ReForm->Left = 6; ReForm->Top = 4; //°´Ã¼¹è°æ»ö»ó CbBkColor->Items->Clear(); CbBkColor->Items->AddObject("", (TObject*)clBlack); CbBkColor->Items->AddObject("", (TObject*)clRed); CbBkColor->Items->AddObject("", (TObject*)clLime); CbBkColor->Items->AddObject("", (TObject*)clYellow); CbBkColor->ItemIndex = 0; //¹®ÀÚ¿­»ö»ó CbFontColor->Items->Clear(); CbFontColor->Items->AddObject("", (TObject*)clBlack); CbFontColor->Items->AddObject("", (TObject*)clRed); CbFontColor->Items->AddObject("", (TObject*)clLime); CbFontColor->Items->AddObject("", (TObject*)clYellow); CbFontColor->ItemIndex = 0; //Á÷Á¢ÀÔ·Â ¹®ÀÚ¿­»ö»ó CbFontColorRe->Items->Clear(); CbFontColorRe->Items->AddObject("", (TObject*)clBlack); CbFontColorRe->Items->AddObject("", (TObject*)clRed); CbFontColorRe->Items->AddObject("", (TObject*)clLime); CbFontColorRe->Items->AddObject("", (TObject*)clYellow); CbFontColorRe->ItemIndex = 0; //VMS Font FillVmsFont(CbFontName); CbFontName->ItemIndex = 0; FillVmsFont(CbFontNameRe); CbFontNameRe->ItemIndex = 0; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMSM500M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMSM500M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); VMSM500M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { VComm_VmsFormUpdate(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == FrmLang->lblEdit->Caption)//"ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sId = EdFormId->Text; ChangeEditMode(1); if (CMM_FindGridData(TvList->DataController, sId, Col01->Index) >= 0) { CMM_SetGridRow(CxList, TvList, sId, Col01->Index); DisplayInfo(); } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChangeEditMode(int AEdit) { bool bEnabled = false; CbFormKind->Enabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormClear(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; //bEnabled = true; EditMode = false; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; //CbFormKind->Enabled = true; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnCopyAdd->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; EditMode = false; } break; } BtnSaveImgFile->Enabled = false; if (ImgForm->Picture->Bitmap != NULL) { if (ImgForm->Picture->Bitmap->Height != 0) { BtnSaveImgFile->Enabled = true; } } if (AEdit == 0 || AEdit == 2) { PnlCmd->Enabled = true; GrpList->Enabled = false; } else { PnlCmd->Enabled = false; GrpList->Enabled = true; } ChangeEditModeObject(AEdit); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChangeEditModeObject(int AEdit) { } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnInsertClick(TObject *Sender) { int nFormId; if (!GetNextVmsFormId(nFormId)) { Application->MessageBox(lblText1->Caption.c_str(),//L"»õ·Î¿î VMS ÆûÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TVMSM520M *pSelForm = new TVMSM520M(this); pSelForm->ShowModal(); String sFormType = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sFormType == "") { return; } FormClear(); EdFormId->Text = String(nFormId); ChangeEditMode(2); FNewDb = true; //ÆûÀ¯ÇüÀ» ¼³Á¤ APP_SetCode(CbFormKind, sFormType); CbFormDispMode->ItemIndex = 0; CbFormDispDir->ItemIndex = 0; //ÆûÀ¯Çü¿¡ ¸Â°Ô ±âº» ÆûÀ» »ý¼ºÇÏÀÚ switch(sFormType.ToIntDef(11)) { case 11:// ' ¼ÒÅë»óȲ(1´Ü) MakeDefTrafficForm(1); break; case 12:// ' ¼ÒÅë»óȲ(2´Ü) MakeDefTrafficForm(2); break; case 13:// ' ¼ÒÅë»óȲ(3´Ü) MakeDefTrafficForm(3); break; case 14:// ' ¼ÒÅë»óȲ(4´Ü) MakeDefTrafficForm(4); break; case 15:// ' ¼ÒÅë»óȲ(µµÇü½Ä) break; case 16:// ' Á¤Ã¼¼ÒÅë»óȲ MakeDefTrafficForm(6); break; case 20:// ' µ¹¹ß¹®¾È break; case 30:// ' °ø»ç/Çà»ç¹®¾È break; case 40:// ' È«º¸¹®¾È break; case 50:// ' ¿ìȸµµ·Î break; default: APP_SetCode(CbFormKind, "11"); MakeDefTrafficForm(1); break; } } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::AddDefFormObject(String AFontName, int AFontSize, String AFontColor, int AObjType, String AText, int ASize, int APosX, int APosY) { TVmsFormObject *pObj; //1´Ü ¼ÒÅëÁ¤º¸ pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return false; pObj->EditMode = true; pObj->ObjKind = OBJKIND_TEXT; pObj->ObjSeq = m_pEdtDesigner->GetNewObjectSeq(); pObj->ObjType = String(AObjType); pObj->Text = AText; pObj->ObjSize = pObj->Text.Length();//ASize; //Pixel pObj->BkColorCode = "0"; //Balck, m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->FontName = AFontName; pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, AFontName); pObj->FontColorCode = AFontColor; //0:Black,1:Red,2:Green,3:Yellow pObj->FontSize = AFontSize; pObj->FontBold = true; pObj->TextAlign = 0; //(0:left, 1:right, 2:center pObj->SetPos(APosX, APosY); pObj->Show(); AddObjectToList(pObj, true); return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::MakeDefTrafficForm(int ARows) { //0:Black,1:Red, 2:Green, 3:Yellow //0:left, 1:right, 2:center //1´Ü ¼ÒÅëÁ¤º¸ if (g_AppCfg.sLang == "kr") { switch(ARows) { case 1: AddDefFormObject("±¼¸²Ã¼", 18, "3", 12, "@½ÃÁ¡¸í", 160, 16, 7); //½ÃÁ¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 13, "@Á¾Á¡¸í", 160, 213, 7); //Á¾Á¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 14, "@¼ÒÅë»óȲ", 112, 64, 35); //¼ÒÅë»óȲ AddDefFormObject("±¼¸²Ã¼", 18, "2", 15, "@00ºÐ", 80, 213, 35); //ÅëÇà½Ã°£ break; case 2: AddDefFormObject("±¼¸²Ã¼", 16, "3", 0, "ÇöÀ§Ä¡", 100, 31, 7); //ÇöÀ§Ä¡ AddDefFormObject("±¼¸²Ã¼", 16, "3", 13, "@Á¾Á¡¸í1", 100, 133, 7); //Á¾Á¡¸í1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 23, "@Á¾Á¡¸í2", 100, 265, 7); //Á¾Á¡¸í2 AddDefFormObject("±¼¸²Ã¼", 16, "2", 15, "@01ºÐ", 80, 133, 35); //ÅëÇà½Ã°£1 AddDefFormObject("±¼¸²Ã¼", 16, "2", 25, "@02ºÐ", 80, 265, 35); //ÅëÇà½Ã°£2 break; case 3: AddDefFormObject("±¼¸²Ã¼", 16, "3", 0, "ÇöÀçÀ§Ä¡ºÎÅÍ", 126, 7, 7); //ÇöÀçÀ§Ä¡ºÎÅÍ AddDefFormObject("±¼¸²Ã¼", 16, "3", 13, "@Á¾Á¡¸í1", 85, 38, 50); //Á¾Á¡¸í1 AddDefFormObject("±¼¸²Ã¼", 16, "2", 15, "@1ºÐ", 80, 161, 50); //ÅëÇà½Ã°£1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 14, "@»óȲ1", 53, 217, 50); //¼ÒÅë»óȲ1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 23, "@Á¾Á¡¸í2", 85, 38, 82); //Á¾Á¡¸í2 AddDefFormObject("±¼¸²Ã¼", 16, "2", 25, "@2ºÐ", 80, 161, 82); //ÅëÇà½Ã°£2 AddDefFormObject("±¼¸²Ã¼", 16, "3", 24, "@»óȲ2", 53, 217, 82); //¼ÒÅë»óȲ2 AddDefFormObject("±¼¸²Ã¼", 16, "3", 33, "@Á¾Á¡¸í3", 85, 38, 117); //Á¾Á¡¸í3 AddDefFormObject("±¼¸²Ã¼", 16, "2", 35, "@3ºÐ", 80, 161, 117); //ÅëÇà½Ã°£3 AddDefFormObject("±¼¸²Ã¼", 16, "3", 34, "@»óȲ3", 53, 217, 117); //¼ÒÅë»óȲ3 break; case 6: AddDefFormObject("±¼¸²Ã¼", 18, "3", 18, "@ÁöÁ¡¸í", 300, 18, 20); //ÁöÁ¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 0, "ÁÖº¯", 126, 153, 20); //ÁÖº¯ AddDefFormObject("±¼¸²Ã¼", 18, "1", 0, "Á¤Ã¼ ±Ø½É", 126, 222, 20); //Á¤Ã¼±Ø½É break; } } else { String sFontName = lblFontName->Caption; switch(ARows) { case 1: AddDefFormObject(sFontName, 18, "3", 12, "@StartName", 160, 16, 7); //@½ÃÁ¡¸í @StartName AddDefFormObject(sFontName, 18, "3", 13, "@EndName", 160, 213, 7); //@Á¾Á¡¸í @EndName AddDefFormObject(sFontName, 18, "3", 14, "@Congest", 112, 64, 35); //@¼ÒÅë»óȲ @Congest AddDefFormObject(sFontName, 18, "2", 15, "@00Min", 80, 213, 35); //@ÅëÇà½Ã°£ @00Min break; case 2: AddDefFormObject(sFontName, 16, "3", 0, "Location", 100, 31, 7); //ÇöÀ§Ä¡ Location AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 100, 133, 7); //Á¾Á¡¸í1 EndName1 AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 100, 265, 7); //Á¾Á¡¸í2 EndName2 AddDefFormObject(sFontName, 16, "2", 15, "@01Min", 80, 133, 35); //ÅëÇà½Ã°£1 01Min AddDefFormObject(sFontName, 16, "2", 25, "@02Min", 80, 265, 35); //ÅëÇà½Ã°£2 02Min break; case 3: AddDefFormObject(sFontName, 16, "3", 0, "From Location", 126, 7, 7); //ÇöÀçÀ§Ä¡ºÎÅÍ From Location AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 85, 38, 50); //Á¾Á¡¸í1 EndName1 AddDefFormObject(sFontName, 16, "2", 15, "@1Min", 80, 161, 50); //ÅëÇà½Ã°£1 1Min AddDefFormObject(sFontName, 16, "3", 14, "@Congest1", 53, 217, 50); //¼ÒÅë»óȲ1 Congest1 AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 85, 38, 82); //Á¾Á¡¸í2 EndName2 AddDefFormObject(sFontName, 16, "2", 25, "@2Min", 80, 161, 82); //ÅëÇà½Ã°£2 2Min AddDefFormObject(sFontName, 16, "3", 24, "@Congest2", 53, 217, 82); //¼ÒÅë»óȲ2 Congest2 AddDefFormObject(sFontName, 16, "3", 33, "@EndName3", 85, 38, 117); //Á¾Á¡¸í3 EndName3 AddDefFormObject(sFontName, 16, "2", 35, "@3Min", 80, 161, 117); //ÅëÇà½Ã°£3 3Min AddDefFormObject(sFontName, 16, "3", 34, "@Congest3", 53, 217, 117); //¼ÒÅë»óȲ3 Congest3 break; case 6: AddDefFormObject(sFontName, 18, "3", 18, "@SpotName", 300, 18, 20); //@ÁöÁ¡¸í @SpotName AddDefFormObject(sFontName, 18, "3", 0, "Around", 126, 153, 20); //ÁÖº¯ Around AddDefFormObject(sFontName, 18, "1", 0, "Congest Zam", 126, 222, 20); //Á¤Ã¼±Ø½É Congest Zam break; } } #if 0 (String AFontName, int AFontSize, String AFontColor, int AObjType, String AText, int ASize, int APosX, int APosY) #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnDeleteClick(TObject *Sender) { int nIdx = TvList->DataController->FocusedRecordIndex; if (nIdx < 0) return; String sFormId = EdFormId->Text; if (sFormId.IsEmpty()) { Application->MessageBox(lblText2->Caption.c_str(),//L"VMS Æû »èÁ¦\r\n»èÁ¦ÇÒ VMS ÆûÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (!CheckVmsFormUse(sFormId)) return; String sMsg; sMsg = lblText3->Caption + ": " + sFormId;//"VMS Æû ID: " + sFormId; sMsg+= "\r\n" + lblText4->Caption;//"¼±ÅÃÇϽŠVMS Æû Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; if (DelVmsForm(sFormId)) { FUpdate = true; Application->MessageBox(lblText5->Caption.c_str(),//L"VMS Æû »èÁ¦\r\nVMS ÆûÁ¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormClear(); ChangeEditMode(1); LoadVmsForm(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSaveImgFileClick(TObject *Sender) { if (EdFormId->Text == "") return; SaveDialog->Title = FTitle; SaveDialog->InitialDir = ExtractFilePath(Application->ExeName); SaveDialog->Filter = "Bitmap image Files (*.bmp)|*.bmp"; SaveDialog->FileName = EdFormId->Text + ".bmp"; if (SaveDialog->Execute()) { try { String sFileName = SaveDialog->FileName; int iRet = sFileName.Pos(".bmp"); if (iRet == 0) { sFileName = SaveDialog->FileName + ".bmp"; } ImgForm->Picture->SaveToFile(sFileName); } catch (Exception &exception) { Application->ShowException(&exception); } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ClearSymbloList() { for(int ii = 0; ii < FListSymb->Count; ii++) { Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii]; delete bitmap; } FListSymb->Clear(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; DisplayInfo(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!AFocusedRecord) return; DisplayInfo(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbSizeTypePropertiesChange(TObject *Sender) { EdSizeType->Text = CbSizeType->Text; BtnSearchClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSearchClick(TObject *Sender) { RefreshData(); EdFocus->SetFocus(); ChangeEditMode(1); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::RefreshData() { // °Ë»öÁ¶°Ç¿¡ ÀÇÇÑ ¸µÅ© µ¥ÀÌÅÍ Á¶È¸ FormClear(); LoadVmsForm(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormClear() { FSelIdx = -1; ImgForm->Picture->Bitmap->FreeImage(); ImgForm->Picture->Bitmap = NULL; EdFormId->Clear(); EdFormName->Clear(); EdFormDesc->Clear(); CbFormKind->ItemIndex = 0; CbFormDispMode->ItemIndex = 1; CbFormDispDir->ItemIndex = 3; CbFormColor->ItemIndex = 0; FormObjectClear(); FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormObjectClear() { m_pEdtDesigner->Clear(); CMM_ClearGridTableView(TvObjList); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::DisplayInfo() { FormClear(); //m_pDesigner->Clear(); PgEdit->ActivePage = TsEdit; FSelIdx = TvList->DataController->FocusedRecordIndex; if( FSelIdx <= -1 ) return; DisplayFormInfo(FSelIdx); ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::DisplayFormInfo(int AIdx) { TcxGridDataController *pDc = TvList->DataController; if (AIdx < FListSymb->Count) { Graphics::TBitmap *bitmap = (Graphics::TBitmap*)FListSymb->Items[AIdx]; ImgForm->Picture->Bitmap->Assign(bitmap); } EdSizeType->Text = CbSizeType->Text; EdFormId->Text = VarToStr(pDc->Values[AIdx][Col01->Index]); EdFormName->Text = VarToStr(pDc->Values[AIdx][Col02->Index]); EdFormDesc->Text = VarToStr(pDc->Values[AIdx][Col03->Index]); CbFormColor->ItemIndex = VarToStr(pDc->Values[AIdx][Col08->Index]).ToIntDef(0); String sFormType = VarToStr(pDc->Values[AIdx][Col09->Index]); APP_SetCode(CbFormKind, sFormType); APP_SetCode(CbFormDispMode, VarToStr(pDc->Values[AIdx][Col06->Index])); APP_SetCode(CbFormDispDir, VarToStr(pDc->Values[AIdx][Col07->Index])); //m_pDesigner->BkColorCode = String(CbFormColor->ItemIndex); m_pEdtDesigner->BkColorCode = String(CbFormColor->ItemIndex); //LoadFormObjectInfo(EdFormId->Text, m_pDesigner, sFormType); LoadFormObjectInfo(EdFormId->Text, m_pEdtDesigner, sFormType); SelObjectListData(); MyUseManager->LoadFromDb(EdFormId->Text); } //--------------------------------------------------------------------------- String __fastcall TVMSM500M::FindObjectTypeName(String AFormType, String ATypeCd) { String sReturn = "--???--"; TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(AFormType.ToIntDef(-1)); if (!pObj) return sReturn; TFormObjType *pType = pObj->FLists.Find(ATypeCd.ToIntDef(-1)); if (pType) sReturn = pType->NAME; return sReturn; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FnFormObjectSelected(TMessage &Msg) { #if 0 static long sLParam = -1; long cLParam = (long)Msg.LParam; if (sLParam == cLParam) { return; } sLParam = cLParam; #endif m_bEdit = true; try { ImgDesc99->Visible = false; Lbl99->Visible = false; Cb99->Visible = false; //Cb99->ItemIndex = 0; PnlIfsc->Visible = false; EdIfscId->Text = ""; TVmsFormObject *pObj = (TVmsFormObject *)Msg.LParam; if (!pObj) return; if (!pObj->Selected) return; EdObjSeq->Text = String(pObj->ObjSeq); if (pObj->ObjType.ToIntDef(0) == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) pObj->ObjType.ToIntDef(0) == 92) //@Ãà¼ÒÅë»óȲ(°íÁ¤) { PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; } String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { //µµÇü½Ä¹è°æ¼ÒÅëÁ¤º¸ if (pObj->ObjType.ToIntDef(0) == 0 || //¹®ÀÚ¿­ pObj->ObjType.ToIntDef(0) == 1 || //½Éº¼ pObj->ObjType.ToIntDef(0) == 2) //À̹ÌÁö { ImgDesc99->Visible = true; Lbl99->Visible = true; Cb99->Visible = true; TNotifyEvent evt = Cb99->Properties->OnChange; Cb99->Properties->OnChange = NULL; APP_SetCode(Cb99, pObj->Tag); Cb99->Properties->OnChange = evt; } } EdObjId->Text = pObj->ObjId; ChkBlinking->Checked = pObj->Blink; CbBkColor->ItemIndex = pObj->BkColorCode.ToInt(); SeLeft->Value = pObj->GetLeft(); SeTop->Value = pObj->GetTop(); if (pObj->DrawType == odtText) { APP_SetCode(CbObjType, pObj->ObjType); APP_SetCode(CbFontName, pObj->FontNameCode); CbFontColor->ItemIndex = pObj->FontColorCode.ToInt(); SeFontSize->Value = pObj->FontSize; ChkFontBold->Checked = pObj->FontBold; CbTextAlign->ItemIndex = pObj->TextAlign; if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text; if (pObj->ObjType.ToIntDef(0) == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { EdTextData->Properties->ReadOnly = true; } else { EdTextData->Properties->ReadOnly = false; } //CbTextType->Visible = true; //CbImageType->Visible= false; } else { APP_SetCode(CbObjType, pObj->ObjType); if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text; //CbTextType->Visible = false; //CbImageType->Visible= true; } TcxGridFocusedRecordChangedEvent evt = TvObjList->OnFocusedRecordChanged; TvObjList->OnFocusedRecordChanged = NULL; String sObjSeq = String(pObj->ObjSeq); CMM_SetGridRow(CxObjList, TvObjList, sObjSeq, ColSeq->Index); TvObjList->OnFocusedRecordChanged = evt; } catch(...) {} m_bEdit = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvObjListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { #if 0 if (AFocusedRecord == NULL) { return; } #endif ImgDesc99->Visible = false; Lbl99->Visible = false; Cb99->Visible = false; //Cb99->ItemIndex = 0; PnlIfsc->Visible = false; EdIfscId->Text = ""; if (TvObjList->ViewData->RecordCount <= 0) return; if (TvObjList->DataController->FocusedRowIndex < 0) return; TcxDataController *pGDC = TvObjList->DataController; int nIndex = pGDC->FocusedRecordIndex; String sObjSeq = pGDC->Values[nIndex][ColSeq->Index]; String sObjId = pGDC->Values[nIndex][ColId->Index]; EdObjSeq->Text = sObjSeq; //m_pEdtDesigner->SelectObject(sObjSeq.ToInt()); TVmsFormObject *pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (pObj) { if (pObj->ObjType.ToIntDef(0) == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) pObj->ObjType.ToIntDef(0) == 92) //@Ãà¼ÒÅë»óȲ(°íÁ¤) { PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; } if (pObj->ObjType.ToIntDef(0) == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { EdTextData->Properties->ReadOnly = true; } else { EdTextData->Properties->ReadOnly = false; } String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { //µµÇü½Ä¹è°æ¼ÒÅëÁ¤º¸ if (pObj->ObjType.ToIntDef(0) == 0 || //¹®ÀÚ¿­ pObj->ObjType.ToIntDef(0) == 1 || //½Éº¼ pObj->ObjType.ToIntDef(0) == 2) //À̹ÌÁö { ImgDesc99->Visible = true; Lbl99->Visible = true; Cb99->Visible = true; TNotifyEvent evt = Cb99->Properties->OnChange; Cb99->Properties->OnChange = NULL; APP_SetCode(Cb99, pObj->Tag); Cb99->Properties->OnChange = evt; } } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SelObjectListData() { CMM_ClearGridTableView(TvObjList); int nObjCnt = m_pEdtDesigner->GetObjectCount(); TVmsFormObject *pObj; for(int ii = 0; ii < nObjCnt; ii++) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj) { AddObjectToList(pObj); } } if (TvObjList->DataController->RecordCount > 0) TvObjList->DataController->FocusedRecordIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::AddObjectToList(TVmsFormObject *pObj, bool bSelect/*=false*/) { int nAddRow = -1; String sFormType = APP_GetCode(CbFormKind); TcxGridDataController *pGDC = TvObjList->DataController; try { TvObjList->BeginUpdate(); pGDC->BeginUpdate(); nAddRow = pGDC->AppendRecord(); pGDC->Values[nAddRow][ColSeq->Index] = String(pObj->ObjSeq); pGDC->Values[nAddRow][ColId->Index] = String(pObj->ObjId); pGDC->Values[nAddRow][ColType->Index] = FindObjectTypeName(sFormType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; #if 0 if (pObj->ObjKind == OBJKIND_TEXT) { pGDC->Values[nAddRow][ColKind->Index] = "¹®ÀÚ¿­"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbTextType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGE) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁö"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGEID) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁöID"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text + " [" + pObj->ImageId + "]"; } #endif //pGDC->Values[nAddRow][ColX->Index] = String(pObj->GetLeft()); //pGDC->Values[nAddRow][ColY->Index] = String(pObj->GetTop()); pGDC->Values[nAddRow][ColIfscId->Index] = pObj->Tag; pGDC->Values[nAddRow][ColMem->Index] = (int)pObj; } __finally { pGDC->EndUpdate(); TvObjList->EndUpdate(); if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSortReClick(TObject *Sender) { TcxButton *pBtn = (TcxButton *)Sender; ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnBoldReClick(TObject *Sender) { if (ReForm->SelAttributes->Style.Contains(fsBold)) ReForm->SelAttributes->Style = TFontStyles() >> fsBold; else ReForm->SelAttributes->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SeFontSizeRePropertiesChange(TObject *Sender) { if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; ReForm->SelAttributes->Size = ((TcxSpinEdit*)Sender)->Value; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontColorReClick(TObject *Sender) { switch(CbFontColorRe->ItemIndex) { case 0 : ReForm->SelAttributes->Color = clBlack; break; case 1 : ReForm->SelAttributes->Color = clRed; break; case 2 : ReForm->SelAttributes->Color = clLime; break; case 3 : default: ReForm->SelAttributes->Color = clYellow; break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontNameReClick(TObject *Sender) { String sFontCode = APP_GetCode(CbFontNameRe); String sFontName = APP_GetCodeName(CbFontNameRe, sFontCode); ReForm->SelAttributes->Name = sFontName; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ReFormChange(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkAutoPreviewClick(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnPreviewClick(TObject *Sender) { m_pEdtDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgEdtPreview); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnReApplyClick(TObject *Sender) { BtnPreviewClick(NULL); m_pEdtDesigner->AddDrawFormToVmsForm(ReForm, ImgEdtPreview); /* * ½Å±Ô·Î µî·ÏÇÑ °´Ã¼ÀÇ °´Ã¼Å¸ÀÔ°ú ÆùÆ®Äڵ带 ¾÷µ¥ÀÌÆ® ÇÑ´Ù. */ CbVmsObjType->ItemIndex = 0; // For °íÁ¤¹®ÀÚ¿­ String sObjType = APP_GetCode(CbVmsObjType); TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->ObjType == "XXX" && pObj->FontNameCode == "XXX") { pObj->ObjType = sObjType; pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, pObj->FontName); } } PgEdit->ActivePageIndex = 0; SelObjectListData(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFormKindPropertiesChange(TObject *Sender) { CbVmsObjType->Properties->Items->Clear(); CbObjType->Properties->Items->Clear(); String sFormType = APP_GetCode(CbFormKind); int nFormKind = sFormType.ToIntDef(0); TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(nFormKind); if (!pObj) return; FOR_STL(TFormObjType*, pType, pObj->FLists) { String sType; sType.printf(L"%2d", pType->TYPE); sType = pType->TYPE; CbVmsObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME); CbObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME); } CbVmsObjType->ItemIndex = 0; CbObjType->ItemIndex = 0; //EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFormColorClick(TObject *Sender) { m_pEdtDesigner->SetBkColor(String(CbFormColor->ItemIndex)); //m_pDesigner->BkColorCode = APP_GetCode(CbFormColor); //m_pEdtDesigner->BkColorCode = m_pDesigner->BkColorCode; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnMoveClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; switch(pBtn->Tag) { case 0: m_pEdtDesigner->StepMoveLeft(); break; case 1: m_pEdtDesigner->StepMoveRight(); break; case 2: m_pEdtDesigner->StepMoveUp(); break; case 3: m_pEdtDesigner->StepMoveDown(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnAlignClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pEdtDesigner->SetLeftAlign(m_pEdtDesigner->GetLeftAlign()); break; case 1: m_pEdtDesigner->SetRightAlign(m_pEdtDesigner->GetRightAlign()); break; case 2: m_pEdtDesigner->SetTopAlign(m_pEdtDesigner->GetTopAlign()); break; case 3: m_pEdtDesigner->SetBottomAlign(m_pEdtDesigner->GetBottomAlign()); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCenterClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pEdtDesigner->SetAlignWidthCenter(); break; case 1: m_pEdtDesigner->SetAlignHeightCenter(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SePosPropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; TcxSpinEdit *pPos = (TcxSpinEdit*)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; int nValue = pPos->Value; switch(pPos->Tag) { case 0: m_pEdtDesigner->MoveLeft(nValue); break; case 1: m_pEdtDesigner->MoveUp(nValue); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbBkColorClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObjectBkColorCode(String(CbBkColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkBlinkingClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObjectBlink(ChkBlinking->Checked); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdTextDataKeyPress(TObject *Sender, wchar_t &Key) { if (m_bEdit) return; if (Key == '\'') { Key = '`'; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdTextDataPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctText(EdTextData->Text); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::Button1Click(TObject *Sender) { TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pEdtDesigner->GetObject(ii); if (!pObj->Selected) continue; if (pObj->ObjKind != OBJKIND_TEXT) continue; pObj->SetRuntimeText(Edit1->Text); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SeFontSizePropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; int nFontSize = SeFontSize->Value; m_pEdtDesigner->SetObejctFontSize(nFontSize); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontNamePropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; String sFontCode = APP_GetCode(CbFontName); String sFontName = APP_GetCodeName(CbFontName, sFontCode); m_pEdtDesigner->SetObejctFontName(sFontName.Trim()); m_pEdtDesigner->SetObejctFontNameCode(sFontCode); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontColorClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctFontColorCode(String(CbFontColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbTextAlignPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdObjIdPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; try { int nObjId; TryStrToInt(EdObjId->Text.Trim(), nObjId); m_pEdtDesigner->SetObejctId(nObjId); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkFontBoldClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctFontBold(ChkFontBold->Checked); } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::GetNextVmsImgeId(int &ANmbr) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT NVL(MAX(SYMBLIB_NMBR), 5999)+1 AS NEWID FROM TB_VMS_SYMB_LIB WHERE SYMBLIB_NMBR BETWEEN 6000 AND 6999 \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); ANmbr = pADO->FieldByName("NEWID")->AsInteger; return true; } catch(EDatabaseError &E) { DBERRORLOG("VMS Image ID Query", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORLOG("VMS Image ID Query", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return false; } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::InsertVmsImage(String ANmbr, String AExpl, String ATypeCd) { String sQry; TADOQuery *pADO = NULL; sQry = "INSERT INTO TB_VMS_SYMB_LIB(SYMBLIB_NMBR, RGST_DT, SYMB_EXPL, IMAG_DATA, VMS_TYPE_CD) \r\n" " VALUES(:p01, :p02, :p03, :p04, :p05) \r\n"; int nRowHeight = 0; TMemoryStream *dataStream = new TMemoryStream(); ImgEdtTemp->Picture->Bitmap->SaveToStream(dataStream); try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANmbr); ITSDb_SQLBind(pADO, "p02", Now().FormatString("yyyymmddhhnnss")); ITSDb_SQLBind(pADO, "p03", AExpl); pADO->Parameters->ParamByName("p04")->LoadFromStream(dataStream, ftBlob); ITSDb_SQLBind(pADO, "p05", ATypeCd); pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("VMS Iamge Update", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("MS Iamge Update", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } if (dataStream) delete dataStream; dataStream = NULL; } return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::OpenBmpCanClose(TObject *Sender, bool &CanClose) { String sFName = OpenBmp->FileName; sFName = sFName.UpperCase(); if (sFName.SubString(sFName.Length()-2, 3) != "BMP") { Application->MessageBox(FrmLang->lblImage11->Caption.c_str(),//L"BMP ÆÄÀϸ¸ Àû¿ë °¡´ÉÇÕ´Ï´Ù.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } try { DWORD dwFileSize = ITSUtil_GetFileSize(sFName); if (dwFileSize <= 0) { Application->MessageBox(FrmLang->lblImage12->Caption.c_str(),//L"À̹ÌÁö ÆÄÀÏÀ» ÀÐ¾î ¿À´Âµ¥ ½ÇÆÐÇÏ¿´½À´Ï´Ù.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } if (dwFileSize > (1024 * 32)) // Max 32Kbytes { Application->MessageBox(FrmLang->lblImage13->Caption.c_str(),//L"À̹ÌÁö ÆÄÀÏÀÇ ÃÖ´ë Å©±â´Â 32KBytes¸¦ ³ÑÀ» ¼ö ¾ø½À´Ï´Ù.\r\nÀ̹ÌÁö ÆÄÀÏÀÇ ¿ë·®À» ÁÙ¿© ÁÖ¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } ImgEdtTemp->Picture->Bitmap->FreeImage(); ImgEdtTemp->Picture->Bitmap = NULL; ImgEdtTemp->Picture->Bitmap->LoadFromFile(sFName); String sExpl = EdFormId->Text.Trim(); int nNmbr; if (!GetNextVmsImgeId(nNmbr)) { Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"»õ·Î¿î VMS À̹ÌÁöÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (!InsertVmsImage(String(nNmbr), sExpl, "VMP0")) { Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"»õ·Î¿î VMS À̹ÌÁöÁ¤º¸¸¦ ÀúÀåÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGE; // "1" pObj->ObjType = "2"; pObj->ObjSize = (int)dwFileSize; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->SetBitmap(ImgEdtTemp->Picture->Bitmap); pObj->Text = lblFile1->Caption;//"ÆÄÀÏÀ̹ÌÁö";//ExtractShortPathName(sFName).c_str(); pObj->ImageId = String(nNmbr); pObj->SetPos(0, 0); pObj->EditMode = true; pObj->Show(); AddObjectToList(pObj, true); } catch(...) { return; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnAddTextClick(TObject *Sender) { if (CbVmsObjType->ItemIndex < 0) return; String sFormType = APP_GetCode(CbFormKind); String sObjType = APP_GetCode(CbVmsObjType); int nObjType = sObjType.ToIntDef(0); String sObjText = FindObjectTypeName(sFormType, sObjType); String sFontName = FrmLang->lblFontName->Caption;//"±¼¸²Ã¼"; String sFontNameCode = "3"; String sFontColorCode = "2"; //Green String sFontSize = 18; bool bFontBold = true; switch(nObjType) { case 1: //À̹ÌÁö ½Éº¼ case 3: //¼ÒÅëÁ¤º¸¹è°æÀ̹ÌÁö case 17: //@¼ÒÅëÀ̹ÌÁö1 case 27: //@¼ÒÅëÀ̹ÌÁö2 case 37: //@¼ÒÅëÀ̹ÌÁö3 case 47: //@¼ÒÅëÀ̹ÌÁö4 { TVMSM510M *pSelForm = new TVMSM510M(this); if (nObjType == 1 || nObjType == 3) { pSelForm->FImageType = nObjType; } else { pSelForm->FImageType = 2; } pSelForm->ShowModal(); if (!pSelForm->m_bSelected) { delete pSelForm; return; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = sObjType; pObj->ObjSize = pSelForm->ImgPreView->Picture->Bitmap->Width * pSelForm->ImgPreView->Picture->Bitmap->Height; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->Text = sObjText; pObj->ImageId = pSelForm->EdNmbr->Text; pObj->SetBitmap(pSelForm->ImgPreView->Picture->Bitmap); pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); delete pSelForm; } break; case 2: //ÆÄÀÏÀ̹ÌÁö OpenBmp->FileName = ""; OpenBmp->Execute(); break; #if 0 case 17: //@¹æÇâÀ̹ÌÁö1 case 27: //@¹æÇâÀ̹ÌÁö2 case 37: //@¹æÇâÀ̹ÌÁö3 case 47: //@¹æÇâÀ̹ÌÁö4 { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = sObjType; pObj->ObjSize = ImgDir->Picture->Bitmap->Width * ImgDir->Picture->Bitmap->Height; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; //pObj->Text = CbVmsObjType->Text; pObj->Text = sObjText; pObj->ImageId = "0"; pObj->SetBitmap(ImgDir->Picture->Bitmap); pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); } break; #endif default: { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjType = sObjType; if (nObjType == 91 || nObjType == 92) //ÃàÅëÇà½Ã°£,¼ÒÅë»óȲ(°íÁ¤) pObj->Tag = "0"; else pObj->Tag = "N"; pObj->TextAlign = 0; // left if (nObjType == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { #ifdef ENG sObjText = "@Traffic Fast About 0 Min."; #else sObjText = "@¼ÒÅë¿øÈ° ¾à 0 ºÐ"; #endif pObj->TextAlign = 2; // center EdTextData->Properties->ReadOnly = true; } else { EdTextData->Properties->ReadOnly = false; } pObj->ObjSize = sObjText.Length(); pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Text = sObjText; pObj->EditMode = true; pObj->ObjKind = OBJKIND_TEXT; pObj->FontName = sFontName; pObj->FontNameCode = sFontNameCode; pObj->FontColorCode = sFontColorCode; pObj->FontSize = sFontSize.ToInt(); pObj->FontBold = bFontBold; pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); } break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnObjDeleteClick(TObject *Sender) { if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; String sMsgString; sMsgString = lblText6->Caption;//"¼±ÅÃÇÑ °´Ã¼ Á¤º¸¸¦ ¸ðµÎ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsgString.c_str(), lblText7->Caption.c_str(),//L"°´Ã¼ Á¤º¸ »èÁ¦", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) { return; } bool bUse = false; TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = nObjCnt-1; ii >= 0; ii--) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->Selected) { TVmsObjUse*pObjUse = MyUseManager->FLists.Find(pObj->ObjSeq); if (pObjUse) { bUse = true; continue; } m_pEdtDesigner->DelObject(ii); } } if (bUse) { Application->MessageBox(lblText8->Caption.c_str(),//L"VMS Æû °´Ã¼ »èÁ¦\r\nVMS Æû °´Ã¼ Áß Á¤º¸Á¦°ø±¸°£¿¡ ¼³Á¤µÈ °´Ã¼´Â »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); } SelObjectListData(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ColXGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetLeft(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ColYGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetTop(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbVmsObjTypeClick(TObject *Sender) { if (BtnAddText->CanFocus()) { BtnAddText->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdIfscIdClick(TObject *Sender) { TVMSM530M *pSelForm = new TVMSM530M(this); pSelForm->EdNmbr->Text = EdIfscId->Text.Trim(); pSelForm->ShowModal(); String sIfscId = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sIfscId != "") { EdIfscId->Text = sIfscId; } UpdateObjectIfscId(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnIfscEraseClick(TObject *Sender) { EdIfscId->Text = ""; UpdateObjectIfscId(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::UpdateObjectIfscId() { TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = nObjCnt-1; ii >= 0; ii--) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->Selected) { if (pObj->ObjType.ToIntDef(0) == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) pObj->ObjType.ToIntDef(0) == 92) //@Ãà¼ÒÅë»óȲ(°íÁ¤) { pObj->Tag = EdIfscId->Text.Trim(); } } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCopyAddClick(TObject *Sender) { int nIdx = TvList->DataController->FocusedRecordIndex; if (nIdx < 0) return; String sFormName = InputBox(lblText9->Caption,//"Æû¸íĪ", lblText10->Caption,//"½Å±Ô Æû¸íĪ ÀÔ·ÂÇϼ¼¿ä(60Byte).", lblText9->Caption);//"Æû¸íĪ" ); sFormName = sFormName.Trim(); if (sFormName == lblText9->Caption//"Æû¸íĪ" || sFormName == "") { return; } if (AnsiString(sFormName).Length() > 60) { Application->MessageBox(lblText11->Caption.c_str(),//L"Æû¸íĪÀº 60Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sFormId = EdFormId->Text; if (sFormId.IsEmpty()) { Application->MessageBox(lblText12->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nº¹»ç Ãß°¡ÇÒ VMS ÆûÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } int nFormId; if (!GetNextVmsFormId(nFormId)) { Application->MessageBox(lblText1->Caption.c_str(),//L"»õ·Î¿î VMS ÆûÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (CopyFormAdd(sFormId, String(nFormId), sFormName)) { Application->MessageBox(lblText13->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nVMS Æû Á¤º¸¸¦ º¹»ç Ãß°¡ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsForm(); CMM_SetGridRow(CxList, TvList, String(nFormId), Col01->Index); DisplayInfo(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); VComm_VmsFormUpdate(); } } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::CopyFormAdd(String AOrgFormId, String ANewFormId, String AFormName) { bool bResult = false; String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "INSERT INTO TB_VMS_FORM (VMS_FORM_ID, \r\n" " VMS_TYPE_CD, \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_BCKG_HUE_CD, \r\n" " VMS_FORM_NM, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_MSG_DSPL_DRCT_CD, \r\n" " SYMBLIB_NMBR, \r\n" " VMS_FORM_IMAG, \r\n" " VMS_MSG_DSPL_MTHD_CD, \r\n" " CCTV_MNGM_NMBR) \r\n" "SELECT :p01, \r\n" " VMS_TYPE_CD, \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_BCKG_HUE_CD, \r\n" " :p02, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_MSG_DSPL_DRCT_CD, \r\n" " SYMBLIB_NMBR, \r\n" " VMS_FORM_IMAG, \r\n" " VMS_MSG_DSPL_MTHD_CD, \r\n" " CCTV_MNGM_NMBR \r\n" " FROM TB_VMS_FORM \r\n" " WHERE VMS_FORM_ID = :p03 \r\n"; ITSDb_GetConnection()->BeginTrans(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AFormName); ITSDb_SQLBind(pADO, "p03", AOrgFormId); pADO->ExecSQL(); sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n" " FORM_OBJECT_ID, \r\n" " VMS_FORM_ID, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_TYPE_CD, \r\n" " VMS_FONT_HUE_CD, \r\n" " VMS_FONT_STYL_CD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " VMS_DSPL_XCRDN, \r\n" " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMBLIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " ) \r\n" " SELECT \r\n" " FORM_OBJECT_ID, \r\n" " :p01, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_TYPE_CD, \r\n" " VMS_FONT_HUE_CD, \r\n" " VMS_FONT_STYL_CD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " VMS_DSPL_XCRDN, \r\n" " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMBLIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " FROM TB_VMS_FORM_OBJECT \r\n" " WHERE VMS_FORM_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AOrgFormId); pADO->ExecSQL(); ITSDb_GetConnection()->CommitTrans(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("VMS Copy Add", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("VMS Copy Add", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return bResult; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnUpClick(TObject *Sender) { try { TvObjList->BeginUpdate(); int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex; if (nCurIdx <= 0) { return; } int nUpIdx = nCurIdx-1; try { String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]); String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]); String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]); String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]); String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]); int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]); TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nUpIdx][ColSeq->Index]; TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nUpIdx][ColId->Index]; TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nUpIdx][ColType->Index]; TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nUpIdx][ColData->Index]; TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nUpIdx][ColIfscId->Index]; TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nUpIdx][ColMem->Index]; TvObjList->DataController->Values[nUpIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nUpIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nUpIdx][ColType->Index] = sVal3; TvObjList->DataController->Values[nUpIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nUpIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nUpIdx][ColMem->Index] = sVal6; TvObjList->Controller->ClearSelection(); TvObjList->Controller->FocusedRowIndex = nUpIdx; //TvObjList->Controller->FocusedRecordIndex = nUpIdx; TvObjList->ViewData->Records[nUpIdx]->Focused = true; TvObjList->ViewData->Records[nUpIdx]->Selected = true; CxObjList->SetFocus(); //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvObjList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnDownClick(TObject *Sender) { try { TvObjList->BeginUpdate(); int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex; //int nCurIdx = TvObjList->DataController->FocusedRecordIndex; if (nCurIdx < 0) { return; } if (nCurIdx == TvObjList->DataController->RecordCount-1) { return; } int nDnIdx = nCurIdx+1; try { String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]); String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]); String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]); String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]); String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]); int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]); TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nDnIdx][ColSeq->Index]; TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nDnIdx][ColId->Index]; TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nDnIdx][ColType->Index]; TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nDnIdx][ColData->Index]; TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nDnIdx][ColIfscId->Index]; TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nDnIdx][ColMem->Index]; TvObjList->DataController->Values[nDnIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nDnIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nDnIdx][ColType->Index] = sVal3; TvObjList->DataController->Values[nDnIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nDnIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nDnIdx][ColMem->Index] = sVal6; TvObjList->Controller->ClearSelection(); TvObjList->Controller->FocusedRowIndex = nDnIdx; //TvObjList->Controller->FocusedRecordIndex = nDnIdx; TvObjList->ViewData->Records[nDnIdx]->Focused = true; TvObjList->ViewData->Records[nDnIdx]->Selected = true; CxObjList->SetFocus(); //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvObjList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSaveClick(TObject *Sender) { if (EdFormId->Text.IsEmpty()) { Application->MessageBox(lblText14->Caption.c_str(),//L"VMS Æû ÀúÀå\r\nVMS Æû ID¸¦ ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (EdFormName->Text.Trim().IsEmpty()) { Application->MessageBox(lblText15->Caption.c_str(),//L"VMS Æû ÀúÀå\r\nVMS Æû À̸§À» ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sFormId = EdFormId->Text; //String sVmsType = FVmsTypeCd; String sFormType = APP_GetCode(CbFormKind); String sFormColor = String(CbFormColor->ItemIndex); String sName = EdFormName->Text.Trim(); String sExpl = EdFormDesc->Text.Trim(); String sDispDir = APP_GetCode(CbFormDispDir); String sDispMode = APP_GetCode(CbFormDispMode); bool bResult = false; m_pEdtDesigner->GetVmsFormImage(ImgForm); bResult = SaveVmsForm(); if (!bResult) return; String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "DELETE TB_VMS_FORM_OBJECT \r\n" " WHERE VMS_FORM_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", sFormId); pADO->ExecSQL(); sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n" " FORM_OBJECT_ID, \r\n" //N NUMBER(5) N FORM OBJECT ID " VMS_FORM_ID, \r\n" //N NUMBER(5) N VMS FORM ID " VMS_FORM_DSPL_ROW, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Çà " VMS_FORM_DSPL_CLMN, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Ä®·³ " VMS_FORM_OBJECT_TYPE_CD, \r\n" //N NUMBER(3) N VMS FORM OBJECT À¯Çü ÄÚµå " VMS_FONT_TYPE_CD, \r\n" //N NUMBER(3) N VMS ±Û²Ã À¯Çü ÄÚµå " VMS_FONT_HUE_CD, \r\n" //N NUMBER(9) N VMS ±Û²Ã »ö»ó ÄÚµå " VMS_FONT_STYL_CD, \r\n" //N NUMBER(3) Y VMS ±Û²Ã ¹æ½Ä ÄÚµå " VMS_FONT_SIZE, \r\n" //N NUMBER(3) Y 0 VMS ±Û²Ã Å©±â " VMS_FONT_ALIGN, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹®ÀÚ¿­Á¤¿­¹æ½Ä(0:LEFT,1:RIGHT,2:CENTER) " VMS_DSPL_TXT, \r\n" //N VARCHAR2(200) Y VMS Ç¥Ãâ ÅØ½ºÆ® " VMS_DSPL_FIGR, \r\n" //N BLOB Y VMS Ç¥Ãâ µµÇü " VMS_DSPL_XCRDN, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ XÁÂÇ¥ " VMS_DSPL_YCRDN, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ YÁÂÇ¥ " VMS_DSPL_WIDTH, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ÐÀÌ " VMS_DSPL_HEIGHT, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ôÀÌ " VMS_DSPL_BLINKING, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ Á¡¸ê ¿©ºÎ(0:Áö¼Ó, 1:Á¡¸ê) " VMS_DSPL_BKCOLOR, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹è°æ»ö»óÄÚµå " VMS_DSPL_SIZE, \r\n" //N NUMBER(7) Y 0 VMS Ç¥Ãâ Å©±â(¹®ÀÚ:¹®ÀÚ±æÀÌ,À̹ÌÁö:À̹ÌÁöÀüüũ±â) " TRFC_FILL_CD, \r\n" //N CHAR(1) Y 'N' FILL-IN ¸Þ½ÃÁö ¿©ºÎ " SYMBLIB_NMBR, \r\n" //N NUMBER(4) N 0 ½É¹ú¶óÀ̺귯¸® ¹øÈ£ " VMS_IFSC_ID \r\n" //N NUMBER(10) N 0 VMS Á¤º¸Á¦°ø±¸°£ ID " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" //N NUMBER(5) N FORM OBJECT ID " :p02, \r\n" //N NUMBER(5) N VMS FORM ID " 0, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Çà " 0, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Ä®·³ " :p05, \r\n" //N NUMBER(3) N VMS FORM OBJECT À¯Çü ÄÚµå " :p06, \r\n" //N NUMBER(3) N VMS ±Û²Ã À¯Çü ÄÚµå " :p07, \r\n" //N NUMBER(9) N VMS ±Û²Ã »ö»ó ÄÚµå " :p08, \r\n" //N NUMBER(3) Y VMS ±Û²Ã ¹æ½Ä ÄÚµå " :p09, \r\n" //N NUMBER(3) Y 0 VMS ±Û²Ã Å©±â " :p10, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹®ÀÚ¿­Á¤¿­¹æ½Ä(0:LEFT,1:RIGHT,2:CENTER) " :p11, \r\n" //N VARCHAR2(200) Y VMS Ç¥Ãâ ÅØ½ºÆ® " :p12, \r\n" //N BLOB Y VMS Ç¥Ãâ µµÇü " :p13, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ XÁÂÇ¥ " :p14, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ YÁÂÇ¥ " :p15, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ÐÀÌ " :p16, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ôÀÌ " :p17, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ Á¡¸ê ¿©ºÎ(0:Áö¼Ó, 1:Á¡¸ê) " :p18, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹è°æ»ö»óÄÚµå " :p19, \r\n" //N NUMBER(7) Y 0 VMS Ç¥Ãâ Å©±â(¹®ÀÚ:¹®ÀÚ±æÀÌ,À̹ÌÁö:À̹ÌÁöÀüüũ±â) " :p23, \r\n" //N CHAR(1) Y 'N' FILL-IN ¸Þ½ÃÁö ¿©ºÎ " :p21, \r\n" //N NUMBER(4) N 0 ½É¹ú¶óÀ̺귯¸® ¹øÈ£ " :p22 \r\n" //N NUMBER(10) N 0 VMS Á¤º¸Á¦°ø±¸°£ ID " ) \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_GetConnection()->BeginTrans(); TVmsFormObject *pObj; TcxGridDataController *pGDC = TvObjList->DataController; int nObjType; int nObjCnt = pGDC->RecordCount; for (int ii = 0; ii < nObjCnt; ii++) { String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]); pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (!pObj) continue; nObjType = pObj->ObjType.ToIntDef(0); ITSDb_SQLBind(pADO, "p01", String(ii+1)); ITSDb_SQLBind(pADO, "p02", sFormId); //ITSDb_SQLBind(pADO, "p03", ); //ITSDb_SQLBind(pADO, "p04", ); ITSDb_SQLBind(pADO, "p05", pObj->ObjType); ITSDb_SQLBind(pADO, "p06", pObj->FontNameCode); ITSDb_SQLBind(pADO, "p07", pObj->FontColorCode); if (pObj->FontBold) ITSDb_SQLBind(pADO, "p08", "1"); else ITSDb_SQLBind(pADO, "p08", "0"); ITSDb_SQLBind(pADO, "p09", String(pObj->FontSize)); ITSDb_SQLBind(pADO, "p10", String(pObj->TextAlign)); ITSDb_SQLBind(pADO, "p11", pObj->Text); ITSDb_SQLBind(pADO, "p13", String(pObj->GetLeft())); ITSDb_SQLBind(pADO, "p14", String(pObj->GetTop())); ITSDb_SQLBind(pADO, "p15", String(pObj->GetWidth())); ITSDb_SQLBind(pADO, "p16", String(pObj->GetHeight())); if (pObj->Blink) ITSDb_SQLBind(pADO, "p17", "1"); else ITSDb_SQLBind(pADO, "p17", "0"); ITSDb_SQLBind(pADO, "p18", pObj->BkColorCode); ITSDb_SQLBind(pADO, "p19", String(pObj->ObjSize)); //ITSDb_SQLBind(pADO, "p20", ); ITSDb_SQLBind(pADO, "p21", pObj->ImageId); String sIfscId = ""; if (nObjType == 91 || nObjType == 92) { sIfscId = pObj->Tag; } ITSDb_SQLBind(pADO, "p22", sIfscId); String sFillIn = "N"; if (sFormType == "15") { if (nObjType == 0 || nObjType == 1 || nObjType == 2) { sFillIn = pObj->Tag; } } ITSDb_SQLBind(pADO, "p23", sFillIn); TMemoryStream *dataStream = NULL; TImage *pImg = pObj->GetImage(); dataStream = new TMemoryStream(); if (!pImg) { ImgNull->Picture->Bitmap->SaveToStream(dataStream); } else { pImg->Picture->Bitmap->SaveToStream(dataStream); } pADO->Parameters->ParamByName("p12")->LoadFromStream(dataStream, ftBlob); ITSDb_SQLExec(pADO); if (dataStream) delete dataStream; dataStream = NULL; } ITSDb_GetConnection()->CommitTrans(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("VMS Form Object Save", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("VMS Form Object Save", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } if (bResult) { Application->MessageBox(lblText16->Caption.c_str(),//L"VMS Æû Á¤º¸ ÀúÀå\r\nVMS Æû Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsForm(); CMM_SetGridRow(CxList, TvList, sFormId, Col01->Index); DisplayInfo(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); VComm_VmsFormUpdate(); } ReForm->Lines->Clear(); ReFormTemp->Lines->Clear(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::Cb99PropertiesChange(TObject *Sender) { if (m_bEdit) return; #if 1 String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { String sFillIn = APP_GetCode(Cb99); if (sFillIn == "") sFillIn = "N"; TVmsFormObject *pObj = m_pEdtDesigner->FindObject(EdObjSeq->Text.ToIntDef(-1), false); if (pObj) { int nObjType = pObj->ObjType.ToIntDef(-1); if (nObjType == 0 || nObjType == 1 || nObjType == 2) { pObj->Tag = sFillIn; } } } #endif } //---------------------------------------------------------------------------