MMR03600.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 이미지편집기 ( SMMMR03600_이미지편집.xrw - JScript )
  4. * Version :
  5. - Ver.1.00.01
  6. * 개발자: 이경희
  7. * 최초작성일:
  8. - 2008/02/27
  9. * 수정이력:
  10. - 2008/03/17
  11. * 기타:
  12. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  13. */
  14. var gMediRecMain = false; //진료기록에서 호출 할때만 true로 세팅됨.
  15. var gPageInfo = new PAGEINFO();
  16. /**
  17. * @ver : 2008-03-18
  18. * @desc : 이미지 편집기 화면 생성 시 실행되어 변수들을 초기화함.
  19. * @
  20. * @by : 이경희
  21. * @param:
  22. * @return:
  23. * @---------------------------------------------------
  24. */
  25. function fFormReady()
  26. {
  27. //switch1.selectedIndex = 1;
  28. //btn_localdisk.selected = true;
  29. ivw_imge.attribute("border-style") = "none";
  30. fInit_gv();
  31. //fTreeInit();
  32. if (isPopup())
  33. {
  34. gPageInfo = new PAGEINFO();
  35. if (opener.window.javascript.getParameter("openmode") == "MediRec"
  36. || opener.window.javascript.getParameter("openmode") == "DentiRec") // 최원돈 조건 추가 20110201
  37. {
  38. gMediRecMain = true;
  39. gPageInfo.formCd = opener.window.javascript.getParameter("formcd");
  40. gPageInfo.formDegnSeq = opener.window.javascript.getParameter("formdegnseq");
  41. gPageInfo.fstLevlItemCd = opener.window.javascript.getParameter("fstlevlitemcd");
  42. gPageInfo.degnItemLevlCd = opener.window.javascript.getParameter("degnitemlevlcd");
  43. gPageInfo.degnitemlevlno = opener.window.javascript.getParameter("degnitemlevlno");
  44. if (opener.window.javascript.getParameter("openmode") == "MediRec") // 최원돈 조건 추가 20110201
  45. {
  46. opener.window.javascript.getBaseUnitFormRecImge(opener.window.javascript.getParameter("ivwid"), ivw_imge.model);
  47. }
  48. copyNodeset(gPageInfo.recItemRef, gPageInfo.imgerecItemRef+"[fstlevlitemcd='"+gPageInfo.fstLevlItemCd+"']", "append" ,ivw_imge.model, opener.model);
  49. var cnt = getNodesetCnt(opener.model, gPageInfo.imgerecItemRef);
  50. if (cnt > 0)
  51. {
  52. var maxno = opener.model.getXPathValue("max("+gPageInfo.imgerecItemRef+"/degnitemno)");
  53. if (maxno != null)
  54. {
  55. ivw_imge.window.javascript.gNewImgeNo = parseInt(maxno);
  56. }
  57. }
  58. ivw_imge.window.javascript.gPageInfo = gPageInfo;
  59. ivw_imge.window.javascript.fAddImgeByRec();
  60. }
  61. else if (model.getValue("/root/temp/SMMMR03600_modalif/openmode") == "OneImge")
  62. {
  63. ivw_imge.window.javascript.gOnlyOneImge = true;
  64. //if (model.getValue("/root/temp/SMMMR03600_modalif/imgecd") != "" &&
  65. // model.getValue("/root/temp/SMMMR03600_modalif/shape") != "")
  66. if (model.getValue("/root/temp/SMMMR03600_modalif/imgecd") != "")
  67. {
  68. if (fRefImgeDateByImgeCd( model.getValue("/root/temp/SMMMR03600_modalif/imgecd") ) )
  69. {
  70. model.setValue("/root/temp/SMMMR03600_modalif/base64", model.getValue("/root/main/imgview/image"));
  71. ivw_imge.window.javascript.fAddImgeByData(
  72. model.getValue("/root/temp/SMMMR03600_modalif/imgecd"),
  73. "",
  74. model.getValue("/root/temp/SMMMR03600_modalif/base64"),
  75. model.getValue("/root/temp/SMMMR03600_modalif/shape"));
  76. }
  77. }
  78. ivw_imge.window.javascript.gPageInfo = gPageInfo;
  79. }
  80. }
  81. }
  82. function fRefImgeDateByImgeCd(imgecd)
  83. {
  84. model.makeValue("/root/send/imgecode", imgecd);
  85. return submit("TRMMR03603");
  86. }
  87. function fConfirm(fstLevlItemCd)
  88. {
  89. if (gMediRecMain)
  90. {
  91. if (opener.window.javascript.getParameter("openmode") == "MediRec") // 최원돈 조건 추가 20110201
  92. {
  93. opener.window.javascript.setBaseUnitFormRecImge(opener.window.javascript.getParameter("ivwid"), ivw_imge.model);
  94. }
  95. opener.model.removeNodeset(gPageInfo.imgerecItemRef+"[fstlevlitemcd='"+fstLevlItemCd+"']");
  96. copyNodeset(gPageInfo.imgerecItemRef, gPageInfo.recItemRef, "append" ,opener.model, ivw_imge.model);
  97. }
  98. else
  99. {
  100. if (model.getValue("/root/temp/SMMMR03600_modalif/openmode") == "OneImge")
  101. {
  102. if (getNodesetCnt(ivw_imge.model, gPageInfo.recItemRef) > 0)
  103. {
  104. model.setValue("/root/temp/SMMMR03600_modalif/imgecd", ivw_imge.model.getValue(gPageInfo.recItemRef+"/degnitemcd"));
  105. model.setValue("/root/temp/SMMMR03600_modalif/base64", ivw_imge.model.getValue(gPageInfo.recItemRef+"/recimge"));
  106. model.setValue("/root/temp/SMMMR03600_modalif/shape", ivw_imge.model.getValue(gPageInfo.recItemRef+"/reccnts"));
  107. copyNodeset("/root/temp/SMMMR03600_modalif", "/root/temp/SMMMR03600_modalif", "replace" ,opener.model, model);
  108. }
  109. }
  110. }
  111. if (isPopup())
  112. window.close();
  113. }
  114. var gv_openerflag;
  115. var gv_openerformcd;
  116. var gv_openerformdegnseq;
  117. var gv_openerdegnitemno;
  118. var gv_imgeview = "/root/main/imgview/image";
  119. var gv_imgenm = "/root/main/imgnm";
  120. var gv_imgecd = "/root/main/imgecd";
  121. var gv_sendref = "/root/send/album";
  122. var gv_dyctrlimge = "album_imge";
  123. function fInit_gv(){
  124. var gv_openerflag = "";
  125. var gv_openerformcd = "";
  126. var gv_openerformdegnseq = -1;
  127. var gv_openerdegnitemno = -1;
  128. }
  129. function fGetImgeData(trvname){
  130. var trvctrl = ivw_imgelist.window.document.controls(trvname);
  131. var value = trvctrl.attribute("valcd");
  132. model.makeValue("/root/send/imgecode", value);
  133. var sel_item = trvctrl.label;
  134. if(model.getValue("/root/send/imgecode") != ""){
  135. submit("TRMMR03603", "false");
  136. setImageRefInstance(gv_imgeview);
  137. model.setValue(gv_imgenm, sel_item);
  138. model.setValue(gv_imgecd, value);
  139. ivw_imge.window.javascript.fAddImgeByData(value, sel_item, model.getValue(gv_imgeview));
  140. }
  141. }
  142. function fGridImageView(clickCnt, evtarget){
  143. var grd_imgnmlist = ivw_imgelist.window.document.controls("grd_imgnmlist");
  144. if(grd_imgnmlist.isCell(evtarget) && grd_imgnmlist.row >= grd_imgnmlist.fixedRows ){
  145. var curr_row = grd_imgnmlist.row;
  146. model.makeNode("/root/send/imgecode");
  147. model.makeValue("/root/send/imgecode", ivw_imgelist.model.getValue("/root/main/imglistinfo/imglist["+curr_row+"]/imglistcode"));
  148. model.makeValue(gv_imgecd, ivw_imgelist.model.getValue("/root/main/imglistinfo/imglist["+curr_row+"]/imglistcode"));
  149. model.setValue(gv_imgenm, ivw_imgelist.model.getValue("/root/main/imglistinfo/imglist["+curr_row+"]/imglistnm"));
  150. if(model.getValue("/root/send/imgecode") != ""){
  151. submit("TRMMR03603", "false");
  152. setImageRefInstance(gv_imgeview);
  153. // img1.refresh();
  154. var imgecd = ivw_imgelist.model.getValue("/root/main/imglistinfo/imglist["+curr_row+"]/imglistcode");
  155. var imgenm = ivw_imgelist.model.getValue("/root/main/imglistinfo/imglist["+curr_row+"]/imglistnm");
  156. if (clickCnt == 2)
  157. {
  158. ivw_imge.window.javascript.fAddImgeByData(imgecd, imgenm, model.getValue(gv_imgeview));
  159. }
  160. }
  161. //opt_imgnm.refresh();
  162. //obj_imge.refresh();
  163. }
  164. }
  165. /**
  166. * @ver : 2008-03-18
  167. * @desc : 이미지를 저장한다.
  168. * @
  169. * @by : 이경희
  170. * @param:
  171. * @return:
  172. * @---------------------------------------------------
  173. */
  174. function fImageSave(){
  175. var conform = messageBox("????","Q002");
  176. if ((switch1.selectedIndex == 2) && (opt_filenm.attribute("text") != "")){
  177. /* Local Image ??
  178. C:\ ?? ????? Local_Image ??? ??? ???? ?? */
  179. switch(conform){
  180. case 6:
  181. var file_nm = "C:\\Local_Image\\" + opt_filenm.value;
  182. obj_imge.SaveImageEx(0, 4, file_nm);
  183. break;
  184. case 7:
  185. break;
  186. }
  187. }else {
  188. /* DB Image ??
  189. ??? ???? ??
  190. ?????, ?????, ?????? ??
  191. */
  192. switch(conform){
  193. case 6:
  194. var strBase64 = obj_imge.SaveImageBase64(); // 이미지를 Base64로 인코딩한다.
  195. model.makeValue("/root/send/update/saveimage","");
  196. model.makeValue("/root/send/update/imgecd", model.getValue("/root/send/imgecode"));
  197. model.setValue("/root/send/update/saveimage", strBase64);
  198. model.makeValue("/root/send/update/lastrgstid", model.getValue("/root/main/userinfo/userid"));
  199. model.makeValue("/root/send/update/lastrgstdt",getDate());
  200. submit("TXMMR03601");
  201. model.removeNodeset("/root/send/update");
  202. break;
  203. case 7:
  204. break;
  205. }
  206. }
  207. }
  208. function fAlbumView(imgecnt){
  209. var refSet = "";
  210. var leftvalue = 3;
  211. for(var node_count = 1; node_count <= imgecnt; node_count++){
  212. var imgeid = gv_dyctrlimge + node_count;
  213. var imgeref = "/root/main/album["+node_count+"]/imgedata";
  214. var imgenmref = "/root/main/album["+node_count+"]/imgenm";
  215. var imgecdref = "/root/main/album["+node_count+"]/imgecd";
  216. var formdegnseqref = "/root/main/album["+node_count+"]/formdegnseq";
  217. var degnitemnoref = "/root/main/album["+node_count+"]/degnitemno";
  218. //var imgeflagref = "/root/main/album["+node_count+"]/imgeflag";
  219. model.makeValue(imgeref,"");
  220. model.makeValue(imgenmref,"");
  221. model.makeValue(imgecdref,"");
  222. model.makeValue(formdegnseqref,"");
  223. model.makeValue(degnitemnoref,"");
  224. //model.makeValue(imgeflagref,"");
  225. var album = group2.createChild("xforms:img", "id:"+imgeid+"; ref:"+imgeref+"; left:"+leftvalue+"px; top:5px; width:125px; height:125px; background-stretch:no-stretch;");
  226. var albumnm = group2.createChild("xforms:output", "id:btn_"+imgeid+"; ref:"+imgenmref+"; left:"+leftvalue+"px; top:133px; width:125px; height:17px; background-stretch:no-stretch;");
  227. //model.makeValue(imgeref+"/imgedata", "");
  228. // ? ??? ???? ????? ?, ?? ???? display?? ?? ??? ??
  229. // 3? ???? ??? ??? ??? ?? ?? ?
  230. leftvalue = leftvalue + parseInt(document.controls(imgeid).attribute("width")) + 3;
  231. refSet = refSet + imgeref + "," ;
  232. }
  233. //model.refresh();
  234. return (refSet);
  235. }
  236. /**
  237. * @ver : 2008-03-18
  238. * @desc : 그리기 툴 선택 함수.
  239. * @
  240. * @by : 이경희
  241. * @param: 1) mode - line(선) / rectangle(사각형) / ellipse(타원) / point(점) / text(텍스트) / freeline(자유곡선)
  242. 2) btnctrl - 사용되지 않음
  243. 3) keep - 선택한 그리기 툴을 1회성으로 할것인지 계속 선택할 것인지 여부
  244. * @return:
  245. * @---------------------------------------------------
  246. */
  247. function fSelectDrawMode(mode, btnctrl, keep){
  248. var selmode;
  249. //alert(mode);
  250. if ( mode == "line" ) {
  251. selmode = 1;
  252. } else if ( mode == "rect" ) {
  253. selmode = "2";
  254. } else if ( mode == "ellip" ) {
  255. obj_imge.SetBaseSize(100, 100); // 타원 기본 크기를 100x100 으로 설정한다.
  256. selmode = "3";
  257. } else if ( mode == "point" ) {
  258. obj_imge.SetBaseSize(10, 10); // 타원 기본 크기를 10x10 으로 설정한다.
  259. obj_imge.SetShapeStyle("border-color", "red");
  260. selmode = "3";
  261. } else if ( mode == "text" ) {
  262. selmode = "4";
  263. } else if ( mode == "free" ) {
  264. selmode = "5";
  265. } else {
  266. selmode = "0";
  267. }
  268. //control ?? ?? ???? ??
  269. if ( keep == "true") {
  270. // ?? ??? downimage set
  271. /*var linkimage = getLinkimage(btnctrl);
  272. var contrl = model.control(btnctrl);
  273. contrl.img = "/emr/girokweb/images/"+linkimage+"_d.gif";
  274. contrl.refresh(); */
  275. //alert(selmode);
  276. obj_imge.SetShapeStyle(selmode, true);
  277. } else {
  278. /* var contrl = model.control("button9");
  279. contrl.img = "/emr/girokweb/images/iselect_d.gif";
  280. contrl.refresh(); */
  281. obj_imge.SelectDrawType(selmode, false); // 선택한 그리기 툴로 설정함.
  282. }
  283. }
  284. /**
  285. * @ver : 2008-03-18
  286. * @desc : 텍스트 입력 시 사용될 폰트의 속성을 설정함.
  287. * @
  288. * @by : 이경희
  289. * @param:
  290. * @return:
  291. * @---------------------------------------------------
  292. */
  293. function fFontStyle(){
  294. var selfontstyle = model.getValue("/root/hidden/font/fontstyle");
  295. out_fontstyle.attribute("text") = lbx_fontstyle.label
  296. switch(selfontstyle){
  297. case "3":
  298. model.setValue("/root/hidden/font/fontweight", "bold");
  299. model.setValue("/root/hidden/font/fontitalic", "italic");
  300. break;
  301. case "2":
  302. model.setValue("/root/hidden/font/fontitalic", "italic");
  303. model.setValue("/root/hidden/font/fontweight", "nomal")
  304. break;
  305. case "1":
  306. model.setValue("/root/hidden/font/fontweight", "bold");
  307. model.setValue("/root/hidden/font/fontitalic", "");
  308. break;
  309. default :
  310. model.setValue("/root/hidden/font/fontweight", "nomal");
  311. model.setValue("/root/hidden/font/fontitalic", "");
  312. }
  313. }
  314. /**
  315. * @ver : 2008-03-18
  316. * @desc : 선의 속성(두께, 스타일)을 설정한다.
  317. * @
  318. * @by : 이경희
  319. * @param:
  320. * @return:
  321. * @---------------------------------------------------
  322. */
  323. function fLineSel(){
  324. model.setValue("/root/main/borderstyle", model.getValue("/root/hidden/borderstyle"));
  325. model.makeValue("/root/main/borderwidth", model.getValue("/root/hidden/borderwidth"));
  326. obj_imge.SetShapeStyle("border-width", model.getValue("/root/main/borderwidth"));
  327. obj_imge.SetShapeStyle("border-style", model.getValue("/root/main/borderstyle"));
  328. grp_borderstyle.visible = false;
  329. lin_status.attribute("border-width") = model.getValue("/root/main/borderwidth");
  330. lin_status.attribute("border-style") = model.getValue("/root/main/borderstyle");
  331. }
  332. /**
  333. * @ver :
  334. * @desc :
  335. * @
  336. * @by :
  337. * @param:
  338. * @return:
  339. * @---------------------------------------------------
  340. */
  341. function fInitScreen(){
  342. var userid = getUserId();
  343. var openerimgecnt = -1;
  344. var refSet = "";
  345. var refObj;
  346. var ctrlpos = "";
  347. var ctrlcd = "";
  348. var ctrlnm = "";
  349. var ctrlformdegnseq = "";
  350. var ctrldegnitemno = "";
  351. //var openerimgecd = openerImgeData.split(",");
  352. //var openerimgecnt = openerimgecd.length;
  353. model.setValue("/root/main/userinfo/userid", userid);
  354. if(checkOpener()){
  355. gv_openerflag = opener.javascript.getParameter("flag");
  356. //var openerimgecd = opener.javascript.getParameter("imgecd");
  357. //alert(gv_openerflag);
  358. switch(gv_openerflag){
  359. case "1":
  360. gv_openerformcd = opener.javascript.getParameter("formcd");
  361. gv_openerformdegnseq = opener.javascript.getParameter("formdegnseq");
  362. gv_openerdegnitemno = opener.javascript.getParameter("degnitemno");
  363. if ((gv_openerformcd == "") && (gv_openerformdegnseq == "") && (gv_openerdegnitemno == "")){
  364. var openerID = getOpenerUID();
  365. grp_imgsearch.visible = true;
  366. document.controls("obj_imge").attribute("visibility") = "hidden";
  367. }else if(gv_openerformcd != ""){
  368. // ?? ??? ???? dbclick ?? ?,
  369. var openerID = getOpenerUID();
  370. model.makeValue("/root/send/formdegnseq", gv_openerformdegnseq);
  371. model.makeValue("/root/send/degnitemno", gv_openerdegnitemno);
  372. model.makeValue("/root/send/formcd", gv_openerformcd);
  373. submit("TRMMR03605"); //???? ?? ????
  374. openerimgecnt = model.getValue("/root/main/formimge/imgecnt");
  375. //alert("openerimgecnt="+openerimgecnt);
  376. if (openerimgecnt == 0){
  377. document.controls("obj_imge").attribute("visibility") = "hidden";
  378. break;
  379. }
  380. refSet = fAlbumView(openerimgecnt);
  381. refObj = refSet.split(",");
  382. submit("TRMMR03606");
  383. for(var refCount = 0; refCount < openerimgecnt; refCount++){
  384. setImageRefInstance(refObj[refCount]);
  385. ctrlpos = refObj[refCount].lastIndexOf("/");
  386. ctrlcd = refObj[refCount].substring(0, ctrlpos) + "/imgecd";
  387. ctrlcd = model.getValue(ctrlcd);
  388. ctrlnm = refObj[refCount].substring(0, ctrlpos) + "/imgenm";
  389. ctrlformdegnseq = refObj[refCount].substring(0, ctrlpos) + "/formdegnseq";
  390. ctrlformdegnseq = model.getValue(ctrlformdegnseq);
  391. ctrldegnitemno = refObj[refCount].substring(0, ctrlpos) + "/degnitemno";
  392. ctrldegnitemno = model.getValue(ctrldegnitemno);
  393. if ((gv_openerformdegnseq == ctrlformdegnseq) && (gv_openerdegnitemno == ctrldegnitemno)){
  394. model.setValue(gv_imgeview, model.getValue(refObj[refCount]));
  395. obj_imge.LoadImageBase64(model.getValue(gv_imgeview));
  396. fImageViewSize("1"); // Object? default? object size ?? ?? ???? resizing ?
  397. model.setValue(gv_imgenm, model.getValue(ctrlnm));
  398. model.setValue(gv_imgecd, ctrlcd);
  399. }
  400. }
  401. grp_imgsearch.visible = false;
  402. } else {
  403. grp_imgsearch.visible = true;
  404. document.controls("obj_imge").attribute("visibility") = "hidden";
  405. }
  406. break;
  407. case "2":
  408. //var openerformcd;
  409. gv_openerformdegnseq = opener.javascript.getParameter("formdegnseq");
  410. gv_openerdegnitemno = opener.javascript.getParameter("degnitemno");
  411. if ((gv_openerformdegnseq != "") && (gv_openerdegnitemno != "")){
  412. model.makeValue("/root/send/formdegnseq", gv_openerformdegnseq);
  413. model.makeValue("/root/send/degnitemno", gv_openerdegnitemno);
  414. submit("TRMMR03607");
  415. openerimgecnt = model.getValue("/root/main/formimge/imgecnt");
  416. if (openerimgecnt == 0){
  417. document.controls("obj_imge").attribute("visibility") = "hidden";
  418. break;
  419. }
  420. refSet = fAlbumView(openerimgecnt);
  421. //alert(refSet)
  422. refObj = refSet.split(",");
  423. submit("TRMMR03608");
  424. for(var refCount = 0; refCount < openerimgecnt; refCount++){
  425. setImageRefInstance(refObj[refCount]);
  426. ctrlpos = refObj[refCount].lastIndexOf("/");
  427. ctrlcd = refObj[refCount].substring(0, ctrlpos) + "/imgecd";
  428. ctrlcd = model.getValue(ctrlcd);
  429. ctrlnm = refObj[refCount].substring(0, ctrlpos) + "/imgenm";
  430. ctrlformdegnseq = refObj[refCount].substring(0, ctrlpos) + "/formdegnseq";
  431. ctrlformdegnseq = model.getValue(ctrlformdegnseq);
  432. ctrldegnitemno = refObj[refCount].substring(0, ctrlpos) + "/degnitemno";
  433. ctrldegnitemno = model.getValue(ctrldegnitemno);
  434. if ((gv_openerformdegnseq == ctrlformdegnseq) && (gv_openerdegnitemno == ctrldegnitemno)){
  435. model.setValue(gv_imgeview, model.getValue(refObj[refCount]));
  436. obj_imge.LoadImageBase64(model.getValue(gv_imgeview));
  437. fImageViewSize("1"); // Object? default? object size ?? ?? ???? resizing ?
  438. model.setValue(gv_imgenm, model.getValue(ctrlnm));
  439. model.setValue(gv_imgecd, ctrlcd);
  440. }
  441. }
  442. grp_imgsearch.visible = false;
  443. } else {
  444. grp_imgsearch.visible = true;
  445. document.controls("obj_imge").attribute("visibility") = "hidden";
  446. }
  447. break;
  448. }
  449. group2.attribute("left") = 0;
  450. grp_editwindow.attribute("left") = 0;
  451. grp_imgsearch.attribute("left") = 0;
  452. caption10.attribute("left") = 0;
  453. window.setSize(550,860);
  454. model.refresh();
  455. }
  456. }
  457. /**
  458. * @ver : 2008-03-18
  459. * @desc : 라이브 이미지 ActiveX 컨트롤의 이미지 표현 사이즈를 변경한다.
  460. * @
  461. * @by :
  462. * @param: 1) viewmode - 0 (원본사이즈)
  463. 1 (스크린에 가득차게)
  464. 2 (스크린 세로 사이즈에 꽉차게)
  465. 3 (스크린 가로 사이즈에 꽉차게)
  466. 4 (스크린 가로/세로 사이즈에 맞춤)
  467. 5 (줌 모드)
  468. * @return:
  469. * @---------------------------------------------------
  470. */
  471. function fImageViewSize(viewmode){
  472. var size = obj_imge.GetImageSize();
  473. if(size == "")
  474. return;
  475. obj_imge.SetViewMode(viewmode);
  476. }
  477. /**
  478. * @ver : 2008-03-18
  479. * @desc : 라이브 이미지 ActiveX 컨트롤의 폰트를 설정한다.
  480. * @
  481. * @by :
  482. * @param:
  483. * @return:
  484. * @---------------------------------------------------
  485. */
  486. function fSetFont(){
  487. model.setValue("/root/main/font/fonts", model.getValue("/root/hidden/font/fonts"));
  488. model.makeValue("/root/main/font/fontstyle/fontweight", model.getValue("/root/hidden/font/fontweight"));
  489. model.makeValue("/root/main/font/fontsytle/fontitalic", model.getValue("/root/hidden/font/fontitalic"));
  490. model.setValue("/root/main/font/fontsize", model.getValue("/root/hidden/font/fontsize"));
  491. obj_imge.SetShapeStyle("font-family" , model.getValue("/root/main/font/fonts"));
  492. obj_imge.SetShapeStyle("font-weight", model.getValue("/root/main/font/fontstyle/fontweight"));
  493. obj_imge.SetShapeStyle("font-style", model.getValue("/root/main/font/fontsytle/fontitalic"));
  494. obj_imge.SetShapeStyle("font-size", model.getValue("/root/main/font/fontsize"));
  495. grp_fontstyle.visible = false;
  496. cap_fontstatus.attribute("font-family") = model.getValue("/root/main/font/fonts");
  497. cap_fontstatus.attribute("font-weight") = model.getValue("/root/main/font/fontstyle/fontweight");
  498. cap_fontstatus.attribute("font-style") = model.getValue("/root/main/font/fontsytle/fontitalic");
  499. cap_fontstatus.attribute("text") = model.getValue("/root/main/font/fontsize");
  500. }
  501. /**
  502. * @ver : 2008-03-18
  503. * @desc : 라이브 이미지 ActiveX 컨트롤의 폰트를 설정한다.
  504. * @
  505. * @by :
  506. * @param:
  507. * @return:
  508. * @---------------------------------------------------
  509. */
  510. function fFormDataView(ctrlid){
  511. var ctrl = document.controls(ctrlid);
  512. var ctrlref = ctrl.attribute("ref");
  513. var ctrlpos = ctrlref.lastIndexOf("/");
  514. var ctrlnm = ctrlref.substring(0, ctrlpos) + "/imgenm";
  515. var ctrlcd = ctrlref.substring(0, ctrlpos) + "/imgecd";
  516. obj_imge.DeleteAllShape();
  517. model.setValue(gv_imgeview, model.getValue(ctrlref));
  518. model.setValue(gv_imgenm, model.getValue(ctrlnm));
  519. model.setValue(gv_imgecd, model.getValue(ctrlcd));
  520. obj_imge.LoadImageBase64(model.getValue(gv_imgeview));
  521. fImageViewSize("1"); // Object? default? object size ?? ?? ???? resizing ?
  522. //opt_imgnm.refresh();
  523. obj_imge.refresh();
  524. }
  525. function fSearchImgeData(){
  526. if(model.getValue("/root/send/imgecode") != ""){
  527. submit("TRMMR03603", "false");
  528. obj_imge.LoadImageBase64(model.getValue(gv_imgeview));
  529. fImageViewSize("1"); // Object? default? object size ?? ?? ???? resizing ?
  530. }
  531. //opt_imgnm.refresh();
  532. obj_imge.refresh();
  533. }
  534. function fLoadImage(imgcd, imgnm)
  535. {
  536. model.makeValue("/root/send/imgecode", imgcd);
  537. model.makeValue("/root/send/imgnm", imgnm);
  538. submit("TRMMR03603", false);
  539. var imgdata = model.getValue(gv_imgeview);
  540. ivw_imge.window.javascript.fClearImge();
  541. ivw_imge.window.javascript.fAddImgeByData(imgcd, imgnm, imgdata, "");
  542. //ivw_imge.window.javascript.fLoadBase64str(imgcd, imgnm, imgdata);
  543. }
  544. function fSetOpener(){
  545. var imgeCtrl;
  546. var imgeCtrlRef;
  547. var imgeCtrlcd;
  548. var imgeFormdegnseq;
  549. var imgeDegnItemNo;
  550. var position;
  551. var recimge;
  552. var sameImgeflag = "false";
  553. var annotation = obj_imge.GetShapeString();
  554. //snoweye 2007-06-17
  555. //recimge = obj_imge.SaveImageBase64();
  556. /* if(model.getValue("/root/send/imgecode") == "")
  557. {
  558. alert("??? ???? ????.");
  559. return;
  560. }
  561. var pageInfo = new PAGEINFO();
  562. var cnt = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  563. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/instcd", "");
  564. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/rechistseq", "");
  565. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/recitemno", "");
  566. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/fstlevlitemcd", "");
  567. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/formcd", model.getValue("/root/send/formcd"));
  568. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/formdegnseq", model.getValue("/root/send/formdegnseq"));
  569. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/degnitemno", "10000" + cnt);
  570. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/degnitemcd", model.getValue("/root/send/imgecode"));
  571. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/degnitemlevlcd", "");
  572. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/rectermcd", "");
  573. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/recitemcd", "");
  574. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/reccnts", obj_imge.GetShapeString());
  575. model.makeValue(pageInfo.recItemRef + "[" + cnt + "]/recimge", "");
  576. //snoweye 2007-06-17
  577. var ivwid = opener.javascript.getParameter("ivwid");
  578. var ivwobj = opener.document.controls(ivwid);
  579. //copyNodeset("/root/hidden/recinfo/recitem", pageInfo.recItemRef, "append", ivwobj.model, model);
  580. copyNodeset(pageInfo.recItemRef, pageInfo.recItemRef, "append", ivwobj.model, model);
  581. window.close();
  582. */
  583. // Edited by nj 2007-06-18
  584. var pageInfo = new PAGEINFO();
  585. var cnt = getNodesetCnt(model, pageInfo.recItemRef);
  586. for(var i = 0 ; i < group2.children.length; i++ ) {
  587. if(group2.children.item(i).elementName == "xforms:img"){
  588. imgeCtrl = group2.children.item(cnt).attribute("id");
  589. //alert("imgecount"+imgeCtrl);
  590. imgeCtrlRef = group2.children.item(i).attribute("ref");
  591. position = imgeCtrlRef.lastIndexOf("/");
  592. imgeCtrlcd = imgeCtrlRef.substring(0, position) + "/imgecd";
  593. imgeDegnItemNo = imgeCtrlRef.substring(0, position) + "/degnitemno";
  594. imgeFormdegnseq = imgeCtrlRef.substring(0, position) + "/formdegnseq";
  595. //alert("gv_imgecd"+model.getValue(gv_imgecd));
  596. if(model.getValue(imgeCtrlcd) == model.getValue(gv_imgecd)){
  597. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/instcd", "");
  598. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/rechistseq", "");
  599. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/recitemno", "");
  600. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/fstlevlitemcd", "");
  601. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/formcd", model.getValue("/root/send/formcd"));
  602. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/formdegnseq", model.getValue(imgeFormdegnseq));
  603. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/degnitemno", model.getValue(imgeDegnItemNo));
  604. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/degnitemcd", model.getValue(imgeCtrlcd));
  605. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/degnitemlevlcd", "");
  606. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/rectermcd", "");
  607. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/recitemcd", "");
  608. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/reccnts", annotation);
  609. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/unitnm", "");
  610. recimge = obj_imge.SaveImageBase64();
  611. model.setValue(imgeCtrlRef, recimge);
  612. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/recimge", recimge);
  613. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/rowno", rowno);
  614. model.makeValue(pageInfo.recItemRef + "[" + (cnt+i) + "]/colno", colno);
  615. sameImgeflag = true;
  616. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/imgecd", model.getValue(imgeCtrlcd));
  617. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/formdegnseq", model.getValue(imgeFormdegnseq));
  618. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/degnitemno", model.getValue(imgeDegnItemNo));
  619. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/annotation", annotation);
  620. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/scrimge", model.getValue(imgeCtrlRef));
  621. // recimge = obj_imge.SaveImageBase64();
  622. // model.setValue(imgeCtrlRef, recimge);
  623. // model.makeValue(gv_sendref+"/"+imgeCtrl+"/recimge", recimge);
  624. // sameImgeflag = true;
  625. break;
  626. }
  627. }else if ((sameImgeflag == "false") && (i == (group2.children.length -1))) {
  628. //alert("append="+imgeCtrl);
  629. fAppendImgeCtrl(imgeCtrl);
  630. sameImgeflag = "true";
  631. break;
  632. }
  633. }
  634. model.refresh();
  635. //
  636. //model.makeValue("/root/send/update/imgecd", model.getValue("/root/send/imgecode"));
  637. //opener.model.setValue("", strBase64);
  638. //setParameter("imgedata", strBase64);
  639. }
  640. function fTransData(){
  641. // opener? root/main? child? album ?? ??? ??
  642. model.copyNode(opener.root.main, root.send.album);
  643. model.close();
  644. }
  645. /**
  646. * @ver : 2008-03-18
  647. * @desc : 라이브 이미지 ActiveX 컨트롤에 표현된 이미지에 새로운 이미지를 추가한다.
  648. * @
  649. * @by :
  650. * @param: 1) imgeCtrlid - 이미지 id
  651. * @return:
  652. * @---------------------------------------------------
  653. */
  654. function fAppendImgeCtrl(imgeCtrlid){
  655. var album;
  656. var albumnm;
  657. var leftvalue;
  658. var tempnum;
  659. var annotation;
  660. var imgeref;
  661. var imgenmref;
  662. var imgecdref;
  663. var formdegnseqref;
  664. var degnitemnoref;
  665. var recimge;
  666. tempnum = gv_dyctrlimge;
  667. if(imgeCtrlid != null) {
  668. leftvalue = parseInt(document.controls(imgeCtrlid).attribute("left")) + parseInt(document.controls(imgeCtrlid).attribute("width")) + 3;
  669. tempnum = imgeCtrlid.substring(tempnum.length);
  670. tempnum = parseInt(tempnum) + 1;
  671. } else if(imgeCtrlid == null){
  672. leftvalue = 3;
  673. tempnum = 1;
  674. }
  675. imgeid = gv_dyctrlimge + tempnum.toString();
  676. annotation = obj_imge.GetShapeString();
  677. imgeref = "/root/main/album["+tempnum+"]/imgedata";
  678. imgenmref = "/root/main/album["+tempnum+"]/imgenm";
  679. imgecdref = "/root/main/album["+tempnum+"]/imgecd";
  680. formdegnseqref = "/root/main/album["+tempnum+"]/formdegnseq";
  681. degnitemnoref = "/root/main/album["+tempnum+"]/degnitemno";
  682. model.makeValue(imgenmref,model.getValue(gv_imgenm));
  683. model.makeValue(imgecdref,model.getValue(gv_imgecd));
  684. model.makeValue(formdegnseqref, gv_openerformdegnseq);
  685. model.makeValue(degnitemnoref, gv_openerdegnitemno);
  686. album = group2.createChild("xforms:img", "id:"+imgeid+"; ref:"+imgeref+"; left:"+leftvalue+"px; top:5px; width:125px; height:125px; background-stretch:no-stretch;");
  687. albumnm = group2.createChild("xforms:output", "id:btn_"+imgeid+"; ref:"+imgenmref+"; left:"+leftvalue+"px; top:133px; width:125px; height:17px; background-stretch:no-stretch;");
  688. model.makeValue(gv_sendref+"/"+imgeid+"/imgecd", model.getValue(imgecdref));
  689. model.makeValue(gv_sendref+"/"+imgeid+"/formdegnseq", model.getValue(formdegnseqref));
  690. model.makeValue(gv_sendref+"/"+imgeid+"/degnitemno", model.getValue(degnitemnoref));
  691. model.makeValue(gv_sendref+"/"+imgeid+"/annotation", annotation);
  692. model.makeValue(gv_sendref+"/"+imgeid+"/scrimge", model.getValue(gv_imgeview));
  693. recimge = obj_imge.SaveImageBase64();
  694. model.makeValue(imgeref, recimge);
  695. setImageRefInstance(imgeref);
  696. model.makeValue(gv_sendref+"/"+imgeid+"/recimge", recimge);
  697. model.refresh();
  698. }
  699. /**
  700. * @desc :treeview refresh
  701. * @
  702. * @param :
  703. * @return :
  704. * @---------------------------------------------------
  705. */
  706. function fTrvRefresh(){
  707. submit("TRMMR03602");
  708. submit("TRMMR03604");
  709. model.refresh();
  710. }
  711. /**
  712. * @desc : 버튼 클릭 (개인/과/전체)
  713. * @
  714. * @param :
  715. * @return :
  716. * @---------------------------------------------------
  717. */
  718. function fSetImgeListSelect(setflag){
  719. model.setValue("/root/send/cond/setflag", setflag);
  720. //grup_saveas.visible = "false";
  721. // 개인
  722. if (setflag == "U") {
  723. btn_user.selected = "true";
  724. if (refresh_u == 0) {
  725. // 공통세션변수에서 formlist 유무 확인
  726. var formflag = getGlobalVariable("emr_gsv_imgeflag_u");
  727. if(formflag=="Y"){
  728. // formlist있으면 submit 안함
  729. var formlist = getGlobalVariable("emr_gsv_imgelist_u");
  730. model.removeNodeset("/root/main/imgelist_u/item");
  731. model.removeNodeset("/root/main/imgelist/item");
  732. setCSVToNode("/root/main/imgelist",formlist,"item");
  733. model.copyNode("/root/main/imgelist_u", "/root/main/imgelist");
  734. model.refresh();
  735. }else {
  736. submit("TRMRF04402");
  737. model.removeNodeset("/root/main/imgelist_u/item");
  738. copyNodeset("/root/main/imgelist_u", "/root/main/imgelist");
  739. model.refresh();
  740. }
  741. } else {
  742. model.removeNodeset("/root/main/imgelist/item");
  743. model.copyNode("/root/main/imgelist", "/root/main/imgelist_u");
  744. model.refresh();
  745. }
  746. refresh_u = 1;
  747. // 과
  748. } else if (setflag == "D") {
  749. btn_dept.selected = "true";
  750. if (refresh_d == 0) {
  751. // 공통세션변수에서 formlist 유무 확인
  752. var formflag = getGlobalVariable("emr_gsv_imgeflag_d");
  753. if(formflag=="Y"){
  754. // formlist있으면 submit 안함
  755. var formlist = getGlobalVariable("emr_gsv_imgelist_d");
  756. model.removeNodeset("/root/main/imgelist_d/item");
  757. model.removeNodeset("/root/main/imgelist/item");
  758. setCSVToNode("/root/main/imgelist",formlist,"item");
  759. model.copyNode("/root/main/imgelist_d", "/root/main/imgelist");
  760. model.refresh();
  761. }else {
  762. submit("TRMRF04402");
  763. model.removeNodeset("/root/main/imgelist_d/item");
  764. copyNodeset("/root/main/imgelist_d", "/root/main/imgelist");
  765. model.refresh();
  766. }
  767. } else {
  768. model.removeNodeset("/root/main/imgelist/item");
  769. model.copyNode("/root/main/imgelist", "/root/main/imgelist_d");
  770. model.refresh();
  771. }
  772. refresh_d = 1;
  773. // 공통
  774. } else if (setflag == "A") {
  775. if((trv_imgelist_a.selected) && (trv_imgelist_a.value != '')){
  776. model.removenodeset("/root/main/serverimglist");
  777. model.makeNode("/root/send/imgecode");
  778. model.makeValue("/root/send/imgecode", trv_imgelist_a.value);
  779. var sel_item = trv_imgelist_a.label;
  780. if(model.getValue("/root/send/imgecode") != ""){
  781. submit("TRMMR03603", "false");
  782. setImageRefInstance(gv_imgeview);
  783. // img1.refresh();
  784. model.setValue(gv_imgenm, sel_item);
  785. model.setValue(gv_imgecd, trv_imgelist_a.value);
  786. if (clickCnt == 2)
  787. {
  788. ivw_imge.window.javascript.fAddImgeByData(trv_imgelist_a.value, sel_item, model.getValue(gv_imgeview));
  789. }
  790. }
  791. }else if((trv_imgelist_a.selected) && (trv_imgelist_a.value == '')){
  792. return;
  793. }else {
  794. submit("TRMMR03602");
  795. }
  796. }
  797. }
  798. /**
  799. * @desc : tree초기화
  800. * @
  801. * @param : flag (0:이미지편집, 1:이미지셋관리)
  802. * @return :
  803. * @---------------------------------------------------
  804. */
  805. function fTreeInit(){
  806. // 폴더명칭 popup
  807. //grup_saveas.visible = "false";
  808. model.removeNodeset("/root/main/list/imglist");
  809. // 부서코드 리스트 불러오기...
  810. /*reqGetDeptList("/root/send/reqdeptlist", "/root/init/deptlist", "", "012");
  811. model.makeValue("/root/init/deptlist/orddept/deptcd","ALL");
  812. model.makeValue("/root/init/deptlist/orddept/deptnm","전체");
  813. model.setValue("/root/send/reqformlist/deptcd",getUserInfo("dutplcecd"));
  814. model.refresh();*/
  815. // admin 인가? 보여줄것만 보여준다..
  816. // 관리자 : 개인, 과, 전체 등록/수정/삭제 가능
  817. // 사용자 : 개인만 가능
  818. /* var result = fUserAdmin();
  819. //var result = true;
  820. if (result == true)
  821. {
  822. grup_srch1.visible = "true";
  823. grup_srch2.visible = "true";
  824. model.setValue("/root/send/cond/admin", "true");
  825. } else {
  826. grup_srch1.visible = "false";
  827. grup_srch2.visible = "false";
  828. model.setValue("/root/send/cond/admin", "false");
  829. }*/
  830. // 사용자정보 셋...
  831. //model.setValue("/root/send/cond/userid", getUserId());
  832. model.setValue("/root/send/cond/usernm", getUserInfo("usernm"));
  833. model.setValue("/root/send/cond/deptcd", getUserInfo("dutplcecd"));
  834. model.setValue("/root/send/cond/jobkind", getUserInfo("jobkindcd"));
  835. model.setValue("/root/send/cond/deptcd", "2162101000");
  836. model.setValue("/root/send/cond/userid", "10604406");
  837. model.setValue("/root/send/cond/jobkind", "1611");
  838. // 디폴트 트리뷰
  839. sw_setflag.case_user.selected = "true";
  840. sw_setflag.case_dept.selected = "false";
  841. sw_setflag.case_all.selected = "false";
  842. sw_setflag.refresh();
  843. model.setValue("/root/send/cond/setflag", "U");
  844. model.removeNodeset("/root/main/imgelist/item");
  845. // 개인목록 보여주자~
  846. submit("TRMRF04402");
  847. model.removeNodeset("/root/main/imgelist_u/item");
  848. copyNodeset("/root/main/imgelist_u", "/root/main/imgelist");
  849. model.refresh();
  850. refresh_u = 1;
  851. }