VMSM500MSRCF.cpp 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include <vcl.h>
  4. #include "ITSSkinF.h"
  5. #include "ITSUtilF.h"
  6. #include "AppGlobalF.h"
  7. #pragma hdrstop
  8. #include "VMSM500MF.h"
  9. #include "VMSM500MSRCF.h"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. //폼유형
  13. void __fastcall TVMSM500M::FillVmsFormType(TcxComboBox *ACombo)
  14. {
  15. String sQry;
  16. TADOQuery *pADO = NULL;
  17. ACombo->Properties->Items->Clear();
  18. sQry = "SELECT VMS_FORM_TYPE_CD AS CD, \r\n"
  19. " VMS_FORM_TYPE_NM AS NM, \r\n"
  20. " EDTN_CD \r\n"
  21. " FROM TB_VMS_FORM_TYPE \r\n"
  22. " ORDER BY CD ASC \r\n";
  23. try
  24. {
  25. try
  26. {
  27. pADO = new TADOQuery(NULL);
  28. pADO->Close();
  29. pADO->Connection = ITSDb_GetConnection();
  30. ITSDb_SQLText(pADO, sQry);
  31. ITSDb_SQLOpen(pADO);
  32. for( ; !pADO->Eof; pADO->Next())
  33. {
  34. String sUse = pADO->FieldByName("EDTN_CD")->AsString;
  35. if (sUse == "EDI2") continue;
  36. String sCd = pADO->FieldByName("CD")->AsString;
  37. String sNm = pADO->FieldByName("NM")->AsString;
  38. ACombo->Properties->Items->Add(" [" + sCd + "] " + sNm);
  39. }
  40. ACombo->ItemIndex = 0;
  41. }
  42. catch(EDatabaseError &E)
  43. {
  44. DBERRORMSG("FillVmsFormType", String(E.ClassName()), E.Message, sQry);
  45. throw Exception(String(E.ClassName()) + E.Message);
  46. }
  47. catch(Exception &exception)
  48. {
  49. DBERRORMSG("FillVmsFormType", String(exception.ClassName()), exception.Message, sQry);
  50. throw Exception(String(exception.ClassName()) + exception.Message);
  51. }
  52. }
  53. __finally
  54. {
  55. if (pADO)
  56. {
  57. pADO->Close();
  58. delete pADO;
  59. }
  60. }
  61. }
  62. //---------------------------------------------------------------------------
  63. //표출방법
  64. void __fastcall TVMSM500M::FillVmsFormDispMode(TcxComboBox *ACombo)
  65. {
  66. String sQry;
  67. TADOQuery *pADO = NULL;
  68. ACombo->Properties->Items->Clear();
  69. sQry = "SELECT VMS_MSG_DSPL_MTHD_CD AS CD, \r\n"
  70. " VMS_MSG_DSPL_MTHD_NM AS NM, \r\n"
  71. " EDTN_CD \r\n"
  72. " FROM TB_VMS_MSG_DSPL_MTHD \r\n"
  73. " ORDER BY CD ASC \r\n";
  74. try
  75. {
  76. try
  77. {
  78. pADO = new TADOQuery(NULL);
  79. pADO->Close();
  80. pADO->Connection = ITSDb_GetConnection();
  81. ITSDb_SQLText(pADO, sQry);
  82. ITSDb_SQLOpen(pADO);
  83. for( ; !pADO->Eof; pADO->Next())
  84. {
  85. String sUse = pADO->FieldByName("EDTN_CD")->AsString;
  86. if (sUse == "EDI2") continue;
  87. String sCd = pADO->FieldByName("CD")->AsString;
  88. String sNm = pADO->FieldByName("NM")->AsString;
  89. ACombo->Properties->Items->Add(" [" + sCd + "] " + sNm);
  90. }
  91. ACombo->ItemIndex = 0;
  92. }
  93. catch(EDatabaseError &E)
  94. {
  95. DBERRORMSG("FillVmsFormType", String(E.ClassName()), E.Message, sQry);
  96. throw Exception(String(E.ClassName()) + E.Message);
  97. }
  98. catch(Exception &exception)
  99. {
  100. DBERRORMSG("FillVmsFormType", String(exception.ClassName()), exception.Message, sQry);
  101. throw Exception(String(exception.ClassName()) + exception.Message);
  102. }
  103. }
  104. __finally
  105. {
  106. if (pADO)
  107. {
  108. pADO->Close();
  109. delete pADO;
  110. }
  111. }
  112. }
  113. //---------------------------------------------------------------------------
  114. //표출방향
  115. void __fastcall TVMSM500M::FillVmsFormDispDir(TcxComboBox *ACombo)
  116. {
  117. String sQry;
  118. TADOQuery *pADO = NULL;
  119. ACombo->Properties->Items->Clear();
  120. sQry = "SELECT VMS_MSG_DSPL_DRCT_CD AS CD, \r\n"
  121. " VMS_MSG_DSPL_DRCT_NM AS NM, \r\n"
  122. " EDTN_CD \r\n"
  123. " FROM TB_VMS_MSG_DSPL_DRCT \r\n"
  124. " ORDER BY CD ASC \r\n";
  125. try
  126. {
  127. try
  128. {
  129. pADO = new TADOQuery(NULL);
  130. pADO->Close();
  131. pADO->Connection = ITSDb_GetConnection();
  132. ITSDb_SQLText(pADO, sQry);
  133. ITSDb_SQLOpen(pADO);
  134. for( ; !pADO->Eof; pADO->Next())
  135. {
  136. String sUse = pADO->FieldByName("EDTN_CD")->AsString;
  137. if (sUse == "EDI2") continue;
  138. String sCd = pADO->FieldByName("CD")->AsString;
  139. String sNm = pADO->FieldByName("NM")->AsString;
  140. ACombo->Properties->Items->Add(" [" + sCd + "] " + sNm);
  141. }
  142. ACombo->ItemIndex = 0;
  143. }
  144. catch(EDatabaseError &E)
  145. {
  146. DBERRORMSG("FillVmsFormType", String(E.ClassName()), E.Message, sQry);
  147. throw Exception(String(E.ClassName()) + E.Message);
  148. }
  149. catch(Exception &exception)
  150. {
  151. DBERRORMSG("FillVmsFormType", String(exception.ClassName()), exception.Message, sQry);
  152. throw Exception(String(exception.ClassName()) + exception.Message);
  153. }
  154. }
  155. __finally
  156. {
  157. if (pADO)
  158. {
  159. pADO->Close();
  160. delete pADO;
  161. }
  162. }
  163. }
  164. //---------------------------------------------------------------------------
  165. //VMS Font
  166. void __fastcall TVMSM500M::FillVmsFont(TcxComboBox *ACombo)
  167. {
  168. String sQry;
  169. TADOQuery *pADO = NULL;
  170. ACombo->Properties->Items->Clear();
  171. sQry = "SELECT VMS_FONT_SHPE_CD AS CD, \r\n"
  172. " VMS_FONT_SHPE_NM AS NM, \r\n"
  173. " EDTN_CD \r\n"
  174. " FROM TB_VMS_FONT_SHPE \r\n"
  175. " ORDER BY CD ASC \r\n";
  176. try
  177. {
  178. try
  179. {
  180. pADO = new TADOQuery(NULL);
  181. pADO->Close();
  182. pADO->Connection = ITSDb_GetConnection();
  183. ITSDb_SQLText(pADO, sQry);
  184. ITSDb_SQLOpen(pADO);
  185. for( ; !pADO->Eof; pADO->Next())
  186. {
  187. String sUse = pADO->FieldByName("EDTN_CD")->AsString;
  188. if (sUse == "EDI2") continue;
  189. String sCd = pADO->FieldByName("CD")->AsString;
  190. String sNm = pADO->FieldByName("NM")->AsString;
  191. ACombo->Properties->Items->Add(" [" + sCd + "] " + sNm);
  192. }
  193. ACombo->ItemIndex = 0;
  194. }
  195. catch(EDatabaseError &E)
  196. {
  197. DBERRORMSG("FillVmsFormType", String(E.ClassName()), E.Message, sQry);
  198. throw Exception(String(E.ClassName()) + E.Message);
  199. }
  200. catch(Exception &exception)
  201. {
  202. DBERRORMSG("FillVmsFormType", String(exception.ClassName()), exception.Message, sQry);
  203. throw Exception(String(exception.ClassName()) + exception.Message);
  204. }
  205. }
  206. __finally
  207. {
  208. if (pADO)
  209. {
  210. pADO->Close();
  211. delete pADO;
  212. }
  213. }
  214. }
  215. //---------------------------------------------------------------------------
  216. void __fastcall TVMSM500M::LoadFormObjectInfo(String AFormId, TVmsFormDesigner *ADesigner, String AFormType)
  217. {
  218. ADesigner->Clear();
  219. String sQry;
  220. TADOQuery *pADO = NULL;
  221. sQry = "SELECT A.*, \r\n"
  222. " C.VMS_FONT_SHPE_NM, \r\n"
  223. " B.IMAG_DATA AS SYMB_IMG, \r\n"
  224. " B.SYMB_EXPL AS SYMB_IMG_NM \r\n"
  225. " FROM TB_VMS_FORM_OBJECT A, \r\n"
  226. " TB_VMS_SYMB_LIB B, \r\n"
  227. " TB_VMS_FONT_SHPE C \r\n"
  228. " WHERE A.VMS_FORM_ID = :p01 \r\n"
  229. " AND A.SYMBLIB_NMBR = B.SYMBLIB_NMBR(+) \r\n"
  230. " AND A.VMS_FONT_TYPE_CD = C.VMS_FONT_SHPE_CD(+) \r\n"
  231. " ORDER BY A.FORM_OBJECT_ID ASC \r\n";
  232. #if 0
  233. FORM_OBJECT_ID N NUMBER(5) N FORM OBJECT ID
  234. VMS_FORM_ID N NUMBER(5) N VMS FORM ID
  235. VMS_FORM_DSPL_ROW N NUMBER(2) Y VMS FORM 표출 행
  236. VMS_FORM_DSPL_CLMN N NUMBER(2) Y VMS FORM 표출 칼럼
  237. VMS_FORM_OBJECT_TYPE_CD N NUMBER(3) N VMS FORM OBJECT 유형 코드
  238. VMS_FONT_TYPE_CD N NUMBER(3) N VMS 글꼴 유형 코드
  239. VMS_FONT_HUE_CD N NUMBER(9) N VMS 글꼴 색상 코드
  240. VMS_FONT_STYL_CD N NUMBER(3) Y VMS 글꼴 방식 코드
  241. VMS_FONT_SIZE N NUMBER(3) Y 0 VMS 글꼴 크기
  242. VMS_FONT_ALIGN N NUMBER(1) Y 0 VMS 표출 문자열정열방식(0:LEFT,1:RIGHT,2:CENTER)
  243. VMS_DSPL_TXT N VARCHAR2(200) Y VMS 표출 텍스트
  244. VMS_DSPL_FIGR N BLOB Y VMS 표출 도형
  245. VMS_DSPL_XCRDN N NUMBER(5) Y VMS 표출 X좌표
  246. VMS_DSPL_YCRDN N NUMBER(5) Y VMS 표출 Y좌표
  247. VMS_DSPL_WIDTH N NUMBER(5) Y 0 VMS 표출 넓이
  248. VMS_DSPL_HEIGHT N NUMBER(5) Y 0 VMS 표출 높이
  249. VMS_DSPL_BLINKING N NUMBER(1) Y 0 VMS 표출 점멸 여부(0:지속, 1:점멸)
  250. VMS_DSPL_BKCOLOR N NUMBER(1) Y 0 VMS 표출 배경색상코드
  251. VMS_DSPL_SIZE N NUMBER(7) Y 0 VMS 표출 크기(문자:문자길이,이미지:이미지전체크기)
  252. TRFC_FILL_CD N CHAR(1) Y 'N' FILL-IN 메시지 여부
  253. SYMBLIB_NMBR N NUMBER(4) N 0 심벌라이브러리 번호
  254. #endif
  255. try
  256. {
  257. try
  258. {
  259. pADO = new TADOQuery(NULL);
  260. pADO->Close();
  261. pADO->Connection = ITSDb_GetConnection();
  262. ITSDb_SQLText(pADO, sQry);
  263. ITSDb_SQLBind(pADO, "p01", AFormId);
  264. ITSDb_SQLOpen(pADO);
  265. int nDrawType;
  266. String sObjKind;
  267. for( ; !pADO->Eof; pADO->Next())
  268. {
  269. int nFormId = pADO->FieldByName("VMS_FORM_ID")->AsInteger;
  270. int nObjId = pADO->FieldByName("FORM_OBJECT_ID")->AsInteger;
  271. int nObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsInteger;
  272. if (nObjType == 1 || //이미지 심볼
  273. nObjType == 2 || //파일이미지
  274. nObjType == 3 || //소통정보이미지
  275. nObjType == 17 || //소통이미지1
  276. nObjType == 27 || //소통이미지2
  277. nObjType == 37 || //소통이미지3
  278. nObjType == 47 ) //소통이미지4
  279. {
  280. if (nObjType == 3) sObjKind = OBJKIND_IMAGE;
  281. else sObjKind = OBJKIND_IMAGEID;
  282. nDrawType = 1; //이미지그리기
  283. }
  284. else
  285. {
  286. sObjKind = OBJKIND_TEXT; //문자열
  287. nDrawType = 0; //문자열그리기
  288. }
  289. int nBlinking = pADO->FieldByName("VMS_DSPL_BLINKING")->AsInteger;
  290. int nPosX = pADO->FieldByName("VMS_DSPL_XCRDN")->AsInteger;
  291. int nPosY = pADO->FieldByName("VMS_DSPL_YCRDN")->AsInteger;
  292. TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType);
  293. if (!pObj) continue;
  294. String sIfscId = pADO->FieldByName("VMS_IFSC_ID")->AsString;
  295. String sFillCd = pADO->FieldByName("TRFC_FILL_CD")->AsString;
  296. pObj->ObjSeq = nObjId;
  297. pObj->ObjId = nObjId;
  298. pObj->ObjKind = sObjKind;
  299. pObj->Tag = sIfscId;
  300. if (AFormType == "15")
  301. {
  302. if (nObjType == 0 || nObjType == 1 || nObjType == 2)
  303. {
  304. pObj->Tag = sFillCd;
  305. }
  306. }
  307. pObj->ObjType = pADO->FieldByName("VMS_FORM_OBJECT_TYPE_CD")->AsString;
  308. pObj->ObjSize = pADO->FieldByName("VMS_DSPL_SIZE")->AsInteger;
  309. pObj->BkColorCode = pADO->FieldByName("VMS_DSPL_BKCOLOR")->AsString;
  310. pObj->Blink = nBlinking == 1 ? true : false;
  311. pObj->ImageId = pADO->FieldByName("SYMBLIB_NMBR")->AsString;
  312. pObj->Text = pADO->FieldByName("VMS_DSPL_TXT")->AsString;
  313. if (pObj->ObjKind == OBJKIND_TEXT) // 문자열
  314. {
  315. int nFontBold = pADO->FieldByName("VMS_FONT_STYL_CD")->AsInteger;
  316. pObj->FontName = pADO->FieldByName("VMS_FONT_SHPE_NM")->AsString;
  317. pObj->FontNameCode = pADO->FieldByName("VMS_FONT_TYPE_CD")->AsString;
  318. pObj->FontColorCode = pADO->FieldByName("VMS_FONT_HUE_CD")->AsString;
  319. pObj->FontSize = pADO->FieldByName("VMS_FONT_SIZE")->AsInteger;
  320. pObj->FontBold = nFontBold == 1 ? true : false;
  321. pObj->TextAlign = pADO->FieldByName("VMS_FONT_ALIGN")->AsInteger;
  322. }
  323. else //if (sObjKind == "1" || sObjKind == "2") // 이미지(1), 이미지 ID(2)
  324. {
  325. if (pObj->ObjKind == OBJKIND_IMAGEID)
  326. {
  327. if (pObj->Text.Trim() == "")
  328. {
  329. pObj->Text = pObj->ImageId;
  330. }
  331. }
  332. TStream *pStream = NULL;
  333. pStream = pADO->CreateBlobStream(pADO->FieldByName("VMS_DSPL_FIGR"), bmRead);
  334. try
  335. {
  336. if (pStream && pStream->Size > 0)
  337. {
  338. Graphics::TBitmap *Bitmap = pObj->GetBitmap();
  339. pStream->Position = 0;
  340. Bitmap->LoadFromStream(pStream);
  341. pObj->SetSize(Bitmap->Width, Bitmap->Height);
  342. }
  343. }
  344. __finally
  345. {
  346. SAFE_DELETE(pStream);
  347. }
  348. }
  349. pObj->SetPos(nPosX, nPosY);
  350. pObj->Show();
  351. pObj->BringToFront();
  352. }
  353. }
  354. catch(EDatabaseError &E)
  355. {
  356. DBERRORMSG("VMS Form Object Query", String(E.ClassName()), E.Message, sQry);
  357. throw Exception(String(E.ClassName()) + E.Message);
  358. }
  359. catch(Exception &exception)
  360. {
  361. DBERRORMSG("VMS Form Object Query", String(exception.ClassName()), exception.Message, sQry);
  362. throw Exception(String(exception.ClassName()) + exception.Message);
  363. }
  364. }
  365. __finally
  366. {
  367. if (pADO)
  368. {
  369. pADO->Close();
  370. delete pADO;
  371. }
  372. }
  373. }
  374. //---------------------------------------------------------------------------
  375. void __fastcall TVMSM500M::LoadVmsForm()
  376. {
  377. FormClear();
  378. int nFocusedIdx = TvList->DataController->FocusedRecordIndex;
  379. CMM_ClearGridTableView(TvList);
  380. ClearSymbloList();
  381. TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType);
  382. if (pVmsSizeType == NULL) return;
  383. String sWhereQry = "";
  384. if (pVmsSizeType->TypeCd != "ALL")
  385. {
  386. sWhereQry = " WHERE A.VMS_TYPE_CD = '" + pVmsSizeType->TypeCd + "' \r\n";
  387. }
  388. FVmsTypeCd = pVmsSizeType->TypeCd;
  389. FVmsWidth = pVmsSizeType->Width;
  390. FVmsHeight = pVmsSizeType->Height;
  391. ImgForm->Width = FVmsWidth;
  392. ImgForm->Height = FVmsHeight;
  393. ImgForm->Picture->Bitmap->Width = FVmsWidth;
  394. ImgForm->Picture->Bitmap->Height = FVmsHeight;
  395. {
  396. PnlBack->Left = 5;
  397. PnlBack->Top = 5;
  398. PnlBack->Width = FVmsWidth+4;
  399. PnlBack->Height= FVmsHeight+4;
  400. //PnlFormPreview->Width = pVmsSizeType->Width +4;
  401. //PnlFormPreview->Height = pVmsSizeType->Height+4;
  402. //m_pDesigner->Clear();
  403. //m_pDesigner->SizeType = FVmsTypeCd;
  404. //m_pDesigner->SetSize(FVmsWidth, FVmsHeight);
  405. //m_pDesigner->SetPos(0, 0);
  406. //m_pDesigner->BkColor = clBlack;
  407. //m_pDesigner->Show();
  408. }
  409. {
  410. PnlEdtBack->Width = FVmsWidth+4;
  411. PnlEdtBack->Height= FVmsHeight+4;
  412. PnlRePreview->Width = FVmsWidth+4;
  413. PnlRePreview->Height= FVmsHeight+4;
  414. PnlRePreview->Color = clWhite;//m_pDesigner->BkColor;
  415. ImgEdtPreview->Left = 2;
  416. ImgEdtPreview->Top = 2;
  417. ImgEdtPreview->Width = FVmsWidth;
  418. ImgEdtPreview->Height= FVmsHeight;
  419. ReForm->Width = FVmsWidth+22+4;
  420. ReForm->Height= FVmsHeight+22+4;
  421. ReForm->Color = clBlack;
  422. m_pEdtDesigner->Clear();
  423. m_pEdtDesigner->SizeType = FVmsTypeCd;
  424. m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight);
  425. m_pEdtDesigner->SetPos(0, 0);
  426. m_pEdtDesigner->BkColorCode = "0";//m_pDesigner->BkColorCode;
  427. m_pEdtDesigner->EditMode = true;
  428. m_pEdtDesigner->Show();
  429. }
  430. String sVmsSizeNm = pVmsSizeType->TypeNm;
  431. String sQry;
  432. TADOQuery *pADO = NULL;
  433. sQry = "SELECT A.VMS_FORM_ID, A.VMS_FORM_NM, A.VMS_FORM_EXPL, \r\n"
  434. " A.VMS_FORM_TYPE_CD, A.VMS_TYPE_CD, \r\n"
  435. " (SELECT CMMN_CD_KOR_NM \r\n"
  436. " FROM TB_CMMN_CD \r\n"
  437. " WHERE CMMN_CD = A.VMS_TYPE_CD AND USE_YN = 'Y') \r\n"
  438. " AS VMS_SIZE_TYPE_NM, \r\n"
  439. " (SELECT VMS_FORM_TYPE_NM \r\n"
  440. " FROM TB_VMS_FORM_TYPE \r\n"
  441. " WHERE EDTN_CD <> 'EDI2' \r\n"
  442. " AND VMS_FORM_TYPE_CD = A.VMS_FORM_TYPE_CD) \r\n"
  443. " AS FORM_TYPE_NM, \r\n"
  444. " A.VMS_FORM_BCKG_HUE_CD, \r\n"
  445. " A.VMS_MSG_DSPL_DRCT_CD, \r\n"
  446. " A.VMS_MSG_DSPL_MTHD_CD, \r\n"
  447. " A.VMS_FORM_IMAG \r\n"
  448. " FROM TB_VMS_FORM A \r\n";
  449. sQry += sWhereQry;
  450. sQry +=" ORDER BY A.VMS_TYPE_CD DESC, A.VMS_FORM_ID ASC \r\n";
  451. String sFirstFormId = "";
  452. try
  453. {
  454. int nRow;
  455. TcxDataController *pGDC = TvList->DataController;
  456. TvList->BeginUpdate();
  457. try
  458. {
  459. pADO = new TADOQuery(NULL);
  460. pADO->Close();
  461. pADO->Connection = ITSDb_GetConnection();
  462. ITSDb_SQLText(pADO, sQry);
  463. //ITSDb_SQLBind(pADO, "p01", sVmsTypeCd);
  464. ITSDb_SQLOpen(pADO);
  465. for( ; !pADO->Eof; pADO->Next())
  466. {
  467. nRow = pGDC->AppendRecord();
  468. String sFormId = pADO->FieldByName("VMS_FORM_ID")->AsString;
  469. if (sFirstFormId == "") sFirstFormId = sFormId;
  470. pGDC->Values[nRow][Col01->Index] = sFormId; //폼ID
  471. pGDC->Values[nRow][Col02->Index] = pADO->FieldByName("VMS_FORM_NM")->AsVariant; //폼명칭
  472. pGDC->Values[nRow][Col03->Index] = pADO->FieldByName("VMS_FORM_EXPL")->AsString; //폼설명
  473. pGDC->Values[nRow][Col04->Index] = pADO->FieldByName("FORM_TYPE_NM")->AsString; //폼종류
  474. pGDC->Values[nRow][Col05->Index] = pADO->FieldByName("VMS_SIZE_TYPE_NM")->AsString; //폼크기
  475. pGDC->Values[nRow][Col06->Index] = pADO->FieldByName("VMS_MSG_DSPL_MTHD_CD")->AsString; //표출방법코드-
  476. pGDC->Values[nRow][Col07->Index] = pADO->FieldByName("VMS_MSG_DSPL_DRCT_CD")->AsString; //표출방향코드-
  477. pGDC->Values[nRow][Col08->Index] = pADO->FieldByName("VMS_FORM_BCKG_HUE_CD")->AsString; //배경색코드-
  478. pGDC->Values[nRow][Col09->Index] = pADO->FieldByName("VMS_FORM_TYPE_CD")->AsString; //폼종류코드-
  479. pGDC->Values[nRow][Col10->Index] = pADO->FieldByName("VMS_TYPE_CD")->AsString; //폼크기코드-
  480. Graphics::TBitmap *bitmap = new Graphics::TBitmap;
  481. try {
  482. bitmap->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("VMS_FORM_IMAG"), bmRead));
  483. } catch(Exception &e) {
  484. //throw Exception(String(e.ClassName()) + e.Message);
  485. }
  486. FListSymb->Add(bitmap);
  487. }
  488. }
  489. catch(EDatabaseError &E)
  490. {
  491. DBERRORMSG("VMS Form Query", String(E.ClassName()), E.Message, sQry);
  492. throw Exception(String(E.ClassName()) + E.Message);
  493. }
  494. catch(Exception &e)
  495. {
  496. DBERRORMSG("VMS Form Query", String(e.ClassName()), e.Message, sQry);
  497. throw Exception(String(e.ClassName()) + e.Message);
  498. }
  499. }
  500. __finally
  501. {
  502. if (pADO)
  503. {
  504. pADO->Close();
  505. delete pADO;
  506. }
  507. TvList->EndUpdate();
  508. if (TvList->DataController->RecordCount > 0)
  509. {
  510. //CMM_SetGridRow(CxList, TvList, sFirstFormId, Col01->Index);
  511. //DisplayInfo();
  512. }
  513. }
  514. }
  515. //---------------------------------------------------------------------------
  516. bool __fastcall TVMSM500M::SaveVmsForm()
  517. {
  518. String sQry;
  519. TADOQuery *pADO = NULL;
  520. String sFormId = EdFormId->Text;
  521. String sVmsType = FVmsTypeCd;
  522. String sFormType = APP_GetCode(CbFormKind);
  523. String sName = EdFormName->Text.Trim();
  524. String sExpl = EdFormDesc->Text.Trim();
  525. String sFormColor = String(CbFormColor->ItemIndex);
  526. String sDispDir = APP_GetCode(CbFormDispDir);
  527. String sDispMode = APP_GetCode(CbFormDispMode);
  528. sQry = "MERGE INTO TB_VMS_FORM L \r\n"
  529. "USING (SELECT :p01 AS VMS_FORM_ID, \r\n"
  530. " :p02 AS VMS_TYPE_CD, \r\n"
  531. " :p03 AS VMS_FORM_TYPE_CD, \r\n"
  532. " :p04 AS VMS_FORM_NM, \r\n"
  533. " :p05 AS VMS_FORM_EXPL, \r\n"
  534. " :p06 AS VMS_FORM_BCKG_HUE_CD, \r\n"
  535. " :p07 AS VMS_MSG_DSPL_DRCT_CD, \r\n"
  536. " :p08 AS VMS_MSG_DSPL_MTHD_CD \r\n"
  537. " FROM DUAL) M \r\n"
  538. " ON (L.VMS_FORM_ID = M.VMS_FORM_ID) \r\n"
  539. "WHEN MATCHED \r\n"
  540. "THEN \r\n"
  541. " UPDATE SET L.VMS_FORM_NM = M.VMS_FORM_NM, \r\n"
  542. " L.VMS_FORM_EXPL = M.VMS_FORM_EXPL, \r\n"
  543. " L.VMS_FORM_BCKG_HUE_CD = M.VMS_FORM_BCKG_HUE_CD, \r\n"
  544. " L.VMS_MSG_DSPL_DRCT_CD = M.VMS_MSG_DSPL_DRCT_CD, \r\n"
  545. " L.VMS_MSG_DSPL_MTHD_CD = M.VMS_MSG_DSPL_MTHD_CD \r\n"
  546. "WHEN NOT MATCHED \r\n"
  547. "THEN \r\n"
  548. " INSERT (VMS_FORM_ID, \r\n"
  549. " VMS_TYPE_CD, \r\n"
  550. " VMS_FORM_TYPE_CD, \r\n"
  551. " VMS_FORM_NM, \r\n"
  552. " VMS_FORM_EXPL, \r\n"
  553. " VMS_FORM_BCKG_HUE_CD, \r\n"
  554. " VMS_MSG_DSPL_DRCT_CD, \r\n"
  555. " VMS_MSG_DSPL_MTHD_CD ) \r\n"
  556. " VALUES (M.VMS_FORM_ID, \r\n"
  557. " M.VMS_TYPE_CD, \r\n"
  558. " M.VMS_FORM_TYPE_CD, \r\n"
  559. " M.VMS_FORM_NM, \r\n"
  560. " M.VMS_FORM_EXPL, \r\n"
  561. " M.VMS_FORM_BCKG_HUE_CD, \r\n"
  562. " M.VMS_MSG_DSPL_DRCT_CD, \r\n"
  563. " M.VMS_MSG_DSPL_MTHD_CD ) \r\n";
  564. TMemoryStream *dataStream = new TMemoryStream();
  565. ImgForm->Picture->Bitmap->SaveToStream(dataStream);
  566. try
  567. {
  568. try
  569. {
  570. pADO = new TADOQuery(NULL);
  571. pADO->Close();
  572. pADO->Connection = ITSDb_GetConnection();
  573. ITSDb_SQLText(pADO, sQry);
  574. ITSDb_SQLBind(pADO, "p01", sFormId);
  575. ITSDb_SQLBind(pADO, "p02", sVmsType);
  576. ITSDb_SQLBind(pADO, "p03", sFormType);
  577. ITSDb_SQLBind(pADO, "p04", sName);
  578. ITSDb_SQLBind(pADO, "p05", sExpl);
  579. ITSDb_SQLBind(pADO, "p06", sFormColor);
  580. ITSDb_SQLBind(pADO, "p07", sDispDir);
  581. ITSDb_SQLBind(pADO, "p08", sDispMode);
  582. ITSDb_SQLExec(pADO);
  583. sQry = "UPDATE TB_VMS_FORM SET VMS_FORM_IMAG = :p02 \r\n"
  584. " WHERE VMS_FORM_ID = :p01 \r\n";
  585. ITSDb_SQLText(pADO, sQry);
  586. ITSDb_SQLBind(pADO, "p01", sFormId);
  587. if (dataStream->Size == 0)
  588. {
  589. ITSDb_SQLBind(pADO, "p01", "");
  590. }
  591. else
  592. {
  593. pADO->Parameters->ParamByName("p02")->LoadFromStream(dataStream, ftBlob);
  594. }
  595. ITSDb_SQLExec(pADO);
  596. return true;
  597. }
  598. catch(EDatabaseError &E)
  599. {
  600. DBERRORLOG("VMS Form Save", String(E.ClassName()), E.Message, sQry);
  601. throw Exception(String(E.ClassName()) + E.Message);
  602. }
  603. catch(Exception &e)
  604. {
  605. DBERRORLOG("VMS Form Save", String(e.ClassName()), e.Message, sQry);
  606. throw Exception(String(e.ClassName()) + e.Message);
  607. }
  608. }
  609. __finally
  610. {
  611. if (pADO)
  612. {
  613. pADO->Close();
  614. delete pADO;
  615. }
  616. if (dataStream) delete dataStream;
  617. dataStream = NULL;
  618. }
  619. return true;
  620. }
  621. //---------------------------------------------------------------------------
  622. bool __fastcall TVMSM500M::CheckVmsFormUse(String AFormId)
  623. {
  624. String sQry;
  625. TADOQuery *pADO = NULL;
  626. try
  627. {
  628. try
  629. {
  630. pADO = new TADOQuery(NULL);
  631. pADO->Close();
  632. pADO->Connection = ITSDb_GetConnection();
  633. #if 0
  634. sQry = "SELECT COUNT(1) AS CNT \r\n"
  635. " FROM TB_VMS_PASV_MSG_DETL \r\n"
  636. " WHERE VMS_FORM_ID = :p01 \r\n";
  637. ITSDb_SQLText(pADO, sQry);
  638. ITSDb_SQLBind(pADO, "p01", AFormId);
  639. ITSDb_SQLOpen(pADO);
  640. if (pADO->FieldByName("CNT")->AsInteger > 0)
  641. {
  642. Application->MessageBox(L"VMS 폼 사용확인\r\n삭제할 VMS 폼 정보가 VMS 고정메시지 스케쥴에 사용되고 있습니다.\r\n먼저 해당 정보를 삭제해주시기 바랍니다.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  643. return false;
  644. }
  645. #endif
  646. sQry = "SELECT COUNT(1) AS CNT \r\n"
  647. " FROM TB_VMS_TRFC_INFR_DSPL_SCH \r\n"
  648. " WHERE VMS_FORM_ID = :p01 \r\n";
  649. ITSDb_SQLText(pADO, sQry);
  650. ITSDb_SQLBind(pADO, "p01", AFormId);
  651. ITSDb_SQLOpen(pADO);
  652. if (pADO->FieldByName("CNT")->AsInteger > 0)
  653. {
  654. Application->MessageBox(MSG702, FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  655. return false;
  656. }
  657. }
  658. catch(EDatabaseError &E)
  659. {
  660. DBERRORMSG("VMS Form Use Query", String(E.ClassName()), E.Message, sQry);
  661. throw Exception(String(E.ClassName()) + E.Message);
  662. }
  663. catch(Exception &e)
  664. {
  665. DBERRORMSG("VMS Form Use Query", String(e.ClassName()), e.Message, sQry);
  666. throw Exception(String(e.ClassName()) + e.Message);
  667. }
  668. }
  669. __finally
  670. {
  671. if (pADO)
  672. {
  673. pADO->Close();
  674. delete pADO;
  675. }
  676. }
  677. return true;
  678. }
  679. //---------------------------------------------------------------------------
  680. bool __fastcall TVMSM500M::DelVmsForm(String AFormId)
  681. {
  682. String sQry;
  683. TADOQuery *pADO = NULL;
  684. int nRowHeight = 0;
  685. try
  686. {
  687. try
  688. {
  689. pADO = new TADOQuery(NULL);
  690. pADO->Close();
  691. pADO->Connection = ITSDb_GetConnection();
  692. sQry = "DELETE TB_VMS_FORM_OBJECT \r\n"
  693. " WHERE VMS_FORM_ID = :p01 \r\n";
  694. ITSDb_SQLText(pADO, sQry);
  695. ITSDb_SQLBind(pADO, "p01", AFormId);
  696. pADO->ExecSQL();
  697. sQry = "DELETE TB_VMS_FORM \r\n"
  698. " WHERE VMS_FORM_ID = :p01 \r\n";
  699. ITSDb_SQLText(pADO, sQry);
  700. ITSDb_SQLBind(pADO, "p01", AFormId);
  701. pADO->ExecSQL();
  702. return true;
  703. }
  704. catch(EDatabaseError &E)
  705. {
  706. DBERRORMSG("VMS Form Delete", String(E.ClassName()), E.Message, sQry);
  707. throw Exception(String(E.ClassName()) + E.Message);
  708. }
  709. catch(Exception &e)
  710. {
  711. DBERRORMSG("VMS Form Delete", String(e.ClassName()), e.Message, sQry);
  712. throw Exception(String(e.ClassName()) + e.Message);
  713. }
  714. }
  715. __finally
  716. {
  717. if (pADO)
  718. {
  719. pADO->Close();
  720. delete pADO;
  721. }
  722. }
  723. return true;
  724. }
  725. //---------------------------------------------------------------------------
  726. bool __fastcall TVMSM500M::GetNextVmsFormId(int &AFormId)
  727. {
  728. String sQry;
  729. TADOQuery *pADO = NULL;
  730. sQry = "SELECT NVL(MAX(VMS_FORM_ID), 9999)+1 AS NEWID FROM TB_VMS_FORM \r\n";
  731. try
  732. {
  733. try
  734. {
  735. pADO = new TADOQuery(NULL);
  736. pADO->Close();
  737. pADO->Connection = ITSDb_GetConnection();
  738. pADO->SQL->Clear();
  739. pADO->SQL->Text = sQry;
  740. pADO->Open();
  741. AFormId = pADO->FieldByName("NEWID")->AsInteger;
  742. return true;
  743. }
  744. catch(EDatabaseError &E)
  745. {
  746. DBERRORLOG("VMS Form ID Query", String(E.ClassName()), E.Message, sQry);
  747. throw Exception(String(E.ClassName()) + E.Message);
  748. }
  749. catch(Exception &e)
  750. {
  751. DBERRORLOG("VMS Form ID Query", String(e.ClassName()), e.Message, sQry);
  752. throw Exception(String(e.ClassName()) + e.Message);
  753. }
  754. }
  755. __finally
  756. {
  757. if (pADO)
  758. {
  759. pADO->Close();
  760. delete pADO;
  761. }
  762. }
  763. return false;
  764. }
  765. //---------------------------------------------------------------------------