MRF03900.xjs 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[////////////////////////////////////////////////////////////////////////////////////////////
  3. ////////////////////////////////////////////////////////////////////////////////////////////
  4. /**
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. 진료 - 이미지편집 ( SSMRF03900.xrw - JScript )
  7. * Version :
  8. - Ver.1.00.01
  9. * 개발자: 이경희
  10. * 최초작성일:
  11. - 2007/07/12
  12. * 수정이력:
  13. - 2008/03/18
  14. * 기타:
  15. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  16. */
  17. /* viewmode
  18. 0 : 원본사이즈
  19. 1 : 스크린에 꽉차게
  20. 2 : 스크린 세로사이즈에 꽉차게
  21. 3 : 스크린 가로사이즈에 꽉차게
  22. 4 : 스크린 가로/사로 사이즈에 맞춤
  23. */
  24. var gNewImgeNo = 100000;
  25. var gIntervalId;
  26. var INTERVAL_TIME = 150;
  27. var gPageInfo;
  28. var gOnlyOneImge = false;
  29. var isLoadImage = false;
  30. var arErrorCode = new HashArray();
  31. var userHomeDir = system.convertRealPath("%MYDOCUMENT%") + "KU20\\CdisImage";
  32. function cf_TRMMR03603(sSvcId, nErrorCode, sErrorMsg) {
  33. arErrorCode.push(sSvcId, nErrorCode);
  34. if(nErrorCode < 0) return;
  35. }
  36. /**
  37. * @ver : 2008-03-18
  38. * @desc : 이미지 편집기 화면 생성 시 실행되어 변수들을 초기화함.(페이지가 팝업인지 아닌지 검사하여 그에 따라 변수 설정이 다름.)
  39. * @
  40. * @by : 이경희
  41. * @param:
  42. * @return:
  43. * @---------------------------------------------------
  44. */
  45. function fFormReady()
  46. {
  47. obj_thumnail.visible = false;
  48. obj_imge.SetDrawMode(true);
  49. grd_imgelist.setFormatRowProperty(1,"size",100);
  50. if (utlf_isNull(gPageInfo))
  51. {
  52. gPageInfo = new PAGEINFO();
  53. }
  54. if (frmf_isPopup())
  55. {
  56. if (utlf_isNull(this.objects["ds_temp_modalif"]) || utlf_isNull(ds_temp_modalif.getColumn(0,"openmode")))
  57. {
  58. gPageInfo.fstLevlItemCd = oOpener.frmf_getParameter("fstlevlitemcd");
  59. gPageInfo.formCd = oOpener.frmf_getParameter("formcd");
  60. gPageInfo.formDegnSeq = oOpener.frmf_getParameter("formdegnseq");
  61. }
  62. else
  63. {
  64. if (!utlf_isNull(ds_temp_modalif.getColumn(0,"imgecd")))
  65. {
  66. var imgecd = ds_temp_modalif.getColumn(0,"imgecd");
  67. if (fRefImgeDateByImgeCd(imgecd))
  68. {
  69. fAddImgeByData(imgecd, "", ds_main_imgview2.getColumn(0,"image"));
  70. }
  71. }
  72. }
  73. }
  74. }
  75. /**
  76. * @ver : 2008-03-18
  77. * @desc : 이미지 코드로 DB에서 이미지 데이터를 얻어온다.
  78. * @
  79. * @by : 이경희
  80. * @param:
  81. * @return:
  82. * @---------------------------------------------------
  83. */
  84. function fRefImgeDateByImgeCd(imgecd)
  85. {
  86. ds_main_imgview.clearData();
  87. dsf_makeValue(ds_send, "imgecode", "string", imgecd);
  88. var oParam = {};
  89. oParam.id = "TRMMR03603";
  90. oParam.service = "medirecapp.ImgEdit";
  91. oParam.method = "reqGetImgeData";
  92. oParam.inds = "req=ds_send";
  93. oParam.outds = "ds_main_imgview=imgview";
  94. oParam.async = false;
  95. oParam.callback = "cf_TRMMR03603";
  96. tranf_submit(oParam);
  97. return (arErrorCode.pop("TRMMR03603") > -1);
  98. }
  99. /**
  100. * @ver : 2008-03-18
  101. * @desc : 부모윈도우의 lookup버튼 속성을 보이게 한다.
  102. * @
  103. * @by : 이경희
  104. * @param:
  105. * @return:
  106. * @---------------------------------------------------
  107. */
  108. function fInitFormByParent()
  109. {
  110. btn_lookup.visible = true;
  111. }
  112. /**
  113. * @ver : 2008-03-18
  114. * @desc : 화면 상단의 이미지 리스트에서 이미지를 더블클릭했을때 실행되는 이벤트 함수이다.
  115. * @
  116. * @by : 이경희
  117. * @param:
  118. * @return:
  119. * @---------------------------------------------------
  120. */
  121. function fDbClick(ecol,obj)
  122. {
  123. var imgeno = lf_getBindCellName(grd_imgelist, ecol); // 이미지 번호를 얻어온다.
  124. imgeno = imgeno.replace("imge", "");
  125. if(utlf_isNull(imgeno))
  126. {
  127. return;
  128. }
  129. var idx = ds_data_recitem.findRowExpr("degnitemno == '"+ imgeno +"'");
  130. imgeInfo = new IMGE_INFO();
  131. imgeInfo.imgeno = ds_data_recitem.getColumn(idx, "degnitemno");
  132. imgeInfo.imgecd = ds_data_recitem.getColumn(idx, "degnitemcd");
  133. imgeInfo.width = ds_data_recitem.getColumn(idx, "width");
  134. imgeInfo.height = ds_data_recitem.getColumn(idx, "height");
  135. imgeInfo.recbase64 = objExtCommon.encodeBase64(ds_data_recitem.getColumn(idx, "recimge"));
  136. if( !utlf_isNull( ds_data_recitem.getColumn(idx, "srcimge")) ){
  137. imgeInfo.srcbase64 = objExtCommon.encodeBase64(ds_data_recitem.getColumn(idx, "srcimge"));
  138. }
  139. // caption 데이터 무조건 CDATA 처리
  140. var sShape = ds_data_recitem.getColumn(idx, "reccnts");
  141. if(!utlf_isNull(sShape)){
  142. sShape = sShape.replace("&lt;", "<").replace("&gt;", ">");
  143. }
  144. imgeInfo.shape = fSetCdata(sShape);
  145. imgeInfo.imgenm = ds_data_recitem.getColumn(idx, "degnitemnm");
  146. imgeInfo.colno = ds_data_recitem.getColumn(idx, "colno");
  147. fClearImge();
  148. //2016.05.18 위치 변경
  149. gImgeInfo = imgeInfo;
  150. fSetImge(gImgeInfo);
  151. var lv_nCellCnt = obj.getCellCount("Head");
  152. for(var i=0; i<lv_nCellCnt; i++)
  153. {
  154. lv_sDpType = obj.getCellProperty("Head", i,"displaytype");
  155. if(lv_sDpType == "checkbox")
  156. {
  157. obj.setCellProperty("Head", i,"text",'expr:0');
  158. }
  159. }
  160. obj.setCellProperty("Head", ecol,"text",'expr:1');
  161. }
  162. /**
  163. * @ver : 2008-03-18
  164. * @desc : 이미지 정보를 초기화한다.
  165. * @
  166. * @by : 이경희
  167. * @param:
  168. * @return:
  169. * @---------------------------------------------------
  170. */
  171. function IMGE_INFO()
  172. {
  173. this.imgeno = "";
  174. this.imgecd = "";
  175. this.width = 0;
  176. this.height = 0;
  177. this.srcbase64 = "";
  178. this.recbase64 = "";
  179. this.shape = "";
  180. this.imgenm = "";
  181. this.filePath = "";
  182. this.degnitemlevlno = "";
  183. this.degnitemlevlcd = "";
  184. this.colno = "";
  185. this.rowno = "";
  186. }
  187. /**
  188. * @ver : 2008-03-18
  189. * @desc : 현재 보이는 이미지를 상단의 이미지 리스트에 추가한다.
  190. * @
  191. * @by : 이경희
  192. * @param: 1) imgeInfo - 이미지데이터(이미지번호, 코드, 가로/세로 사이즈, Base64코드, 이미지이름, 디자인아이템번호, 디자인아이템코드
  193. * @return:
  194. * @---------------------------------------------------
  195. */
  196. function fAddImgeList(imgeInfo)
  197. {
  198. var rowcnt = ds_data_recitem.rowcount;
  199. dsf_makeValue(ds_data_recitem, "width", "string", imgeInfo.width, rowcnt);
  200. dsf_makeValue(ds_data_recitem, "height", "string", imgeInfo.height, rowcnt);
  201. dsf_makeValue(ds_data_recitem, "instcd", "string", "", rowcnt);
  202. dsf_makeValue(ds_data_recitem, "rechistseq", "string", "", rowcnt);
  203. dsf_makeValue(ds_data_recitem, "recitemno", "string", "", rowcnt);
  204. dsf_makeValue(ds_data_recitem, "fstlevlitemcd", "string", gPageInfo.fstLevlItemCd, rowcnt);
  205. dsf_makeValue(ds_data_recitem, "formcd", "string", gPageInfo.formCd, rowcnt);
  206. dsf_makeValue(ds_data_recitem, "formdegnseq", "string", gPageInfo.formDegnSeq, rowcnt);
  207. dsf_makeValue(ds_data_recitem, "degnitemno", "string", imgeInfo.imgeno, rowcnt);
  208. dsf_makeValue(ds_data_recitem, "degnitemcd", "string", imgeInfo.imgecd, rowcnt);
  209. dsf_makeValue(ds_data_recitem, "degnitemkind", "string", "IMG", rowcnt);
  210. dsf_makeValue(ds_data_recitem, "degnitemlevlno", "string", imgeInfo.degnitemlevlno, rowcnt);
  211. dsf_makeValue(ds_data_recitem, "degnitemnm", "string", imgeInfo.imgenm, rowcnt);
  212. dsf_makeValue(ds_data_recitem, "degnitemlevlcd", "string", imgeInfo.degnitemlevlcd, rowcnt);
  213. dsf_makeValue(ds_data_recitem, "rectermcd", "string", "", rowcnt);
  214. dsf_makeValue(ds_data_recitem, "rectermnm", "string", "", rowcnt);
  215. dsf_makeValue(ds_data_recitem, "recitemcd", "string", "", rowcnt);
  216. ds_data_recitem.addColumn("reccnts", "string");
  217. ds_data_recitem.setColumn(rowcnt, "reccnts",imgeInfo.shape);
  218. if(imgeInfo.imgenm == "LOCALIMG")
  219. dsf_makeValue(ds_data_recitem, "unitnm", "string", obj_imge.GetImageSizeEx(false), rowcnt);
  220. else
  221. dsf_makeValue(ds_data_recitem, "unitnm", "string", "", rowcnt);
  222. var recbase64 = objExtCommon.decodeBase64(imgeInfo.recbase64, "BIN");
  223. ds_data_recitem.addColumn("recimge", "BLOB");
  224. ds_data_recitem.setColumn(rowcnt, "recimge", recbase64);
  225. ds_data_recitem.addColumn("srcimge", "BLOB");
  226. if( !utlf_isNull(imgeInfo.srcbase64) ){
  227. var srcbase64 = objExtCommon.decodeBase64(imgeInfo.srcbase64, "BIN");
  228. ds_data_recitem.setColumn(rowcnt, "srcimge", srcbase64);
  229. }
  230. dsf_makeValue(ds_data_recitem, "rowno", "string", imgeInfo.rowno, rowcnt);
  231. dsf_makeValue(ds_data_recitem, "colno", "string", imgeInfo.colno, rowcnt);
  232. if( utlf_isNull(imgeInfo.srcbase64) ){
  233. fAddthumnail(imgeInfo.imgeno, imgeInfo.imgenm, imgeInfo.recbase64);
  234. }else{
  235. fAddthumnail(imgeInfo.imgeno, imgeInfo.imgenm, imgeInfo.srcbase64);
  236. }
  237. }
  238. /**
  239. * @ver : 2008-03-18
  240. * @desc : fAddImgeList 함수내에서 실행되며 실질적으로 이미지를 상단의 이미지 리스트에 추가하는 기능을 수행한다.
  241. * @
  242. * @by : 이경희
  243. * @param: 1) pImgeno - 이미지번호
  244. 2) pImgenm - 이미지이름
  245. 3) pBase64 - 인코딩된 Base64 이미지 데이터
  246. * @return:
  247. * @---------------------------------------------------
  248. */
  249. function fAddthumnail(pImgeno, pImgenm, pBase64)
  250. {
  251. if (gOnlyOneImge){
  252. return;
  253. }
  254. obj_thumnail.LoadImageBase64(pBase64); // Base64로 인코딩된 이미지를 로드한다.
  255. var colnm = "imge" + pImgeno;
  256. if(ds_temp_thumblist.rowcount ==0)
  257. {
  258. ds_temp_thumblist.addRow();
  259. }
  260. var colidx = grd_imgelist.insertContentsCol("body", grd_imgelist.getFormatColCount(), false); // 1
  261. grd_imgelist.setFormatColProperty(colidx, "size", 100);
  262. grd_imgelist.setFormatRowProperty(0, "size", 20);
  263. grd_imgelist.setFormatRowProperty(1, "size", 20);
  264. grd_imgelist.setFormatRowProperty(2, "size", 80);
  265. grd_imgelist.setCellProperty("head", colidx, "displaytype", "checkbox");
  266. grd_imgelist.setCellProperty("head", colidx, "edittype", "checkbox");
  267. grd_imgelist.setCellProperty("head", colidx, "text", "expr:"+0);
  268. grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "displaytype", "text"); // 2 + 1
  269. grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "edittype", "none");
  270. grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "text", pImgenm);
  271. grd_imgelist.setCellProperty("head", grd_imgelist.getFormatColCount() + colidx, "align", "center");
  272. grd_imgelist.setCellProperty("body", colidx, "displaytype", "image");
  273. grd_imgelist.setCellProperty("body", colidx, "text", "bind:"+colnm);
  274. ds_temp_thumblist.addColumn(colnm, "blob");
  275. grd_imgelist.style.backgroundPosition = "center";
  276. grd_imgelist.style.borderStyle = "none";
  277. // 100x100 썸네일 이미지 사이즈
  278. // 썸네일 이미지와 실 크기의 이미지를 모두 저장
  279. //var Thumbase64 = obj_thumnail.GetThumbnailBase64(100, 100);
  280. var Thumbase64 = objExtCommon.decodeBase64(obj_thumnail.SaveJpegBase64(), "BIN");
  281. ds_temp_thumblist.setColumn(0,colnm,Thumbase64);
  282. var base64 = obj_thumnail.SaveImageBase64();
  283. if(ds_temp_imgelist.rowcount == 0)
  284. {
  285. ds_temp_imgelist.addRow();
  286. }
  287. dsf_makeValue(ds_temp_imgelist, colnm, "string", base64);
  288. grd_imgelist.setFocus();
  289. }
  290. /**
  291. * @ver : 2008-03-18
  292. * @desc : 상단 이미지리스트에서 이미지를 삭제한다.
  293. * @
  294. * @by : 이경희
  295. * @param:
  296. * @return:
  297. * @---------------------------------------------------
  298. */
  299. function fDelImgeList()
  300. {
  301. // 그리드에서 컬럼이 삭제되면 체크박스가 체크되었는지 확인하는 분기에서 제대로
  302. // 확인이 안되므로, 컬럼을 뒤쪽에서 삭제하도록 한다.
  303. for(var i = ds_temp_thumblist.colcount-1; i >= 0 ; i--)
  304. {
  305. if(grd_imgelist.getCellProperty("Head", i, "text")== "1")
  306. {
  307. // 이미지 인스턴스 삭제
  308. ///root/temp/thumblist/imge
  309. var imgeno = lf_getBindCellName(grd_imgelist, i);
  310. imgeno = imgeno.replace("imge", "");
  311. if (imgeno == ds_init_selectnode.getColumn(0,"imgeno"))
  312. {
  313. obj_imge.LoadImage("");
  314. dsf_makeValue(ds_init_selectnode, "imgeno", "string", "");
  315. dsf_makeValue(ds_init_selectnode, "imgenm", "string", "");
  316. }
  317. // /root/main/recinfo/recitem/ -> ds_data_recitem
  318. var filterStr = "degnitemno!='"+imgeno+"'";
  319. ds_data_recitem.filter(filterStr);
  320. dsf_copyDsList(["ds_data_temp_recitem"], ["ds_data_recitem"], "replace" ,ivw_imge, ivw_imge);
  321. ds_data_recitem.filter("");
  322. ds_data_recitem.clearData();
  323. dsf_copyDsList(["ds_data_recitem"], ["ds_data_temp_recitem"], "replace" ,ivw_imge, ivw_imge);
  324. grd_imgelist.deleteContentsCol(i);
  325. }
  326. }
  327. }
  328. function fDelImgeList_Old()
  329. {
  330. for(var i = 0; i < ds_temp_thumblist.colcount; i++)
  331. {
  332. if(false)
  333. {
  334. var imgeno = lf_getBindCellName(grd_imgelist, i);
  335. imgeno = imgeno.replace("imge", "");
  336. if (imgeno == ds_init_selectnode.getColumn(0,"imgeno"))
  337. {
  338. obj_imge.LoadImage("");
  339. ds_init_selectnode.setColumn(0, "imgeno" ,"");
  340. ds_init_selectnode.setColumn(0, "imgenm" ,"");
  341. }
  342. var filterStr = "degnitemno=='"+imgeno+"'";
  343. ds_data_recitem.filter(filterStr);
  344. dsf_copyDsList(["ds_data_temp_recitem"], ["ds_data_recitem"], "replace" ,ivw_imge, ivw_imge);
  345. ds_data_recitem.filter("");
  346. ds_data_recitem.clearData();
  347. dsf_copyDsList(["ds_data_recitem"], ["ds_data_temp_recitem"], "replace" ,ivw_imge, ivw_imge);
  348. grd_imgelist.deleteContentsCol(i);
  349. }
  350. }
  351. }
  352. /**
  353. * @ver : 2008-03-18
  354. * @desc : 상단 이미지리스트에서 이미지를 삭제한다.
  355. * @
  356. * @by : 이경희
  357. * @param:
  358. * @return:
  359. * @---------------------------------------------------
  360. */
  361. var gImgeInfo = null;
  362. var gOnImgeInfo = new IMGE_INFO();
  363. function fChgViewMode()
  364. { obj_imge.position.width = objwidth;
  365. obj_imge.position.height = objheight;
  366. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
  367. var arrSz = fGetImgeSizeEx();
  368. if(obj_imge.position.width > arrSz[0]){
  369. obj_imge.position.width = arrSz[0];
  370. }else if(obj_imge.position.width <= arrSz[0]){
  371. obj_imge.position.width = objwidth;
  372. }
  373. if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
  374. if(obj_imge.position.height > arrSz[1]){
  375. obj_imge.position.height = arrSz[1];
  376. }else if(obj_imge.position.height <= arrSz[1]){
  377. obj_imge.position.height = objheight;
  378. }
  379. }
  380. if (!utlf_isNull(gImgeInfo))
  381. {
  382. if (obj_imge.IsLoadedImage()){
  383. gImgeInfo.shape = obj_imge.GetShapeString(); // 라이브이미지에 그려진 도형정보를 반환한다.
  384. }
  385. }
  386. }
  387. /**
  388. * @ver : 2008-03-18
  389. * @desc : 라이브이미지 ActiveX 컨트롤에 로드된 이미지를 Clear한다.
  390. * @
  391. * @by : 이경희
  392. * @param:
  393. * @return:
  394. * @---------------------------------------------------
  395. */
  396. function fClearImge()
  397. {
  398. if (!utlf_isNull(ds_init_selectnode.getColumn(0, "imgeno")))
  399. {
  400. if(!utlf_isNull(gImgeInfo))
  401. {
  402. var arrSz = fGetImgeSizeEx();
  403. gImgeInfo.width = arrSz[0];
  404. gImgeInfo.height = arrSz[1];
  405. if(gImgeInfo.colno == "MAST")
  406. {
  407. var tmpShape = removeXvgTag(obj_imge.GetShapeString());
  408. if(!utlf_isNull(tmpShape))
  409. {
  410. if (gOnlyOneImge)
  411. {
  412. ds_data_recitem.clearData();
  413. gOnImgeInfo.shape = obj_imge.GetShapeString();
  414. gOnImgeInfo.recbase64 = obj_imge.SaveJpegBase64();
  415. fAddImgeList(gOnImgeInfo); // 이미지 리스트에 이미지를 추가한다.
  416. }
  417. else
  418. {
  419. var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
  420. ds_data_recitem.filter(filterStr);
  421. var recItemRefrc = ds_data_recitem.rowcount;
  422. ds_data_recitem.filter("");
  423. if (recItemRefrc == 0)
  424. {
  425. gOnImgeInfo.shape = obj_imge.GetShapeString();
  426. gOnImgeInfo.recbase64 = obj_imge.SaveJpegBase64();
  427. fAddImgeList(gOnImgeInfo);
  428. }
  429. else
  430. {
  431. var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
  432. ds_data_recitem.filter(filterStr);
  433. ds_data_recitem.setColumn(0, "reccnts", obj_imge.GetShapeString());
  434. ds_data_recitem.setColumn(0, "recimge", objExtCommon.decodeBase64(obj_imge.SaveJpegBase64(), "BIN"));
  435. ds_data_recitem.filter("");
  436. }
  437. }
  438. }
  439. }
  440. if(gImgeInfo.colno == "FILE")
  441. {
  442. if (gOnlyOneImge)
  443. {
  444. ds_data_recitem.clearData();
  445. gOnImgeInfo.shape = obj_imge.GetShapeString();
  446. gOnImgeInfo.recbase64 = obj_imge.SaveImageBase64();
  447. fAddImgeList(gOnImgeInfo); // 이미지 리스트에 이미지를 추가한다.
  448. }
  449. else
  450. {
  451. var filterStr = "degnitemno == '"+ds_init_selectnode.getColumn(0,"imgeno")+"'";
  452. ds_data_recitem.filter(filterStr);
  453. var recItemRefrc = ds_data_recitem.rowcount;
  454. ds_data_recitem.filter("");
  455. // 최초 작성시
  456. if (recItemRefrc == 0)
  457. {
  458. gOnImgeInfo.shape = obj_imge.GetShapeString();
  459. gOnImgeInfo.recbase64 = obj_imge.SaveImageBase64();
  460. fAddImgeList(gOnImgeInfo);
  461. }
  462. else
  463. {
  464. var idx = ds_data_recitem.findRowExpr("degnitemno == '"+ ds_init_selectnode.getColumn(0,"imgeno") +"'");
  465. ds_data_recitem.setColumn(idx, "unitnm", obj_imge.GetImageSizeEx(false));
  466. ds_data_recitem.setColumn(idx, "reccnts", obj_imge.GetShapeString());
  467. ds_data_recitem.setColumn(idx, "recimge", objExtCommon.decodeBase64(obj_imge.SaveImageBase64(), "BIN"));
  468. }
  469. }
  470. }
  471. }
  472. }
  473. obj_imge.Clear();
  474. isLoadImage = false;
  475. }
  476. function fLoadBase64str(imgecd, imgenm, base64str)
  477. {
  478. imgeInfo = new IMGE_INFO();
  479. imgeInfo.imgecd = imgecd;
  480. imgeInfo.imgenm = imgenm;
  481. imgeInfo.srcbase64 = base64str;
  482. imgeInfo.colno = "MAST";
  483. obj_imge.LoadImageBase64(base64str);
  484. var arrSz = fGetImgeSize();
  485. imgeInfo.width = arrSz[0];
  486. imgeInfo.height = arrSz[1];
  487. if(ds_init_selectnode.getColumn(0,"viewmode") != obj_imge.GetViewMode() )
  488. {
  489. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
  490. }
  491. obj_imge.visible = true;
  492. gImgeInfo = imgeInfo;
  493. gOnImgeInfo = imgeInfo;
  494. }
  495. /**
  496. * @ver : 2008-03-18
  497. * @desc : 라이브이미지 ActiveX 컨트롤에 로드된 이미지를 Clear한다.
  498. * @
  499. * @by : 이경희
  500. * @param:
  501. * @return:
  502. * @---------------------------------------------------
  503. */
  504. function fSetImge(imgeInfo)
  505. {
  506. try
  507. {
  508. if (utlf_isNull(imgeInfo))
  509. {
  510. imgeInfo = gImgeInfo;
  511. }
  512. if(ds_init_selectnode.rowcount==0){
  513. ds_init_selectnode.addrow();
  514. }
  515. dsf_makeValue(ds_init_selectnode, "imgeno", "string", imgeInfo.imgeno);
  516. dsf_makeValue(ds_init_selectnode, "imgenm", "string", imgeInfo.imgenm);
  517. // 뷰모드 체크
  518. var viewMode = obj_imge.GetViewMode();
  519. if(viewMode != ds_init_selectnode.getColumn(0, "viewmode"))
  520. {
  521. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
  522. }
  523. // 로컬 이미지인지 DB이미지인지 판단
  524. var localimgeYN = imgeInfo.colno;
  525. if(localimgeYN == "FILE") // 로컬 이미지
  526. {
  527. if(utlf_isNull(imgeInfo.srcbase64) && !utlf_isNull(imgeInfo.filePath))
  528. {
  529. obj_imge.LoadImage(imgeInfo.filePath);
  530. // 2016.05.18 원본이미지 저장로직 추가
  531. var bData = lf_getImgeData(imgeInfo.filePath);
  532. if( utlf_isNull(bData) ){
  533. imgeInfo.srcbase64 = "";//obj_imge.SaveImageBase64();
  534. }else{
  535. imgeInfo.srcbase64 = bData;
  536. }
  537. }
  538. else if(!utlf_isNull(imgeInfo.srcbase64))
  539. {
  540. obj_imge.LoadImageBase64(imgeInfo.srcbase64);
  541. }
  542. else if(utlf_isNull(imgeInfo.srcbase64) && !utlf_isNull(imgeInfo.recbase64)) // 원본이미지가 저장되지 않고 기록이미지만 저장된 경우
  543. {
  544. // imgeInfo.srcbase64 = imgeInfo.recbase64;
  545. // obj_imge.LoadImageBase64(imgeInfo.srcbase64);
  546. imgeInfo.srcbase64 = "";
  547. obj_imge.LoadImageBase64(imgeInfo.recbase64);
  548. }
  549. else{
  550. return;
  551. }
  552. var arrSz = fGetImgeSizeEx();
  553. imgeInfo.width = arrSz[0];
  554. imgeInfo.height = arrSz[1];
  555. //imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
  556. if(!utlf_isNull(imgeInfo.shape))
  557. {
  558. obj_imge.SetShapeString(imgeInfo.shape);
  559. }
  560. isLoadImage = true;
  561. }
  562. else if(localimgeYN = "MAST") // DB 이미지
  563. {
  564. // 이미지를 DB로부터 불러온다.
  565. if(!utlf_isNull(imgeInfo.srcbase64))
  566. {
  567. obj_imge.LoadImageBase64(imgeInfo.srcbase64);
  568. isLoadImage = true;
  569. }
  570. else
  571. {
  572. if(fRefImgeDateByImgeCd(imgeInfo.imgecd))
  573. {
  574. imgeInfo.srcbase64 = objExtCommon.encodeBase64(ds_main_imgview.getColumn(0,"imgedata"));
  575. obj_imge.LoadImageBase64(imgeInfo.srcbase64);
  576. isLoadImage = true;
  577. }
  578. }
  579. if(!utlf_isNull(imgeInfo.shape))
  580. {
  581. obj_imge.SetShapeString(imgeInfo.shape);
  582. }
  583. }
  584. if ( ds_init_selectnode.getColumn(0, "viewmode") != obj_imge.GetViewMode() )
  585. {
  586. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
  587. }
  588. obj_imge.visible = true;
  589. /////////////////////
  590. var arrSz = fGetImgeSizeEx();
  591. obj_imge.position.width = objwidth;
  592. obj_imge.position.height = objheight;
  593. if(obj_imge.position.width > arrSz[0]){
  594. obj_imge.position.width = arrSz[0];
  595. }else if(obj_imge.position.width <= arrSz[0]){
  596. obj_imge.position.width = objwidth;
  597. }
  598. if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
  599. if(obj_imge.position.height > arrSz[1]){
  600. obj_imge.position.height = arrSz[1];
  601. }else if(obj_imge.position.height <= arrSz[1]){
  602. obj_imge.position.height = objheight;
  603. }
  604. }
  605. /////////////////
  606. gImgeInfo = imgeInfo;
  607. gOnImgeInfo = imgeInfo;
  608. grd_imgelist.setFocus();
  609. }
  610. catch (e)
  611. {
  612. sysf_catchTrace(e);
  613. }
  614. }
  615. function fAddImgeByRec()
  616. {
  617. var cnt = ds_data_recitem.rowcount;
  618. if (cnt > 0)
  619. {
  620. for (var i = 0; i < cnt; i++)
  621. {
  622. var objImageData = objExtCommon.encodeBase64(ds_data_recitem.getColumn(i, "recimge"));
  623. fAddthumnail(ds_data_recitem.getColumn(i, "degnitemno"),ds_data_recitem.getColumn(i, "degnitemnm"), objImageData);
  624. }
  625. }
  626. grd_imgelist.setFocus();
  627. }
  628. /**
  629. * @ver : 2008-03-18
  630. * @desc : 라이브이미지 ActiveX 컨트롤에 이미지를 로드한다.
  631. * @
  632. * @by : 이경희
  633. * @param: 1) imgecd - 이미지코드
  634. 2) imgenm - 이미지이름
  635. 3) imgedata - 이미지데이터
  636. 4) shape - 도형정보
  637. * @return:
  638. * @---------------------------------------------------
  639. */
  640. function fAddImgeByData(imgecd, imgenm, imgedata, shape)
  641. {
  642. var imgeInfo = new IMGE_INFO();
  643. imgeInfo.imgeno = ++gNewImgeNo;
  644. imgeInfo.imgecd = imgecd;
  645. imgeInfo.imgenm = imgenm;
  646. imgeInfo.srcbase64 = imgedata;
  647. //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
  648. imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
  649. imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
  650. imgeInfo.rowno = "NUIMG";
  651. imgeInfo.colno = "MAST";
  652. if (!utlf_isNull(shape))
  653. {
  654. imgeInfo.shape = shape;
  655. }
  656. fClearImge(); // 화면을 Clear한다.
  657. fSetImge(imgeInfo); // 이미지를 로드한다.
  658. }
  659. /**
  660. * @ver : 2008-03-18
  661. * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
  662. * @
  663. * @by : 이경희
  664. * @param:
  665. * @return:
  666. * @---------------------------------------------------
  667. */
  668. function fAddImgeByFile(filepath)
  669. {
  670. var bMulti = false;
  671. if(ds_temp.getColumn(0, "directstatus") == "direct"){
  672. bMulti = true;
  673. }
  674. //이윤주 수정(20150202) ==> 2048000 ==> 4M로 ==> 10M로 변경(이택후 교수님 요청:20200107)
  675. //var selfile = frmf_openImageFileDialog(4194304);
  676. var selfile = frmf_openImageFileDialog(10485760);
  677. if (utlf_isNull(selfile)){
  678. return;
  679. }
  680. var arrfile = selfile;
  681. for(var i = 0; i < selfile.length; i++)
  682. {
  683. var filepath = selfile[i].fullpath;
  684. imgeInfo = new IMGE_INFO();
  685. imgeInfo.imgeno = ++gNewImgeNo;
  686. imgeInfo.imgecd = "Z000000001";
  687. imgeInfo.imgenm = "LOCALIMG";
  688. imgeInfo.srcbase64 = "";
  689. imgeInfo.recbase64 = "";
  690. imgeInfo.shape = "";
  691. imgeInfo.filePath = filepath;
  692. //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
  693. imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
  694. imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
  695. imgeInfo.rowno = "NUIMG";
  696. imgeInfo.colno = "FILE";
  697. if(bMulti)
  698. {
  699. obj_thumnail.LoadImage(filepath);
  700. imgeInfo.shape = "";
  701. var viewMode = obj_imge.GetViewMode();
  702. if(viewMode != ds_init_selectnode.getColumn(0, "viewmode"))
  703. {
  704. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0, "viewmode")));
  705. }
  706. var livectrl = "obj_imge";
  707. if(!utlf_isNull(livectrl))
  708. {
  709. livectrl.visible = false;
  710. }
  711. obj_imge.LoadImage(imgeInfo.filePath);
  712. var arrSz = fGetImgeSizeEx();
  713. imgeInfo.width = arrSz[0];
  714. imgeInfo.height = arrSz[1];
  715. var bData = lf_getImgeData(imgeInfo.filePath);
  716. imgeInfo.srcbase64 = bData;
  717. imgeInfo.recbase64 = obj_imge.SaveImageBase64();
  718. imgeInfo.shape = obj_imge.GetShapeString();
  719. if(!utlf_isNull(livectrl))
  720. {
  721. obj_imge.Clear();
  722. livectrl.visible = true;
  723. }
  724. fAddImgeList(imgeInfo);
  725. //////////////////////////////
  726. obj_imge.position.width = objwidth;
  727. obj_imge.position.height = objheight;
  728. if(obj_imge.position.width > arrSz[0]){
  729. obj_imge.position.width = arrSz[0];
  730. }else if(obj_imge.position.width <= arrSz[0]){
  731. obj_imge.position.width = objwidth;
  732. }
  733. if(parseInt(ds_init_selectnode.getColumn(0, "viewmode")) != 2){
  734. if(obj_imge.position.height > arrSz[1]){
  735. obj_imge.position.height = arrSz[1];
  736. }else if(obj_imge.position.height <= arrSz[1]){
  737. obj_imge.position.height = objheight;
  738. }
  739. }
  740. ///////////////////////
  741. grd_imgelist.setFocus();
  742. }
  743. else
  744. {
  745. fClearImge();
  746. fSetImge(imgeInfo);
  747. }
  748. }
  749. }
  750. /**
  751. * @ver : 2008-03-18
  752. * @desc : 이미지 사이즈를 반환한다.
  753. * @
  754. * @by : 이경희
  755. * @param:
  756. * @return:
  757. * @---------------------------------------------------
  758. */
  759. function fGetImgeSize()
  760. {
  761. var sz = obj_imge.GetImageSize();
  762. var arrSz = sz.split("|");
  763. return arrSz;
  764. }
  765. /**
  766. * @ver : 2008-03-18
  767. * @desc : ActiveX 컨트롤 크기에 맞춰진 이미지 사이즈를 반환한다.
  768. * @
  769. * @by : 이경희
  770. * @param:
  771. * @return:
  772. * @---------------------------------------------------
  773. */
  774. function fGetImgeSizeEx()
  775. {
  776. var sz = obj_imge.GetImageSizeEx(false);
  777. var arrSz = sz.split("|");
  778. return arrSz;
  779. }
  780. /**
  781. * @ver : 2008-03-18
  782. * @desc : 색상을 입히기 위해 팔레트를 클릭했을때 발생하는 함수
  783. * @
  784. * @by : 이경희
  785. * @param:
  786. * @return:
  787. * @---------------------------------------------------
  788. */
  789. function fColorClicked(bDetail)
  790. {
  791. if(utlf_isNull(bDetail)){
  792. bDetail = false;
  793. }
  794. var color;
  795. if(bDetail){
  796. color = obj_imge.GetRGBColorDlg();
  797. if(utlf_isNull(color)){
  798. return ;
  799. }
  800. }else{
  801. color = new String(objForm.style.background.color);
  802. if(color.length>7){
  803. color = color.substr(0, color.length-2);
  804. }
  805. }
  806. var clickbtn = grup_bottom.colorpicker.mode;
  807. if(color == "transparent")
  808. {
  809. color = "";
  810. }
  811. if(clickbtn == "btn_bgcolor") // 배경색
  812. {
  813. obj_imge.SetShapeStyle("background-color", color);
  814. // 마지막으로 선택한 배경색을 인스턴스에 저장해둠.
  815. dsf_makeValue(ds_temp2, "lastBackgroundColor", "string", color);
  816. }
  817. else if(clickbtn == "btn_fontcolor" || clickbtn == "btn_text") // 텍스트
  818. {
  819. obj_imge.SetShapeStyle("color", color);
  820. dsf_makeValue(ds_temp2, "lastFontColor", "string", color);
  821. }else if(clickbtn == "btn_linecolor" || clickbtn == "btn_line" || clickbtn == "btn_freeline" || clickbtn == "btn_rect" || clickbtn == "btn_round" || clickbtn == "btn_point") // 선색
  822. {
  823. obj_imge.SetShapeStyle("border-color", color);
  824. obj_imge.SetShapeStyle("color", color);
  825. if(ds_temp2.rowcount == 0)
  826. {
  827. ds_temp2.addRow();
  828. }
  829. dsf_makeValue(ds_temp2, "lastLineColor", "string", color);
  830. }
  831. grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
  832. //grup_bottom.colorpicker.C_SEL.style.background.color = color;
  833. }
  834. /**
  835. * @ver : 2008-03-18
  836. * @desc : 저장을 클릭했을 때 실행되는 함수
  837. * @
  838. * @by : 이경희
  839. * @param:
  840. * @return:
  841. * @---------------------------------------------------
  842. */
  843. function fConfirm()
  844. {
  845. if(!utlf_isNull(gImgeInfo))
  846. {
  847. if(gImgeInfo.colno == "FILE")
  848. {
  849. var strShape = obj_imge.GetShapeString();
  850. gImgeInfo.shape = strShape;
  851. }
  852. }
  853. obj_imge.SelectDrawType(0, true);
  854. fClearImge();
  855. fClearFile();
  856. if(!utlf_isNull(gImgeInfo))
  857. {
  858. if(gImgeInfo.colno == "MAST")
  859. {
  860. // DB에서 불러온 이미지므로 원본이미지 Base64코드는 삭제한다.
  861. gImgeInfo.srcbase64 = "";
  862. }
  863. }
  864. parent.fConfirm(gPageInfo.fstLevlItemCd);
  865. }
  866. /**
  867. * @ver : 2008-03-18
  868. * @desc : 팔레트를 보여주는 함수
  869. * @
  870. * @by : 이경희
  871. * @param:
  872. * @return:
  873. * @---------------------------------------------------
  874. */
  875. function fShowPltte(btnid)
  876. {
  877. if(btnid == "btn_text" || btnid == "btn_fontcolor")
  878. {
  879. grup_bottom.colorpicker.cap_colorpicker.text = "글자색";
  880. var color = "#000000";
  881. var lastFontColor = ds_temp2.getColumn(0, "lastFontColor");
  882. // 기본 글자색 설정
  883. if(!utlf_isNull(lastFontColor)){
  884. color = lastFontColor;
  885. }
  886. ds_init_selectnode.setColumn(0, "fontcolor", color);
  887. obj_imge.SetShapeStyle("color", color);
  888. grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
  889. grup_bottom.colorpicker.combo_fontName.enable = true;
  890. grup_bottom.colorpicker.combo_fontSize.enable = true;
  891. grup_bottom.colorpicker.img_font_style.enable = true;
  892. grup_bottom.colorpicker.img_font_weight.enable = true;
  893. grup_bottom.colorpicker.img_font_weight.style.backgroundImage = "../../../IMAGES/emr/MR/icon_13_select.png";
  894. grup_bottom.colorpicker.img_font_weight.style.font.type ="bold";
  895. }else if(btnid == "btn_linecolor" || btnid == "btn_line" || btnid == "btn_freeline" || btnid == "btn_rect" || btnid == "btn_round" || btnid == "btn_point")
  896. {
  897. grup_bottom.colorpicker.cap_colorpicker.text = "선색";
  898. var color = "#ff0000";
  899. var lastLineColor = ds_temp2.getColumn(0,"lastLineColor");
  900. // 기본 선색 설정
  901. if(!utlf_isNull(lastLineColor)){
  902. color = lastLineColor;
  903. }
  904. if(ds_init_selectnode.rowcount == 0)
  905. {
  906. ds_init_selectnode.addRow();
  907. }
  908. ds_init_selectnode.setColumn(0, "linecolor", color);
  909. obj_imge.SetShapeStyle("border-color", color);
  910. obj_imge.SetShapeStyle("color", color);
  911. grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
  912. // 기본 배경색 설정
  913. if(btnid != "btn_linecolor"){
  914. obj_imge.SetShapeStyle("background-color", "");
  915. }
  916. grup_bottom.colorpicker.combo_fontName.enable = false;
  917. grup_bottom.colorpicker.combo_fontSize.enable = false;
  918. grup_bottom.colorpicker.img_font_weight.enable = false;
  919. grup_bottom.colorpicker.img_font_style.enable = false;
  920. }else if(btnid == "btn_bgcolor")
  921. {
  922. grup_bottom.colorpicker.cap_colorpicker.text = "배경색";
  923. var color = "";
  924. var lastBgColor = ds_temp2.getColumn(0,"lastBackgroundColor");
  925. // 기본 배경색 설정
  926. if(!utlf_isNull(lastBgColor)){
  927. color = lastBgColor;
  928. }
  929. obj_imge.SetShapeStyle("background-color", "");
  930. if(utlf_isNull(color))
  931. grup_bottom.colorpicker.C_SEL.style.backgroundColor = "#ffffff";
  932. else
  933. grup_bottom.colorpicker.C_SEL.style.backgroundColor = color;
  934. }else if(btnid == "btn_select" || btnid == "btn_del" || btnid == "btn_drawcancel" || btnid == "btn_turnleft" || btnid == "btn_turnright" || btnid == "btn_undo" || btnid == "btn_redo")
  935. {
  936. grup_bottom.colorpicker.visible = false;
  937. grup_bottom.colorpicker.mode = btnid;
  938. return;
  939. }
  940. if(utlf_isNull(grup_bottom.colorpicker.mode) || grup_bottom.colorpicker.mode != btnid)
  941. {
  942. grup_bottom.colorpicker.visible = true;
  943. }
  944. else if(grup_bottom.colorpicker.mode == btnid)
  945. {
  946. if (grup_bottom.colorpicker.visible)
  947. {
  948. grup_bottom.colorpicker.visible = true;
  949. }
  950. else
  951. {
  952. grup_bottom.colorpicker.visible = true;
  953. }
  954. }
  955. grup_bottom.colorpicker.mode = btnid;
  956. }
  957. /**
  958. * @ver : 2008-03-18
  959. * @desc : 여러 이미지를 하나의 이미지로 합쳐 로드한다.
  960. * @
  961. * @by : 이경희
  962. * @param:
  963. * @return:
  964. * @---------------------------------------------------
  965. */
  966. function fMergeImge()
  967. {
  968. var cnt = 0;
  969. for(var col = 1; col < ds_temp_thumblist.colcount; col++)
  970. {
  971. if(grd_imgelist.getCellProperty("Head", col, "text")== "1")
  972. {
  973. cnt++;
  974. }
  975. }
  976. if(isLoadImage == true)
  977. {
  978. if(cnt == 0)
  979. {
  980. sysf_messageBox("선택된 이미지가 최소 2개 이상인지 " ,"I007");
  981. checkbox1.value = false;
  982. return;
  983. }
  984. }
  985. else
  986. {
  987. if(cnt < 2)
  988. {
  989. sysf_messageBox("선택된 이미지가 최소 2개 이상인지 " ,"I007");
  990. checkbox1.value = false;
  991. return;
  992. }
  993. }
  994. if(!obj_imge.SetCanvas())
  995. {
  996. if(ds_temp.rowcount == 0){
  997. ds_temp.addRow();
  998. }
  999. ds_temp.setColumn(0, "mergestatus", "cancel");
  1000. return;
  1001. }
  1002. for(var i = 1; i < ds_temp_thumblist.colcount; i++)
  1003. {
  1004. if(grd_imgelist.getCellProperty("Head", i, "text") == "1")
  1005. {
  1006. var AttriName = grd_imgelist.binddataset;
  1007. var nodeName = AttriName.replace("thumblist", "imgelist");
  1008. var degnitemno = lf_getBindCellName(grd_imgelist, i);
  1009. degnitemno = degnitemno.replace("imge", "");
  1010. var imgeData = objExtCommon.encodeBase64(ds_data_recitem.lookup("degnitemno", degnitemno, "recimge"));
  1011. if(ds_data_recitem.rowcount ==0){
  1012. ds_data_recitem.addRow();
  1013. }
  1014. if(!utlf_isNull(imgeData))
  1015. {
  1016. obj_imge.AddImageToCanvas(imgeData);
  1017. }
  1018. }
  1019. }
  1020. obj_imge.LoadCanvas(); // 합쳐진 이미지를 로드한다
  1021. obj_imge.position.height = objheight;
  1022. obj_imge.position.width = objheight;
  1023. cmb_viewmode.enable = false;
  1024. if(ds_temp.rowcount == 0){
  1025. ds_temp.addRow();
  1026. }
  1027. ds_temp.setColumn(0, "mergestatus", "merge");
  1028. }
  1029. /**
  1030. * @ver : 2008-08-01
  1031. * @desc : 이미지 합친 상태를 취소
  1032. * @
  1033. * @by : 이경희
  1034. * @param:
  1035. * @return:
  1036. * @---------------------------------------------------
  1037. */
  1038. function fCancelMergeImage()
  1039. {
  1040. if(ds_temp.getColumn(0, "mergestatus") == "merge")
  1041. {
  1042. obj_imge.RestoreStatus();
  1043. var arrSz = fGetImgeSizeEx();
  1044. if(obj_imge.position.width > arrSz[0]){
  1045. obj_imge.position.width = arrSz[0];
  1046. }else if(obj_imge.position.width <= arrSz[0]){
  1047. obj_imge.position.width = objwidth;
  1048. }
  1049. if(obj_imge.position.height > arrSz[1]){
  1050. obj_imge.position.height = arrSz[1];
  1051. }else if(obj_imge.position.height <= arrSz[1]){
  1052. obj_imge.position.height = objheight;
  1053. }
  1054. cmb_viewmode.enable = true;
  1055. if(ds_temp.rowcount ==0){
  1056. ds_temp.addRow();
  1057. }
  1058. ds_temp.setColumn(0, "mergestatus", "");
  1059. return;
  1060. }
  1061. }
  1062. /**
  1063. * @ver : 2008-03-18
  1064. * @desc : 상단 이미지 리스트에서 이미지를 선택했을때 발생하는 이벤트 함수
  1065. * @
  1066. * @by : 이경희
  1067. * @param:
  1068. * @return:
  1069. * @---------------------------------------------------
  1070. */
  1071. function fSelectImge(col)
  1072. {
  1073. col = col;
  1074. if(ds_temp_thumblist.rowcount == 0)
  1075. {
  1076. if(grd_imgelist.getCellProperty("head", col, "text") == '0')
  1077. grd_imgelist.setCellProperty("head", col, "text", "1");
  1078. else
  1079. grd_imgelist.setCellProperty("head", col, "text", "0");
  1080. }
  1081. else
  1082. {
  1083. var head_text = grd_imgelist.getCellProperty("head", col, "text");
  1084. if(head_text == "expr:0" || head_text == "0"){
  1085. grd_imgelist.setCellProperty("head", col, "text", "1");
  1086. }else{
  1087. grd_imgelist.setCellProperty("head", col, "text", "0");
  1088. }
  1089. }
  1090. grd_imgelist.setFocus();
  1091. }
  1092. /**
  1093. * @desc : 메타데이터에서 caption을 CDATA로 감싼다.
  1094. * @id :
  1095. * @event :
  1096. * @return :
  1097. * @authur : 이경희
  1098. */
  1099. function fSetCdata(metadata)
  1100. {
  1101. var strMeta = metadata;
  1102. // 1. CDATA로 감싸져 있는지 확인.
  1103. if(utlf_isSearchString(strMeta, "CDATA") == false)
  1104. {
  1105. var strStCaptionOld = "";
  1106. var strEdCaptionOld = "";
  1107. var strStCaptionNew = "";
  1108. var strEdCaptionNew = "";
  1109. // 배열로 반환
  1110. strStCaptionOld = fGetXvgStCaption(strMeta);
  1111. strEdCaptionOld = fGetXvgEdCaption(strMeta);
  1112. // for문으로 반복
  1113. for(var idx = 0; idx < strStCaptionOld.length; idx++)
  1114. {
  1115. if(idx == 0)
  1116. {
  1117. // 모든 </caption> 을 ]]]]><![CDATA[></caption> 으로 변경
  1118. strEdCaptionNew = "]]]]><![CDATA[>" + strEdCaptionOld[idx];
  1119. strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew);
  1120. }
  1121. strStCaptionNew = strStCaptionOld[idx] + "<![CDATA[";
  1122. strMeta = strMeta.setReplaceWord(strStCaptionOld[idx], strStCaptionNew);
  1123. }
  1124. }
  1125. return strMeta;
  1126. }
  1127. /**
  1128. * @desc : 메타데이터에서 caption의 시작 태그를 반환한다.
  1129. * @id :
  1130. * @event :
  1131. * @return :
  1132. * @authur : 이경희
  1133. */
  1134. function fGetXvgStCaption(metadata)
  1135. {
  1136. var strMeta = metadata;
  1137. var getStCaption = new Array();
  1138. var grpexpSt = new RegExp('(<caption[^<>]+>)', 'igm');
  1139. if(grpexpSt.test(strMeta) == true)
  1140. {
  1141. getStCaption = strMeta.match(grpexpSt);
  1142. strMeta = strMeta.replace(grpexpSt, "");
  1143. }
  1144. if(getStCaption.length > 0)
  1145. return getStCaption;
  1146. else
  1147. return "";
  1148. }
  1149. /**
  1150. * @desc : 메타데이터에서 caption의 종료 태그를 반환한다.
  1151. * @id :
  1152. * @event :
  1153. * @return :
  1154. * @authur : 이경희
  1155. */
  1156. function fGetXvgEdCaption(metadata)
  1157. {
  1158. var strMeta = metadata;
  1159. var getEdCaption = new Array();
  1160. var grpexpEd = new RegExp('(</caption>)', 'igm');
  1161. if (grpexpEd.test(strMeta) == true)
  1162. {
  1163. getEdCaption = strMeta.match(grpexpEd);
  1164. strMeta = strMeta.replace(grpexpEd, "");
  1165. }
  1166. if(getEdCaption.length > 0)
  1167. return getEdCaption;
  1168. else
  1169. return "";
  1170. }
  1171. /**
  1172. * @ver : 2009-06-12 오후 9:16:34
  1173. * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
  1174. * @
  1175. * @by : 강지훈
  1176. * @param:
  1177. * @return:
  1178. * @---------------------------------------------------
  1179. */
  1180. function fAddFixImgeByFile() //CDIS 이미지 연동
  1181. {
  1182. try{
  1183. //저장되어있는 파일형식 : 저장일_저장시간_환자번호_파일명
  1184. var filepath = "C:\\CdisImage";
  1185. var objFileAttribute = VirtualFile.getFileList("C:\\CdisImage", "*");
  1186. var cnt = objFileAttribute.length;
  1187. var s = "";
  1188. var selfile = "";
  1189. //var objExtCommon = new ExtCommon();
  1190. if(cnt > 0){
  1191. if(ds_hidden.rowcount == 0){
  1192. ds_hidden.addRow();
  1193. }
  1194. ds_hidden.setColumn(0, "updateflag", "Y");
  1195. var vfile = new VirtualFile;
  1196. for (var i = 0; i< cnt; i++)
  1197. {
  1198. //var rtn = vfile.open(filepath + objFileAttribute[i].filename, VirtualFile.openAppend);
  1199. // if(rtn == false) trace(objFileAttribute[i].filename + ":" + rtn);
  1200. // if(objFileAttribute[i].isReadOnly()) trace("####### " + objFileAttribute[i].filename + ":" + rtn);
  1201. //vfile.close();
  1202. // for( var a in objFileAttribute[i] ){
  1203. // trace( a + " >>> " + objFileAttribute[i][a]);
  1204. // }
  1205. var selfileName = objFileAttribute[i].filename;
  1206. var fstIndex = selfileName.indexOf("_");
  1207. var scnIndex = selfileName.indexOf("_", fstIndex+1);
  1208. var trdIndex = selfileName.indexOf("_", scnIndex+1);
  1209. var selDate = selfileName.substr(0, fstIndex); //파일이 저장된 날짜를 가져온다.
  1210. var selPid = selfileName.substring(scnIndex + 1, trdIndex); //파일이 저장된 날짜를 가져온다.
  1211. var curDate = utlf_getCurrentDate();
  1212. var curPid = appf_getPatientId();
  1213. if(selDate == curDate){
  1214. if(selPid == curPid){
  1215. selfile += filepath + "\\" + objFileAttribute[i].filename;
  1216. selfile += "|";
  1217. var sFilePath = filepath + "\\" + objFileAttribute[i].filename;
  1218. var bData = lf_getImgeData(sFilePath);
  1219. imgeInfo = new IMGE_INFO();
  1220. imgeInfo.imgeno = ++gNewImgeNo;
  1221. imgeInfo.imgecd = "Z000000001";
  1222. imgeInfo.imgenm = "LOCALIMG";
  1223. imgeInfo.srcbase64 = "";
  1224. imgeInfo.recbase64 = "";
  1225. imgeInfo.shape = "";
  1226. imgeInfo.filePath = sFilePath;
  1227. //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
  1228. imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
  1229. imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
  1230. imgeInfo.rowno = "NUIMG";
  1231. imgeInfo.colno = "FILE";
  1232. obj_thumnail.LoadImage(sFilePath);
  1233. imgeInfo.shape = "";
  1234. var viewMode = obj_imge.GetViewMode();
  1235. if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
  1236. {
  1237. obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
  1238. }
  1239. obj_imge.visible = false;
  1240. obj_imge.LoadImage(imgeInfo.filePath);
  1241. var arrSz = fGetImgeSizeEx();
  1242. imgeInfo.width = arrSz[0];
  1243. imgeInfo.height = arrSz[1];
  1244. imgeInfo.srcbase64 = bData;
  1245. imgeInfo.recbase64 = obj_imge.SaveImageBase64();
  1246. imgeInfo.shape = obj_imge.GetShapeString();
  1247. obj_imge.Clear();
  1248. obj_imge.visible = true;
  1249. fAddImgeList(imgeInfo);
  1250. }
  1251. }
  1252. }
  1253. selfile = selfile.substring(0, selfile.lastIndexOf("|"));
  1254. if(selfile.length > 0){
  1255. var arrfile = selfile.split("|");
  1256. // for(var i = 0; i < arrfile.length; i++)
  1257. // {
  1258. // var filepath = arrfile[i];
  1259. //
  1260. //
  1261. // imgeInfo = new IMGE_INFO();
  1262. // imgeInfo.imgeno = ++gNewImgeNo;
  1263. // imgeInfo.imgecd = "Z000000001";
  1264. // imgeInfo.imgenm = "LOCALIMG";
  1265. // imgeInfo.srcbase64 = "";
  1266. // imgeInfo.recbase64 = "";
  1267. // imgeInfo.shape = "";
  1268. // imgeInfo.filePath = filepath;
  1269. //
  1270. // imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
  1271. // imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
  1272. // imgeInfo.rowno = "NUIMG";
  1273. // imgeInfo.colno = "FILE";
  1274. //
  1275. // obj_thumnail.LoadImage(filepath);
  1276. // imgeInfo.shape = "";
  1277. //
  1278. // var viewMode = obj_imge.GetViewMode();
  1279. //
  1280. // if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
  1281. // {
  1282. // obj_imge.SetViewMode(parseInt(ds_init_selectnode.getColumn(0,"viewmode")));
  1283. // }
  1284. //
  1285. // obj_imge.visible = false;
  1286. //
  1287. // obj_imge.LoadImage(imgeInfo.filePath);
  1288. //
  1289. // var arrSz = fGetImgeSizeEx();
  1290. //
  1291. // imgeInfo.width = arrSz[0];
  1292. // imgeInfo.height = arrSz[1];
  1293. //
  1294. // imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
  1295. // imgeInfo.recbase64 = imgeInfo.srcbase64;
  1296. // imgeInfo.shape = obj_imge.GetShapeString();
  1297. //
  1298. // obj_imge.Clear();
  1299. // obj_imge.visible = true;
  1300. //
  1301. // fAddImgeList(imgeInfo);
  1302. // }
  1303. }
  1304. else{
  1305. sysf_messageBox("금일 등록된 이미지가 " ,"I004");
  1306. }
  1307. }
  1308. else{
  1309. sysf_messageBox("금일 등록된 이미지가 " ,"I004");
  1310. }
  1311. }
  1312. catch(e){
  1313. sysf_catchTrace(e);
  1314. }
  1315. }
  1316. /**
  1317. * @ver : 2009-06-12 오후 9:16:34
  1318. * @desc : 라이브이미지 ActiveX 컨트롤에 이미지 파일을 불러들인다.
  1319. * @
  1320. * @by : 강지훈
  1321. * @param:
  1322. * @return:
  1323. * @---------------------------------------------------
  1324. */
  1325. function fClearFile(){
  1326. //저장되어있는 파일형식 : 저장일_저장시간_환자번호_파일명
  1327. try{
  1328. var filepath = "C:\\CdisImage";
  1329. var objFileAttribute = VirtualFile.getFileList("C:\\CdisImage", "*");
  1330. var cnt = objFileAttribute.length;
  1331. var selfile = "";
  1332. if(cnt > 0){
  1333. for (var i = 0; i< cnt; i++)
  1334. {
  1335. var selfileName = objFileAttribute[i].filename;
  1336. var fstIndex = selfileName.indexOf("_");
  1337. var scnIndex = selfileName.indexOf("_", fstIndex+1);
  1338. var trdIndex = selfileName.indexOf("_", scnIndex+1);
  1339. var selDate = selfileName.substr(0, fstIndex); //파일이 저장된 날짜를 가져온다.
  1340. var selPid = selfileName.substring(scnIndex + 1, trdIndex); //파일이 저장된 날짜를 가져온다.
  1341. var curDate = utlf_getCurrentDate();
  1342. var curPid = appf_getPatientId();
  1343. //1. 과거날짜에 저장된 파일은 모두 지운다. 2. 현재날짜에 업로드된 파일또한 모두 지운다.
  1344. if(selPid == curPid){
  1345. if(selDate < curDate){
  1346. objExtCommon.DeleteFile(filepath + "\\" + objFileAttribute[i].filename);
  1347. }else if(selDate == curDate){
  1348. var updateflag = ds_hidden.getColumn(0, "updateflag");
  1349. if(updateflag == "Y"){
  1350. objExtCommon.DeleteFile(filepath + "\\" + objFileAttribute[i].filename);
  1351. }
  1352. }
  1353. }//if
  1354. }//for
  1355. }//if
  1356. }
  1357. catch(e){
  1358. sysf_catchTrace(e);
  1359. }
  1360. }
  1361. /**
  1362. * @ver :
  1363. * @desc : 클립보드상의 이미지를 로딩한다
  1364. * @
  1365. * @by : 박종훈
  1366. * @param:
  1367. * @return:
  1368. * @---------------------------------------------------
  1369. */
  1370. function fClipBoardImgLoad()
  1371. {
  1372. var bMulti = false;
  1373. if(ds_temp.getColumn(0,"directstatus")== "direct")
  1374. bMulti = true;
  1375. var clipbase64 = obj_imge.GetClipboardImage();
  1376. if (utlf_isNull(clipbase64))
  1377. {
  1378. return;
  1379. }
  1380. var selfile = obj_imge.GetClipboardImageFile();
  1381. var clipf = fso.GetFile(selfile);
  1382. var clipSize = clipf.size;
  1383. if (clipSize > 2048000)
  1384. {
  1385. sysf_messageBox("허용용량(2MB)을" ,"E003");
  1386. return;
  1387. }
  1388. if (utlf_isNull(selfile))
  1389. return;
  1390. var arrfile = selfile.split("|");
  1391. for(var i = 0; i < arrfile.length; i++)
  1392. {
  1393. var filepath = arrfile[i];
  1394. imgeInfo = new IMGE_INFO();
  1395. imgeInfo.imgeno = ++gNewImgeNo;
  1396. imgeInfo.imgecd = "Z000000001";
  1397. imgeInfo.imgenm = "LOCALIMG";
  1398. imgeInfo.srcbase64 = "";
  1399. imgeInfo.recbase64 = "";
  1400. imgeInfo.shape = "";
  1401. imgeInfo.filePath = filepath;
  1402. //imgeInfo.degnitemlevlcd = gPageInfo.degnItemLevlCd +"."+ imgeInfo.imgecd;
  1403. imgeInfo.degnitemlevlcd = imgeInfo.imgecd;
  1404. imgeInfo.degnitemlevlno = parseInt(gPageInfo.degnitemlevlno) + 1;
  1405. imgeInfo.rowno = "NUIMG";
  1406. imgeInfo.colno = "FILE";
  1407. if(bMulti)
  1408. {
  1409. obj_thumnail.LoadImage(filepath);
  1410. imgeInfo.shape = "";
  1411. var viewMode = obj_imge.GetViewMode();
  1412. if(viewMode != ds_init_selectnode.getColumn(0,"viewmode"))
  1413. {
  1414. obj_imge.SetViewMode(ds_init_selectnode.getColumn(0,"viewmode"));
  1415. }
  1416. obj_imge.visible = false;
  1417. obj_imge.LoadImage(imgeInfo.filePath);
  1418. var arrSz = fGetImgeSizeEx();
  1419. imgeInfo.width = arrSz[0];
  1420. imgeInfo.height = arrSz[1];
  1421. imgeInfo.srcbase64 = obj_imge.SaveImageBase64();
  1422. imgeInfo.recbase64 = imgeInfo.srcbase64;
  1423. imgeInfo.shape = obj_imge.GetShapeString();
  1424. obj_imge.Clear();
  1425. obj_imge.visible = true;
  1426. fAddImgeList(imgeInfo);
  1427. }
  1428. else
  1429. {
  1430. fClearImge();
  1431. fSetImge(imgeInfo);
  1432. }
  1433. }
  1434. }
  1435. function setGridCheckAll(obj:Grid, e:GridClickEventInfo)
  1436. {
  1437. var strType;
  1438. var vl_chk;
  1439. var strVal;
  1440. var strChkVal;
  1441. var objDS;
  1442. var nCell = e.cell;
  1443. var nSubCnt = obj.getSubCellCount("head",nCell);
  1444. var nSubCnt2 = 0;
  1445. var nSubCntTot = 0;
  1446. for(var i=0; i< nCell; i++){
  1447. nSubCnt2 = obj.getSubCellCount("head",i);
  1448. nSubCntTot += nSubCnt2;
  1449. }
  1450. objDS = eval(obj.binddataset);
  1451. if (nSubCnt > 0) { // Case Merge Cell
  1452. var nChkIdx = -1;
  1453. for ( var i = 0; i < nSubCnt; i++)
  1454. {
  1455. strType = obj.getSubCellProperty("head",e.cell,i,"displaytype");
  1456. if(strType == "checkbox") {
  1457. nChkIdx = i;
  1458. break;
  1459. }
  1460. }
  1461. if (nChkIdx == -1)
  1462. return;
  1463. // Head setting
  1464. strVal = obj.getSubCellProperty("head", nCell, nChkIdx, "text");
  1465. if (strVal == "0" || utlf_isNull(strVal)) {
  1466. obj.setSubCellProperty("head",nCell,nChkIdx,"text", '1');
  1467. vl_chk="1";
  1468. } else {
  1469. obj.setSubCellProperty("head",nCell,nChkIdx,"text", '0');
  1470. vl_chk="0";
  1471. }
  1472. } else { // Case not merge
  1473. strType = obj.getCellProperty("head", e.cell, "displaytype");
  1474. if(strType != "checkbox") {
  1475. return;
  1476. }
  1477. // Head setting
  1478. strVal = obj.getCellProperty("head", nCell, "text");
  1479. try{
  1480. strVal = strVal.replace("expr:","");
  1481. }catch(e){};
  1482. if (strVal == "0" || utlf_isNull(strVal)) {
  1483. obj.setCellProperty("head", nCell, "text", '1');
  1484. vl_chk="1";
  1485. } else {
  1486. obj.setCellProperty("head", nCell, "text", '0');
  1487. vl_chk="0";
  1488. }
  1489. }
  1490. }
  1491. function setAllCheck(obj)
  1492. {
  1493. var lv_nCellCnt = obj.getCellCount("Head");
  1494. var lv_sCellText = "";
  1495. var lv_nChkCnt = 0;
  1496. var lv_sDpType = "";
  1497. for(var i=0; i<lv_nCellCnt; i++)
  1498. {
  1499. lv_sCellText = obj.getCellText(-1,i);
  1500. lv_sDpType = obj.getCellProperty("Head", i,"displaytype");
  1501. if(lv_sDpType == "checkbox")
  1502. {
  1503. lv_sDpType = obj.setCellProperty("Head", i,"text",'expr:0');
  1504. lv_nChkCnt++;
  1505. }
  1506. }
  1507. lv_nChkCnt++;
  1508. if(lv_nChkCnt > 0) obj.onheadclick.addHandler(setGridCheckAll);
  1509. }
  1510. /****************************************************************************************
  1511. * Function : fExistFolder
  1512. * Description : 폴더 존재여부 파악
  1513. * retrun type : 폴더 생성
  1514. * Creator :
  1515. ****************************************************************************************/
  1516. function fExistFolder(foldernm)
  1517. {
  1518. if(utlf_isNull(foldernm))
  1519. {
  1520. return;
  1521. }
  1522. var folderDept = foldernm.split("\\");
  1523. var currentPos = folderDept[0];
  1524. for(var i =1; i<folderDept.length ; i++)
  1525. {
  1526. if(utlf_isNull(folderDept[i]))
  1527. {
  1528. break;
  1529. }
  1530. currentPos += ("\\" + folderDept[i]);
  1531. objExtCommon.checkDirectory(currentPos, 1); // option : 1 ? 없으면 create
  1532. }
  1533. }
  1534. function lf_getImgeData(sFilePath){
  1535. if( utlf_isNull(sFilePath) || gEnvSrcimge != "001" )
  1536. return "";
  1537. // Step0 환경설정
  1538. var aFilePath = sFilePath.split("\\");
  1539. var newFilePath = userHomeDir + "\\" + aFilePath[aFilePath.length];
  1540. // Step1 File Copy
  1541. if(objExtCommon.IsFileExist(newFilePath)) objExtCommon.DeleteFile(newFilePath);
  1542. var rtn = objExtCommon.CopyFile(sFilePath, newFilePath, false);
  1543. // Step2 Create Object
  1544. var objVFile = new VirtualFile(newFilePath, VirtualFile.openRead | VirtualFile.openBinary);
  1545. objVFile.seek(0,VirtualFile.seekBegin);
  1546. var bData = new Buffer(objVFile.read(objVFile.getFileSize()));
  1547. // Step3 File Close
  1548. objVFile.close();
  1549. // Step4 File Delete
  1550. if(objExtCommon.IsFileExist(newFilePath)) objExtCommon.DeleteFile(newFilePath);
  1551. return objExtCommon.encodeBase64(bData.data);
  1552. }]]></Script>