SMRPB17000_자격면허이미지등록.xrw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet ype="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>자격면허 이미지 등록</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <imgdata>
  11. <photimg/>
  12. </imgdata>
  13. <imgviewlist>
  14. <emplno/>
  15. <photimg/>
  16. </imgviewlist>
  17. <empllicnimage>
  18. <empllicnimagelist/>
  19. </empllicnimage>
  20. </main>
  21. <send>
  22. <imgdata>
  23. <emplno/>
  24. <emplnm/>
  25. </imgdata>
  26. <save>
  27. <imgviewlist/>
  28. </save>
  29. <send>
  30. <imgdata>
  31. <emplno/>
  32. <emplnm/>
  33. </imgdata>
  34. <save>
  35. <imgviewlist/>
  36. </save>
  37. </send>
  38. <empllicnimage>
  39. <instcd/>
  40. <prfshipflag/>
  41. <deptcd/>
  42. <deptnm/>
  43. <emplno/>
  44. <emplnm/>
  45. </empllicnimage>
  46. </send>
  47. <temp/>
  48. <init/>
  49. </root>
  50. </instance>
  51. <submission id="TRRPB17001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/imgdata" resultref="/root/main/imgviewlist"/>
  52. <submission id="TXRPB17001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/temp"/>
  53. <submission id="TRRPB17002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/empllicnimage" resultref="/root/main/empllicnimage"/>
  54. </model>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  57. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  58. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  59. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  60. <script type="javascript" ev:event="xforms-ready">
  61. <![CDATA[
  62. fInitialize();
  63. ]]>
  64. </script>
  65. <script type="javascript">
  66. <![CDATA[
  67. function fInitialize()
  68. {
  69. model.removenode(grd_imgviewlist.nodeset);
  70. model.removenode(grd_empllicnimagelist.nodeset);
  71. model.refresh();
  72. misfMsterDetailSet(grd_empllicnimagelist, null, "TRRPB17002", "N");
  73. misfMsterDetailSet(grd_imgviewlist, grd_empllicnimagelist, "TRRPB17001", "Y");
  74. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  75. misfComboInstCdListMulti("cmb_instcd",getCurrentDate(),"","N","N");
  76. misfComboComCdListMulti("R0058", "cmb_prfshipflag");
  77. addComboItem( "cmb_prfshipflag", "[-- 전체 --]", "", "above");
  78. model.setValue(cmb_prfshipflag.attribute("ref"), "");
  79. model.refresh();
  80. }
  81. function fChangeImage(imgsrc) {
  82. var imgfile = imgsrc.split("|");
  83. var NodeCnt = instance1.selectNodes("/root/main/imgdata/*").length;
  84. if (grd_imgviewlist.Rows <= grd_imgviewlist.fixedRows) {
  85. NodeCnt = 0;
  86. }
  87. var topcnt = 0;
  88. var leftcnt = 0;
  89. var newCtrObj = null;
  90. //var emplno= ipt_emplno.value;
  91. for (var i = 0; i < imgfile.length; i++) {
  92. //alert(imgfile[i]);
  93. var filelist = imgfile[i].split("\\");
  94. var emplno = filelist[filelist.length - 1].split(".")[0];
  95. //alert(emplno);
  96. img_hidden.src = imgfile[i];
  97. var data = img_hidden.getbase64data(); // base64 encoding 문자열을 가져온다.
  98. var imgSize = getImageSize(imgfile[i]);
  99. var imgWidthSize = imgSize.split("^")[0];
  100. var imgHeightSize = imgSize.split("^")[1];
  101. model.makeNode("/root/main/imgdata/photimg" + (NodeCnt+1) );
  102. model.setValue("/root/main/imgdata/photimg" + (NodeCnt+1) ,data,true); // 이미지를 보여주기 위하여 view용 이미지컨트롤의 ref instance에 값을 저장
  103. var mod = (NodeCnt+1) % 3;
  104. leftcnt = mod;
  105. if (mod == 0) {
  106. topcnt = topcnt + 1;
  107. leftcnt = 1;
  108. }
  109. var baseleft = img_view.attribute("left").replace("px","");
  110. var basetop = img_view.attribute("top").replace("px","");
  111. var width = img_view.attribute("width").replace("px","");
  112. var height = img_view.attribute("height").replace("px","");
  113. var leftpos = (baseleft * leftcnt ) + (width * (leftcnt - 1)) ;
  114. var toppos = (basetop * (topcnt+1)) + (height * topcnt);
  115. newCtrObj = group3.createChild("xforms:img", "id:img_view" + (NodeCnt+1) + "; ref:/root/main/imgdata/photimg" + (NodeCnt+1) + "; left:" + leftpos + "; top:" + toppos + "; width:" + width + "; height:"+ height + ";background-stretch:stretch;");
  116. setImageRefInstance("/root/main/imgdata/photimg" + (NodeCnt+1)); //base64 encoding 문자열을 이미지로 변환하여 보여준다,
  117. NodeCnt = NodeCnt + 1;
  118. if(img_hidden.src != "../../../com/commonweb/images/no_image.gif" ){//이미지추가시 그리드 추가
  119. grd_imgviewlist.addrow(); // 입력할 행 추가.
  120. cur_row = grd_imgviewlist.row; // 추가된 행 번호 가져오기
  121. // 그리드에 추가
  122. model.setValue("/root/main/imgviewlist["+cur_row+"]/emplno",emplno);
  123. model.setValue("/root/main/imgviewlist["+cur_row+"]/photimg",data,true);
  124. }
  125. }
  126. //
  127. // img_hidden.src = imgsrc; // 파일에서 읽은 이미지의 base64 encoding 값을 가져오기 위한 이미지 컨트롤
  128. // var data = img_hidden.getbase64data(); // base64 encoding 문자열을 가져온다.
  129. // var imgSize = getImageSize(imgsrc);
  130. // var imgWidthSize = imgSize.split("^")[0];
  131. // var imgHeightSize = imgSize.split("^")[1];
  132. //
  133. // var NodeCnt = instance1.selectNodes("/root/main/imgdata/*").length;
  134. //
  135. //
  136. // //alert(NodeCnt);
  137. //
  138. // model.makeNode("/root/main/imgdata/photimg" + (NodeCnt+1) );
  139. //
  140. // model.setValue("/root/main/imgdata/photimg" + (NodeCnt+1) ,data,true); // 이미지를 보여주기 위하여 view용 이미지컨트롤의 ref instance에 값을 저장
  141. // setImageRefInstance("/root/main/imgdata/photimg" + (NodeCnt+1)); //base64 encoding 문자열을 이미지로 변환하여 보여준다,
  142. //
  143. //
  144. // img_view.attribute("width")= "140";
  145. //
  146. // img_view.attribute("height")= "170";
  147. // var cur_rows = grd_imgviewlist.rows;
  148. // var emplno= ipt_emplno.value;
  149. // var imgemplno=model.getValue("/root/main/imgviewlist[1]/emplno");
  150. //
  151. // if(img_hidden.src != "../../../com/commonweb/images/no_image.gif" ){//이미지추가시 그리드 추가
  152. // grd_imgviewlist.addrow(); // 입력할 행 추가.
  153. // cur_row = grd_imgviewlist.row; // 추가된 행 번호 가져오기
  154. // // 그리드에 추가
  155. // model.setValue("/root/main/imgviewlist["+cur_row+"]/emplno",emplno);
  156. // model.setValue("/root/main/imgviewlist["+cur_row+"]/photimg",data,true);
  157. // }
  158. // else if(img_hidden.src != "../../../com/commonweb/images/no_image.gif" && imgemplno !=""){//업데이트시 그리드셋팅
  159. // grd_imgviewlist.addStatus(1,"update");
  160. // model.setValue("/root/main/imgviewlist[1]/emplno",emplno);
  161. // model.setValue("/root/main/imgviewlist[1]/photimg",data,true);
  162. // }
  163. model.refresh();
  164. }
  165. function fRetrImage() {//조회시 그리드에 base64 encoding data셋팅하고 사진이미지 보여준다.
  166. model.removeNodeset("/root/main/imgdata");
  167. if (grd_imgviewlist.Rows <= grd_imgviewlist.fixedRows) {
  168. fChangeImage("../../../com/commonweb/images/no_image.gif");//초기 이미지설정
  169. }
  170. else {
  171. var topcnt = 0;
  172. var leftcnt = 0;
  173. var newCtrObj = null;
  174. for( var i = grd_imgviewlist.fixedRows ; i < grd_imgviewlist.Rows ; i++ ) {
  175. var imgdata = model.getValue("/root/main/imgviewlist["+i+"]/photimg"); // base64 encoding 문자열을 가져온다.
  176. model.makeNode("/root/main/imgdata/photimg" + i);
  177. model.setValue("/root/main/imgdata/photimg"+i, imgdata,true);
  178. // style="left:15px; top:15px; width:320px; height:285px; background-stretch:stretch; border-style:solid; "
  179. var mod = i % 3;
  180. var val = parseInt(i / 3);
  181. leftcnt = mod + val;
  182. if (mod == 0) {
  183. topcnt = topcnt + 1;
  184. leftcnt = 1;
  185. }
  186. var baseleft = img_view.attribute("left").replace("px","");
  187. var basetop = img_view.attribute("top").replace("px","");
  188. var width = img_view.attribute("width").replace("px","");
  189. var height = img_view.attribute("height").replace("px","");
  190. var leftpos = (baseleft * leftcnt ) + (width * (leftcnt - 1)) ;
  191. var toppos = (basetop * (topcnt+1)) + (height * topcnt);
  192. newCtrObj = group3.createChild("xforms:img", "id:img_view" + i + "; ref:/root/main/imgdata/photimg" + i + "; left:" + leftpos + "; top:" + toppos + "; width:" + width + "; height:"+ height + ";background-stretch:stretch;");
  193. setImageRefInstance("/root/main/imgdata/photimg"+i);
  194. }
  195. grd_imgviewlist.rebuild();
  196. }
  197. model.refresh();
  198. }
  199. ]]>
  200. </script>
  201. </xhtml:head>
  202. <xhtml:body style="margin-left:8; margin-right:8; ">
  203. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  204. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1195px; height:36px; "/>
  205. <caption id="caption278" class="tit_2" style="left:5px; top:55px; width:162px; height:14px; ">직원 리스트</caption>
  206. <line id="line207" class="line_1" style="x1:0px; y1:70px; x2:385px; y2:69px; "/>
  207. <caption id="cap_emplno" class="search_name" style="left:807px; top:21px; width:86px; height:17px; ">사원번호 :</caption>
  208. <button id="btn_search" class="btn1_letter2" navindex="8" style="left:1125px; top:17px; width:56px; height:22px; text-align:left; ">
  209. <caption>조회</caption>
  210. <script type="javascript" ev:event="DOMActivate">
  211. <![CDATA[
  212. //submit("TRRPB17001");
  213. misfMsterDetailRetrieve();
  214. ]]>
  215. </script>
  216. </button>
  217. <line id="line3" class="line_4" style="x1:1110px; y1:14px; x2:1110px; y2:42px; border-color:#ffe4bb; border-left-style:solid; "/>
  218. <input id="ipt_lbrunionjobrespnm" ref="/root/main/item/lbrunionjobrespnm" class="input_search" visibility="hidden"/>
  219. <input id="ipt_lbrunionjobresp" ref="/root/main/item/dutplceinst" visibility="hidden"/>
  220. <input id="ipt_emplno_m" ref="/root/main/imsiitem/emplno" visibility="hidden"/>
  221. <input id="ipt_lbrunionrgstyn_m" ref="/root/main/imsiitem/lbrunionrgstyn" visibility="hidden"/>
  222. <input id="ipt_lbrunionrgstdd_m" ref="/root/main/imsiitem/lbrunionrgstdd" visibility="hidden"/>
  223. <input id="ipt_lbrunionsecssdd_m" ref="/root/main/imsiitem/lbrunionsecssdd" visibility="hidden"/>
  224. <input id="ipt_lbrunionjobresp_m" ref="/root/main/imsiitem/lbrunionjobresp" visibility="hidden"/>
  225. <input id="ipt_lbrunionjobrespnm_m" ref="/root/main/imsiitem/lbrunionjobrespnm" visibility="hidden"/>
  226. <input id="ipt_asgnmpostndd_m" ref="/root/main/imsiitem/asgnmpostndd" visibility="hidden"/>
  227. <input id="ipt_todd_m" ref="/root/main/imsiitem/todd" visibility="hidden"/>
  228. <input id="ipt_cur_row" ref="/root/init/cur_row_m" class="input_search" visibility="hidden"/>
  229. <input id="ipt_emplno" ref="/root/send/empllicnimage/emplno" class="input_search" disabled="false" style="left:895px; top:20px; width:65px; height:19px; ">
  230. <script type="javascript" ev:event="onkeypress">
  231. <![CDATA[
  232. if(event.keyCode == 13)
  233. {
  234. if(ipt_emplno.value == ipt_emplno.currentText) return;
  235. ipt_emplno.value = ipt_emplno.currentText;
  236. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  237. model.refresh();
  238. }
  239. ]]>
  240. </script>
  241. <script type="javascript" ev:event="xforms-value-changed">
  242. <![CDATA[
  243. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  244. model.refresh();
  245. ]]>
  246. </script>
  247. </input>
  248. <button id="btn_emplhelp" class="icon_search" disabled="false" style="left:964px; top:22px; width:16px; height:16px; ">
  249. <caption/>
  250. <script type="javascript" ev:event="DOMActivate">
  251. <![CDATA[
  252. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm", "", "N");
  253. model.refresh();
  254. ]]>
  255. </script>
  256. </button>
  257. <input id="ipt_emplnm" ref="/root/send/empllicnimage/emplnm" class="input_search" disabled="false" style="left:984px; top:20px; width:120px; height:19px; ">
  258. <script type="javascript" ev:event="onkeypress">
  259. <![CDATA[
  260. if(event.keyCode == 13)
  261. {
  262. if(ipt_emplnm.value == ipt_emplnm.currentText) return;
  263. ipt_emplnm.value = ipt_emplnm.currentText;
  264. rpbfValidationCheck("EMPLNM", "emplno,emplnm");
  265. model.refresh();
  266. }
  267. ]]>
  268. </script>
  269. <script type="javascript" ev:event="xforms-value-changed">
  270. <![CDATA[
  271. rpbfValidationCheck("EMPLNM", "emplno,emplnm");
  272. model.refresh();
  273. ]]>
  274. </script>
  275. </input>
  276. <group id="group3" style="left:390px; top:75px; width:803px; height:665px; border-style:solid; ">
  277. <img id="img_view" ref="/root/main/imgdata/photimg1" visibility="hidden" style="left:15px; top:15px; width:320px; height:285px; background-stretch:stretch; border-style:solid; "/>
  278. <img id="img_hidden" visibility="hidden" style="left:5px; top:5px; width:35px; height:30px; border-style:solid; "/>
  279. </group>
  280. <button id="btn_fileupload" class="btn2_letter4" style="left:1126px; top:47px; width:64px; height:19px; text-align:left; ">
  281. <caption>사진추가</caption>
  282. <script type="javascript" ev:event="DOMActivate">
  283. <![CDATA[
  284. // var emplno= ipt_emplno.value;
  285. // if(emplno ==""){
  286. // messageBox("사원을 ","C002");
  287. // return;
  288. // }
  289. // var file = openImageFileDialog(1048576); // image 파일이 너무 크면 submit 시간이 매우 오래(5분이상) 걸리므로 가급적 사이즈를 작게 제한한다.
  290. // if (file == "") {
  291. // return;
  292. // }
  293. model.removeNodeset("/root/main/imgdata");
  294. model.refresh();
  295. var file = window.fileDialog("open","|",true,"","","All Files (*.*)|*.*|JPEG Files(*.jpg)|*.jpg|GIF Files(*.gif)|*.gif|BMP Files(*.bmp)|*.bmp");
  296. if (file == "") {
  297. return;
  298. }
  299. // else {
  300. // var fso = new ActiveXObject("Scripting.FileSystemObject");
  301. // var f = fso.GetFile(file);
  302. // }
  303. fChangeImage(file);
  304. //model.setFocus("ipt_imgnminput");
  305. model.refresh();
  306. ]]>
  307. </script>
  308. </button>
  309. <datagrid id="grd_imgviewlist" nodeset="/root/main/imgviewlist" visibility="hidden" caption="사원번호^이미지^caption1" colsep="^" colwidth="100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:750px; top:270px; width:395px; height:210px; ">
  310. <col ref="emplno"/>
  311. <col ref="photimg" style="background-stretch:stretch; "/>
  312. <col ref="seqno"/>
  313. </datagrid>
  314. <caption id="caption1" class="tit_2" style="left:395px; top:55px; width:162px; height:14px; ">자격,면허 이미지 리스트</caption>
  315. <line id="line1" class="line_1" style="x1:390px; y1:70px; x2:1193px; y2:69px; "/>
  316. <datagrid id="grd_empllicnimagelist" nodeset="/root/main/empllicnimage/empllicnimagelist" caption="사번^성명^급여분류^부서|사번^성명^급여분류^부서" colsep="^" colwidth="71, 74, 86, 115" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:75px; width:385px; height:665px; ">
  317. <col ref="emplno"/>
  318. <col ref="emplnm"/>
  319. <col ref="prfshipflagnm"/>
  320. <col ref="unitnm"/>
  321. <script type="javascript" ev:event="onrowchanged">
  322. <![CDATA[
  323. misfMsterDetailRetrieve();
  324. fRetrImage();
  325. model.refresh();
  326. ]]>
  327. </script>
  328. </datagrid>
  329. <select1 id="cmb_instcd" ref="/root/send/empllicnimage/instcd" class="combo_s_essential" navindex="30" appearance="minimal" style="left:92px; top:20px; width:163px; height:19px; ">
  330. <choices>
  331. <itemset>
  332. <label/>
  333. <value/>
  334. </itemset>
  335. </choices>
  336. </select1>
  337. <caption id="cap_instcd" class="search_name" style="left:5px; top:21px; width:85px; height:17px; ">기 관:</caption>
  338. <select1 id="cmb_prfshipflag" ref="/root/send/empllicnimage/prfshipflag" class="combo_s_essential" navindex="40" appearance="minimal" style="left:360px; top:20px; width:163px; height:19px; ">
  339. <choices>
  340. <itemset>
  341. <label/>
  342. <value/>
  343. </itemset>
  344. </choices>
  345. </select1>
  346. <caption id="caption4" class="search_name" style="left:273px; top:21px; width:91px; height:17px; ">급여 분류:</caption>
  347. <input id="ipt_deptnm" ref="/root/send/empllicnimage/deptnm" class="input_default" navindex="70" style="left:645px; top:20px; width:143px; height:19px; ">
  348. <script type="javascript" ev:event="xforms-value-changed">
  349. <![CDATA[
  350. misfValidationCheck("02", "", "deptcd,deptnm" );
  351. model.refresh();
  352. ]]>
  353. </script>
  354. </input>
  355. <caption id="caption5" class="search_name" style="left:558px; top:21px; width:91px; height:17px; ">근무 부서:</caption>
  356. <input id="ipt_deptcd" ref="/root/send/empllicnimage/deptcd" class="input_default" visibility="hidden" style="left:645px; top:20px; width:40px; height:19px; ">
  357. <script type="javascript" ev:event="xforms-value-changed">
  358. <![CDATA[
  359. var recv_list = "emplno,emplnm" ;
  360. rpbfValidationCheck("EMPLNO", recv_list);
  361. model.refresh();
  362. ]]>
  363. </script>
  364. </input>
  365. <button id="btn_deptcd" class="icon_search" style="left:790px; top:20px; width:16px; height:16px; ">
  366. <caption/>
  367. <script type="javascript" ev:event="DOMActivate">
  368. <![CDATA[
  369. var recv_list = "deptcd,deptnm";
  370. var instcd = cmb_instcd.value;
  371. rpbfOpenDeptCdHelp(ipt_deptcd,recv_list, instcd, "instcd");
  372. model.refresh();
  373. ]]>
  374. </script>
  375. </button>
  376. </group>
  377. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  378. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">자격면허 이미지 등록</caption>
  379. </group>
  380. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  381. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:3px; width:56px; height:22px; ">
  382. <caption>저장</caption>
  383. <script type="javascript" ev:event="DOMActivate">
  384. <![CDATA[
  385. model.setValue("/root/send/save/imgviewlist", grd_imgviewlist.getUpdateData());
  386. submit("TXRPB17001");
  387. ]]>
  388. </script>
  389. </button>
  390. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  391. </group>
  392. </xhtml:body>
  393. </xhtml:html>