SMRSO22400_의료폐기물전용용기코드관리(시설팀)(경북대).xrw 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet ype="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:my="http://www.comsquare.co.kr/example" 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" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>의료폐기물 전용용기 코드 관리(시설팀)</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <code>
  11. <codelist>
  12. <instcd/>
  13. <goodcd/>
  14. <goodnm/>
  15. <goodspec/>
  16. <deliveunit/>
  17. <useyn/>
  18. <cmt/>
  19. </codelist>
  20. </code>
  21. <good>
  22. <gooddetail/>
  23. </good>
  24. <dupcheck>
  25. <dupyn/>
  26. </dupcheck>
  27. </main>
  28. <send>
  29. <search>
  30. <instcd/>
  31. </search>
  32. <save/>
  33. </send>
  34. <init>
  35. </init>
  36. <hidden/>
  37. <temp>
  38. </temp>
  39. <popgood>
  40. <instcd/>
  41. <wareflag/>
  42. <delivedd/>
  43. <basedd/>
  44. <selectyn/>
  45. <goodcd/>
  46. <goodlist>
  47. <goodcd/>
  48. </goodlist>
  49. </popgood>
  50. </root>
  51. </instance>
  52. <script type="javascript" ev:event="xforms-ready">
  53. <![CDATA[
  54. //화면 Control을 초기화한다
  55. misfGridInit(grd_code);
  56. misfMsterDetailSet(grd_code, null, "TRRSO22401" ,"Y");
  57. //misfComboComCdListMulti("Z0007","cmb_instcd"); //기관코드
  58. misfComboInstCdListMulti("cmb_instcd",getCurrentDate(),"","N");
  59. model.setValue("/root/send/search/instcd", getUserInfo("dutplceinstcd")); //기관 설정
  60. model.refresh();
  61. //조회
  62. btn_search.dispatch("DOMActivate");
  63. ]]>
  64. </script>
  65. <submission id="TRRSO22401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/main/code"/>
  66. <submission id="TRRSO20104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/popgood" resultref="/root/main/good"/>
  67. <submission id="TXRSO22401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/save/send" resultref="/root/temp">"</submission>
  68. </model>
  69. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  70. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  72. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  73. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  74. <script type="javascript" src="../../../mis/miscommonweb/js/RSZ001.js"/>
  75. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  76. <script type="javascript">
  77. <![CDATA[
  78. //물품코드의 상세내역과 현재고를 조회하여 Grid에 보여줌
  79. function fGetGoodDetail() {
  80. for(var k = 1; k <= instance1.selectNodes("/root/popgood/goodlist").length; k++) {
  81. var bDup = false; //물품코드가 중복되었는지를 확인하기 위한 변수
  82. //popup에서 선택한 물품코드가 이미 grid에 존재하고 있는지를 check하여 이미 존재하면 message를 보여주고 return한다.
  83. for(var i = 1; i < grd_code.rows; i++) {
  84. if( grd_code.valueMatrix(i, grd_code.colRef("goodcd")) == model.getValue("/root/popgood/goodlist[" + k + "]/goodcd") ) {
  85. messageBox("물품코드가 중복되었습니다. [" + grd_code.valueMatrix(i, grd_code.colRef("goodcd")) + "] ", "E999", ""); //E: 경고
  86. bDup = true;
  87. continue;
  88. }
  89. }
  90. if( bDup == false ) {
  91. // node 삭제
  92. //model.removenode("/root/main/gooddetail");
  93. //TRRSO20104를 위해 물품코드를 goodcd에 넣는다.
  94. model.setValue( "/root/popgood/goodcd", model.getValue("/root/popgood/goodlist[" + k + "]/goodcd") );
  95. if( submit("TRRSO20104") ) {
  96. //마직막 행에 물품코드가 등록되어 있으면 그 행에 바로 적용하고, 물품코드가 없으면 한 행을 추가한 뒤 적용한다.
  97. if( grd_code.valueMatrix(grd_code.rows-1, grd_code.colRef("goodcd")) != "" ) {
  98. btn_rowinsert.dispatch("DOMActivate");
  99. }
  100. model.setValue(grd_code.nodeset + "[" + (grd_code.rows-1) + "]/goodcd", model.getValue("/root/main/good/gooddetail/goodcd"));
  101. model.setValue(grd_code.nodeset + "[" + (grd_code.rows-1) + "]/goodnm", model.getValue("/root/main/good/gooddetail/goodnm"));
  102. model.setValue(grd_code.nodeset + "[" + (grd_code.rows-1) + "]/goodspec", model.getValue("/root/main/good/gooddetail/goodspec"));
  103. model.setValue(grd_code.nodeset + "[" + (grd_code.rows-1) + "]/deliveunit", model.getValue("/root/main/good/gooddetail/deliveunit"));
  104. model.setValue(grd_code.nodeset + "[" + (grd_code.rows-1) + "]/useyn", "Y");
  105. }
  106. } // if( bDup ...) end
  107. } // for(var k ...) end
  108. grd_code.refresh();
  109. }
  110. ]]>
  111. </script>
  112. </xhtml:head>
  113. <xhtml:body pagewidth="1220px" pageheight="770px" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  114. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  115. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:318px; height:14px; ">의료폐기물 전용용기 코드관리(시설팀)</caption>
  116. </group>
  117. <group id="group1" style="left:0px; top:12; width:1195px; height:27px; ">
  118. <line id="line17" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25px; "/>
  119. <button id="btn_save" class="btn4_letter2" navindex="8" style="left:1138px; top:3px; width:56px; height:22px; ">
  120. <caption>저장</caption>
  121. <script type="javascript" ev:event="DOMActivate">
  122. <![CDATA[
  123. if(grd_code.rows == 1) return;
  124. //alert(grd_code.getUpdateData());
  125. //물품코드를 입력하지 않은 Row가 있는지 확인한다.
  126. for(var i = 1; i < grd_code.rows; i++) {
  127. if( grd_code.valueMatrix(i, grd_code.colRef("goodcd")).getTrim() == "" ) {
  128. messageBox("물품코드가 선택되지 않았습니다. \n\n먼저 물품코드를 선택하십시요.", "E999", ""); //E: 경고
  129. model.setFocus("grd_code");
  130. grd_code.row = i;
  131. return;
  132. }
  133. }
  134. // misfSave : submit 후, grid.clearStatus() 함
  135. if( misfSave("TXRSO22401") ) {
  136. btn_search.dispatch("DOMActivate");
  137. messageBox("저장되었습니다.", "I999", "");
  138. }
  139. ]]>
  140. </script>
  141. </button>
  142. </group>
  143. <group id="group3" scroll="auto" style="left:0px; top:40px; width:1195px; height:710px; ">
  144. <group id="grp_search" style="left:0px; top:9px; width:1195px; height:48px; vertical-align:top; ">
  145. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:40px; background-color:#fffbf2; border-color:#ffd799; "/>
  146. <button id="btn_search" class="btn1_letter2" navindex="7" style="left:315px; top:10px; width:56px; height:22px; ">
  147. <caption>조회</caption>
  148. <script type="javascript" ev:event="DOMActivate">
  149. <![CDATA[
  150. //입력모드에서 다시 조회버튼 click 시 Grid초기화 먼저 실행토록 추가
  151. misfGridInit(grd_code);
  152. misfMsterDetailRetrieve();
  153. ]]>
  154. </script>
  155. </button>
  156. <select1 id="cmb_instcd" ref="/root/send/search/instcd" class="combo_default" disabled="true" navindex="1" appearance="minimal" style="left:137px; top:10px; width:136px; height:19px; ">
  157. <choices>
  158. <itemset nodeset="/root/main/init">
  159. <label ref="cnstnm"/>
  160. <value ref="cnstcd"/>
  161. </itemset>
  162. </choices>
  163. </select1>
  164. <caption id="cap_instcd" class="search_name" style="left:58px; top:10px; width:82px; height:17px; ">기관코드</caption>
  165. <line id="line30" class="line_4" style="x1:295px; y1:5px; x2:295px; y2:35px; "/>
  166. </group>
  167. <line id="line1" class="line_1" style="x1:0px; y1:78px; x2:1195px; y2:78px; "/>
  168. <caption id="caption1" class="tit_2" style="left:0px; top:63px; width:180px; height:14px; ">코드 목록</caption>
  169. <button id="btn_rowinsert" class="btn2_letter3" navindex="20" style="left:1072px; top:57px; width:53px; height:19px; ">
  170. <caption>행추가</caption>
  171. <script type="javascript" ev:event="DOMActivate">
  172. <![CDATA[
  173. //misfGridIUD : grd_code.addRow() 한 후, 조회조건을 grd_code 의 해당 컬럼에 setting하고, pGrid_id.refresh() 한다.
  174. misfGridIUD(grd_code, "A");
  175. ]]>
  176. </script>
  177. </button>
  178. <button id="btn_rowdel" class="btn2_letter3" navindex="21" style="left:1128px; top:57px; width:53px; height:19px; ">
  179. <caption>행삭제</caption>
  180. <script type="javascript" ev:event="DOMActivate">
  181. <![CDATA[
  182. /*
  183. - 0 : read : 조회시
  184. - 1 : insert : 행추가시
  185. - 2 : update : 조회한 것을 수정시
  186. - 3 : insert & new : 행추가한 것을 수정시
  187. - 4 : delete
  188. - 5 : delete & insert
  189. - 6 : delete & update
  190. */
  191. var status = grd_code.rowStatus(grd_code.row) ;
  192. if(status == 0) {
  193. grd_code.addStatus(grd_code.row, "delete");
  194. }else if(status == 1) {
  195. grd_code.deleteRow(grd_code.row);
  196. }else if(status == 2) {
  197. grd_code.addStatus(grd_code.row, "delete");
  198. }else if(status == 3) {
  199. grd_code.deleteRow(grd_code.row);
  200. }else if(status == 4) {
  201. grd_code.removeStatus(grd_code.row, "delete");
  202. }else if(status == 5) { // insert된 data는 삭제시 위에서 addStatus("delete")하지 않고, 바로 deleteRow했기 때문에 5의 경우는 발생하지 않음.
  203. grd_code.removeStatus(grd_code.row, "delete");
  204. }else if(status == 6) {
  205. grd_code.removeStatus(grd_code.row, "delete");
  206. }
  207. //misfGridIUD(grd_code, "D");
  208. //grd_code.deleteRow(grd_code.row);
  209. ]]>
  210. </script>
  211. </button>
  212. <datagrid id="grd_code" nodeset="/root/main/code/codelist" caption="물품코드^물품명^규격^불출단위^사용여부^비고^기관코드" colsep="^" colwidth="103, 278, 187, 71, 71, 440, 91" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:83px; width:1195px; height:597px; ">
  213. <col ref="goodcd" type="inputbutton" style="text-align:center; "/>
  214. <col ref="goodnm"/>
  215. <col ref="goodspec"/>
  216. <col ref="deliveunit" style="text-align:center; "/>
  217. <col ref="useyn" type="combo" style="text-align:center; ">
  218. <choices>
  219. <item>
  220. <label>Y</label>
  221. <value>Y</value>
  222. </item>
  223. <item>
  224. <label>N</label>
  225. <value>N</value>
  226. </item>
  227. </choices>
  228. </col>
  229. <col ref="cmt" type="input"/>
  230. <col ref="instcd" visibility="hidden" style="left:1160px; top:23px; width:61px; height:23px; "/>
  231. <script type="javascript" ev:event="onbuttonclick">
  232. <![CDATA[
  233. //조회된 data 의 경우에는 물품코드를 변경할 수 없다.
  234. if(grd_code.rowStatus(grd_code.row) == 0 || grd_code.rowStatus(grd_code.row) == 2) { //0:read, 1:insert, 2:update, 3:update after insert
  235. //alert("onentercell");
  236. return;
  237. }
  238. //popup 에 전달할 parameter를 setting한다.
  239. model.setValue("/root/popgood/instcd", cmb_instcd.value);
  240. model.setValue("/root/popgood/wareflag", "");
  241. model.setValue("/root/popgood/delivedd", getCurrentDate() ); //향후 시점재고 조회를 위해 출고일자를 set
  242. //2012.09.17 박준범 - SPRSO20700.xrw 에서 사용하기 위해 basedd를 추가 함
  243. model.setValue("/root/popgood/basedd", getCurrentDate() ); //물품코드 popup 에서 출고일자 기준으로 물품 Master 조회하기 위해서
  244. //selectyn(popup 창에서 선택버튼을 click했는지 아닌지를 나타내는 구분값) 을 초기화함
  245. model.setValue("/root/popgood/selectyn", "");
  246. //popup 프로그램 호출
  247. //window.load("SPRSO20300.xrw", "modal","", "", "/root/popgood","/root/popdata"); //단일선택창
  248. window.load("SPRSO20700.xrw", "modal","", "", "/root/popgood","/root/popdata"); //다중선택창
  249. //popup에서 특정 물품코드를 선택한 경우, 해당 물품코드에 대한 상세 사항을 조회해서 그리드에 보여준다.
  250. if(model.getValue("/root/popgood/selectyn") == "Y") { //popup 창에서 선택버튼을 click했는지 아닌지를 나타내는 구분값
  251. fGetGoodDetail(); //물품코드의 상세내역과 현재고를 조회하여 Grid에 보여줌
  252. //출고량을 입력하도록 focus이동
  253. grd_code.col = grd_code.colRef("useyn");
  254. }
  255. ]]>
  256. </script>
  257. <script type="javascript" ev:event="onentercell">
  258. <![CDATA[
  259. //조회된 data 의 경우에는 물품코드를 변경할 수 없다.
  260. if(grd_code.colAttribute(grd_code.col,"ref") == "goodcd") { //물품코드
  261. /* 2012.03.20 박준범 - 물품코드를 popup에서만 등록토록 하기 위해서 아래 comment처리하고 무조건 return처리함
  262. if(grd_code.rowStatus(grd_code.row) == 0 || grd_code.rowStatus(grd_code.row) == 2) { //0:read, 1:insert, 2:update, 3:update after insert
  263. grd_code.col = 2; //focus를 강제로 옮김
  264. return;
  265. }
  266. */
  267. grd_code.col = 2; //focus를 강제로 옮김
  268. return;
  269. }
  270. ]]>
  271. </script>
  272. <script type="javascript" ev:event="ondblclick">
  273. <![CDATA[
  274. //조회한 data 의 경우에는 물품코드를 변경할 수 없도록 한다.
  275. if(grd_code.colAttribute(grd_code.col,"ref") == "goodcd") { //물품코드
  276. /* 2012.03.20 박준범 - 물품코드를 popup에서만 등록토록 하기 위해서 아래 comment처리하고 무조건 return처리함
  277. if(grd_code.rowStatus(grd_code.row) == 0 || grd_code.rowStatus(grd_code.row) == 2) { //0:read, 1:insert, 2:update, 3:update after insert
  278. grd_code.col = 2; //focus를 강제로 옮김
  279. return;
  280. }
  281. */
  282. grd_code.col = 2; //focus를 강제로 옮김
  283. return;
  284. }
  285. ]]>
  286. </script>
  287. </datagrid>
  288. <caption id="caption2" style="left:5px; top:685px; width:980px; height:20px; color:#ff0000; ">※ 사용중이던 코드를 청구하지 못하게 막으려면, 사용여부를 "N" 으로 변경후 저장하시면 됩니다. 코드를 함부로 삭제하는 경우, 청구출급증 출력시 누락되므로 주의하시기 바랍니다.</caption>
  289. </group>
  290. </xhtml:body>
  291. </xhtml:html>