SMLLF02100_LIS사용자등록.xrw 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 :
  4. * 설 명 :
  5. * 설 계 자 :
  6. * 작 성 자 :
  7. * 작 성 일 :
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title>LIS 사용자 관리</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root>
  18. <main>
  19. <userlist>
  20. <userid/>
  21. <usernm/>
  22. <tsectcd/>
  23. <sectcd/>
  24. <deptflagcd/>
  25. <bcolldeptflag/>
  26. <fstrgstrid/>
  27. <fstrgstdt/>
  28. <userfromdd/>
  29. <usertodd/>
  30. <ddkey/>
  31. <phone/>
  32. </userlist>
  33. </main>
  34. <send>
  35. <userid/>
  36. <userdata/>
  37. <codeflag/>
  38. <refflag>2</refflag>
  39. </send>
  40. <init>
  41. </init>
  42. <hidden>
  43. <usernm>
  44. <usernm/>
  45. </usernm>
  46. <userid/>
  47. </hidden>
  48. </root>
  49. </instance>
  50. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  51. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  52. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  53. <script type="javascript" ev:event="xforms-ready">
  54. <![CDATA[
  55. fSetInit();
  56. ]]>
  57. </script>
  58. <submission id="TRLLF02101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/hidden/usernm"/>
  59. <submission id="TRLLF02102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/userlist"/>
  60. <submission id="TXLLF02101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send"/>
  61. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init"/>
  62. </model>
  63. <script type="javascript">
  64. <![CDATA[
  65. function fSetInit(){
  66. model.removeNodeset("/root/main/userlist");
  67. model.setValue("/root/send/codeflag", "0008|0000|9995|"); // 0008 채혈실 구분// 0105 검체목록//특진의 목록//
  68. submit("TRLZZ00101");
  69. model.refresh();
  70. }
  71. function fGetUserName(){
  72. var userid = model.getValue("/root/main/userlist[" + grd_users.row + "]/userid");
  73. if(userid == ""){
  74. return;
  75. }
  76. model.setValue("/root/send/userid", userid);
  77. submit("TRLLF02101");
  78. model.setValue("/root/main/userlist[" + grd_users.row + "]/usernm", model.getValue("/root/hidden/usernm/usernm"));
  79. }
  80. function fGetUserList(){
  81. model.setValue("/root/send/userid", model.getValue("/root/hidden/userid"));
  82. submit("TRLLF02102");
  83. fSetGrid();
  84. //model.refresh();
  85. }
  86. function fSetUserList(){
  87. for(i = 1; i < grd_users.rows; i++){
  88. if(model.getValue("/root/main/userlist[" + i + "]/deptflagcd") == ""){
  89. alert("부서코드를 선택하세요")
  90. grd_users.row = i;
  91. return;
  92. }
  93. if(grd_users.rowStatus(i) == 1 || grd_users.rowStatus(i) == 3){ //신규로 추가된 행이 있다면
  94. //같은 등록번호, 같은 검사계에 해당하는 시작 종료일 비교
  95. var sTodd = model.getValue("/root/main/userlist[" + i + "]/userfromdd");
  96. var sUserid = model.getValue("/root/main/userlist[" + i + "]/userid");
  97. var sTsectcd = model.getValue("/root/main/userlist[" + i + "]/tsectcd");
  98. var vCnt = model.getXPathValue('count(/root/main/userlist[userid = "'+ sUserid +'" and tsectcd = "'+ sTsectcd +'" and usertodd >= "'+ sTodd +'"])');
  99. if(vCnt > 1){
  100. messageBox("변경할 종료일은 변경한 시작일보다 크거나 같을 수 없습니다.\n기준일은 다시 한번 확인하세요", "E");
  101. grd_users.row = i;
  102. return;
  103. }
  104. }
  105. }
  106. model.setValue("/root/send/userdata" , getGridUpdateData(grd_users));
  107. submit("TXLLF02101", false);
  108. grd_users.clearStatus();
  109. fGetUserList();
  110. }
  111. function fInsRowAdd(pRef){
  112. var vRow = grd_users.row;
  113. if(pRef != "C"){ //행추가일 경우
  114. grd_users.addRow();
  115. model.setValue("/root/main/userlist["+grd_users.row+"]/tsectcd" , "-");
  116. model.setValue("/root/main/userlist["+grd_users.row+"]/sectcd" , "-");
  117. model.setValue("/root/main/userlist["+grd_users.row+"]/bcolldeptflag" , "-");
  118. model.setValue("/root/main/userlist["+grd_users.row+"]/userflag" , "-");
  119. model.setValue("/root/main/userlist["+grd_users.row+"]/specdrid" , "-");
  120. model.setValue("/root/main/userlist["+grd_users.row+"]/userfromdd" , getCurrentDate());
  121. model.setValue("/root/main/userlist["+grd_users.row+"]/usertodd" , "99991231");
  122. }else{ //변경일경우
  123. if(grd_users.row == "-1"){ //행을 선택하지 않았을 경우
  124. messageBox("변경할 대상을 선택하세요!", "E");
  125. return;
  126. }else if(grd_users.rowStatus(grd_users.row) == 1 || grd_users.rowStatus(grd_users.row) ==3){ //신규로 추가된 행일 경우
  127. messageBox("신규 추가된 항목은 변경 할 수 없습니다!", "E");
  128. return;
  129. }else if(model.getValue("/root/main/userlist[" + vRow + "]/usertodd") <= getCurrentDate()){
  130. messageBox("이미 종료된 사용자는 변경 할 수 없습니다!", "E");
  131. return;
  132. }else{
  133. model.setValue("/root/main/userlist["+grd_users.row+"]/usertodd" , getCurrentDate());
  134. grd_users.rowStatus(grd_users.row) = 2; //update
  135. var sUserid = model.getValue("/root/main/userlist[" + vRow + "]/userid");
  136. var sUsernm = model.getValue("/root/main/userlist[" + vRow + "]/usernm");
  137. var sTsectcd = model.getValue("/root/main/userlist[" + vRow + "]/tsectcd");
  138. var sSectcd = model.getValue("/root/main/userlist[" + vRow + "]/sectcd");
  139. var sDept = model.getValue("/root/main/userlist[" + vRow + "]/deptflagcd");
  140. var sBcoll = model.getValue("/root/main/userlist[" + vRow + "]/bcolldeptflag");
  141. var sUserflag = model.getValue("/root/main/userlist[" + vRow + "]/userflag");
  142. var sSpecdrid = model.getValue("/root/main/userlist[" + vRow + "]/specdrid");
  143. grd_users.isReadOnly(vRow, grd_users.colRef("usertodd"), vRow, grd_users.colRef("usertodd")) = false; //변경한 내역의 종료일자는 수정 가능하게
  144. grd_users.addRow();
  145. model.setValue("/root/main/userlist["+grd_users.row+"]/userid", sUserid);
  146. model.setValue("/root/main/userlist["+grd_users.row+"]/usernm", sUsernm);
  147. model.setValue("/root/main/userlist["+grd_users.row+"]/tsectcd", sTsectcd);
  148. model.setValue("/root/main/userlist["+grd_users.row+"]/sectcd", sSectcd);
  149. model.setValue("/root/main/userlist["+grd_users.row+"]/deptflagcd", sDept);
  150. model.setValue("/root/main/userlist["+grd_users.row+"]/bcolldeptflag", sBcoll);
  151. model.setValue("/root/main/userlist["+grd_users.row+"]/userflag", sUserflag);
  152. model.setValue("/root/main/userlist["+grd_users.row+"]/specdrid", sSpecdrid);
  153. model.setValue("/root/main/userlist["+grd_users.row+"]/userfromdd"
  154. , getCurrentDate().toDate("YYYYMMDD").getAddDate(1).getDateFormat("YYYYMMDD"));
  155. model.setValue("/root/main/userlist["+grd_users.row+"]/usertodd", "99991231");
  156. }
  157. }
  158. grd_users.bottomRow = grd_users.rows;
  159. }
  160. //조회 구분에 따른 그리드 visible
  161. function fSetGrid(){
  162. var sFlag = model.getValue("/root/send/refflag");
  163. if(sFlag == "1"){ //전체자료
  164. grd_users.colHidden(grd_users.colRef("userfromdd")) = false;
  165. grd_users.colHidden(grd_users.colRef("usertodd")) = false;
  166. btn_change.disabled = false;
  167. }else{ //사용자료
  168. grd_users.colHidden(grd_users.colRef("userfromdd")) = true;
  169. grd_users.colHidden(grd_users.colRef("usertodd")) = true;
  170. btn_change.disabled = true;
  171. }
  172. grd_users.colDisabled(grd_users.colRef("usertodd")) = true;
  173. model.refresh();
  174. }
  175. ]]>
  176. </script>
  177. </xhtml:head>
  178. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  179. <group id="group3" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; font-weight:bold; ">
  180. <line id="line1" class="line_1" style="x1:0px; y1:70px; x2:1194px; y2:70px; "/>
  181. <caption id="caption2" class="tit_2" style="left:5px; top:55px; width:134px; height:14px; ">사용자 목록</caption>
  182. <group id="group1" style="left:0px; top:10px; width:1195px; height:35px; ">
  183. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  184. <line id="line14" class="line_4" style="x1:1115px; y1:6px; x2:1115px; y2:28px; "/>
  185. <caption id="caption1" class="search_name" style="left:901px; top:9px; width:92px; height:17px; ">사용자ID :</caption>
  186. <input id="ipt_userid" ref="/root/hidden/userid" class="input_s_button" navindex="-1" imemode="disabled" inputtype="button" _chartype="upper" style="left:995px; top:8px; width:100px; height:19px; font-weight:bold; ">
  187. <script type="javascript" ev:event="onbuttonclick">
  188. <![CDATA[
  189. fGetUserList();
  190. ]]>
  191. </script>
  192. <script type="javascript" ev:event="onkeypress">
  193. <![CDATA[
  194. if(event.keyCode == "13"){
  195. model.setValue("/root/hidden/userid", ipt_userid.currentText);
  196. fGetUserList();
  197. }
  198. ]]>
  199. </script>
  200. </input>
  201. <button id="btn_search" class="btn1_letter2" style="left:1130px; top:8px; width:56px; height:22px; ">
  202. <caption>조회</caption>
  203. <script type="javascript" ev:event="DOMActivate">
  204. <![CDATA[
  205. fGetUserList();
  206. ]]>
  207. </script>
  208. </button>
  209. <select1 id="radio1" ref="/root/send/refflag" appearance="full" cellspacing="10" cols="2" overflow="visible" style="left:220px; top:11px; width:165px; height:18px; ">
  210. <choices>
  211. <item>
  212. <label>전체자료</label>
  213. <value>1</value>
  214. </item>
  215. <item>
  216. <label>사용자료</label>
  217. <value>2</value>
  218. </item>
  219. </choices>
  220. <script type="javascript" ev:event="xforms-value-changed">
  221. <![CDATA[
  222. model.removeNodeset("/root/main/userlist");
  223. fSetGrid();
  224. model.refresh();
  225. ]]>
  226. </script>
  227. </select1>
  228. <caption id="caption4" class="search_name" style="left:125px; top:11px; width:92px; height:17px; ">조회구분 :</caption>
  229. <output id="output1" style="left:0px; top:5px; width:25px; height:19px; ">
  230. <script type="javascript" ev:event="ondblclick">
  231. <![CDATA[
  232. grd_users.colDisabled(grd_users.colRef("userfromdd")) = false;
  233. grd_users.colDisabled(grd_users.colRef("usertodd")) = false;
  234. grd_users.colDisabled(grd_users.colRef("deptflagcd")) = false;
  235. ]]>
  236. </script>
  237. </output>
  238. </group>
  239. <button id="btn_addrow" class="btn2_letter3" style="left:1086px; top:49px; width:53px; height:19px; ">
  240. <caption>행추가</caption>
  241. <script type="javascript" ev:event="DOMActivate">
  242. <![CDATA[
  243. fInsRowAdd();
  244. ]]>
  245. </script>
  246. </button>
  247. <button id="btn_change" class="btn2_letter3" disabled="true" visibility="visible" style="left:1031px; top:49px; width:53px; height:19px; ">
  248. <caption>변 경</caption>
  249. <script type="javascript" ev:event="DOMActivate">
  250. <![CDATA[
  251. fInsRowAdd("C");
  252. ]]>
  253. </script>
  254. </button>
  255. <button id="button1" class="btn2_letter3" style="left:1141px; top:49px; width:53px; height:19px; ">
  256. <caption>행삭제</caption>
  257. <script type="javascript" ev:event="DOMActivate">
  258. <![CDATA[
  259. if(grd_users.rowStatus(grd_users.row) == 1 || grd_users.rowStatus(grd_users.row) == 3){
  260. grd_users.deleteRow(grd_users.row);
  261. }else{
  262. if(model.getValue("/root/main/userlist[" + grd_users.row + "]/usertodd") <= getCurrentDate()){
  263. messageBox("이미 종료된 사용자 입니다!", "E");
  264. return;
  265. }
  266. grd_users.rowStatus(grd_users.row) = 4; //delete
  267. }
  268. ]]>
  269. </script>
  270. </button>
  271. <datagrid id="grd_users" nodeset="/root/main/userlist" caption="사용자ID^사용자명^시작일자^종료일자^날짜Key^검사계코드^키검사계코드^계코드^부서코드^채혈실구분^최종수정자^최종수정일시^사용자구분^특진의^전화번호" colwidth="90, 80, 95, 95, 80, 100, 90, 80, 120, 110, 80, 140, 80, 80, 80" dataheight="25" defaultrows="1" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:75px; width:1194px; height:647px; ">
  272. <col imemode="disabled" ref="userid" type="inputbutton" _chartype="upper"/>
  273. <col ref="usernm" type="output"/>
  274. <col disabled="true" ref="userfromdd" type="inputdate" visibility="hidden" format="yyyy-mm-dd"/>
  275. <col disabled="true" ref="usertodd" type="inputdate" visibility="hidden" format="yyyy-mm-dd"/>
  276. <col ref="ddkey" type="output" visibility="hidden"/>
  277. <col imemode="disabled" ref="tsectcd" type="input" _chartype="upper"/>
  278. <col ref="key" type="output" visibility="hidden"/>
  279. <col imemode="disabled" ref="sectcd" type="input" _chartype="upper"/>
  280. <col disabled="true" ref="deptflagcd" type="combo">
  281. <choices>
  282. <item>
  283. <label>[L]진단검사의학과</label>
  284. <value>L</value>
  285. </item>
  286. <item>
  287. <label>[N]핵의학체외</label>
  288. <value>N</value>
  289. </item>
  290. </choices>
  291. </col>
  292. <col ref="bcolldeptflag" type="combo">
  293. <choices>
  294. <itemset nodeset="/root/init/LB0008">
  295. <label ref="nm"/>
  296. <value ref="cd"/>
  297. </itemset>
  298. </choices>
  299. </col>
  300. <col ref="fstrgstrid" type="output"/>
  301. <col ref="fstrgstdt" type="output"/>
  302. <col ref="userflag" type="combo">
  303. <choices>
  304. <item>
  305. <label>전문의</label>
  306. <value>1</value>
  307. </item>
  308. <item>
  309. <label>특진의</label>
  310. <value>2</value>
  311. </item>
  312. <item>
  313. <label>U M</label>
  314. <value>3</value>
  315. </item>
  316. <item>
  317. <label>-</label>
  318. <value>-</value>
  319. </item>
  320. </choices>
  321. </col>
  322. <col ref="specdrid" type="combo">
  323. <choices>
  324. <itemset nodeset="/root/init/LB9995">
  325. <label ref="nm"/>
  326. <value ref="cd"/>
  327. </itemset>
  328. </choices>
  329. </col>
  330. <col imemode="disabled" ref="phone" type="input" _chartype="upper"/>
  331. <script type="javascript" ev:event="onbuttonclick">
  332. <![CDATA[
  333. fGetUserName();
  334. ]]>
  335. </script>
  336. <script type="javascript" ev:event="onkeypress">
  337. <![CDATA[
  338. if(grd_users.col = grd_users.colRef("userid")){
  339. if(event.keyCode == "13" || event.keyCode == "9"){
  340. fGetUserName();
  341. }
  342. }
  343. ]]>
  344. </script>
  345. <script type="javascript" ev:event="onaftersort">
  346. <![CDATA[
  347. grd_users.gridToInstance();
  348. ]]>
  349. </script>
  350. </datagrid>
  351. <caption id="caption3" style="left:410px; top:50px; width:618px; height:20px; ">※ 계코드가 P로 되어 있는 사용자는 현장검사 통계에서 현장검사 입력자로 집계 됩니다 Ex) 건진사용자</caption>
  352. </group>
  353. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  354. <line id="line32" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  355. <button id="btn_save" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  356. <caption>저장</caption>
  357. <script type="javascript" ev:event="DOMActivate">
  358. <![CDATA[
  359. fSetUserList();
  360. ]]>
  361. </script>
  362. </button>
  363. <button id="btn_reset" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  364. <caption>초기화</caption>
  365. <script type="javascript" ev:event="DOMActivate">
  366. <![CDATA[
  367. window.reload();
  368. ]]>
  369. </script>
  370. </button>
  371. </group>
  372. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  373. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">LIS 사용자 관리</caption>
  374. </group>
  375. </xhtml:body>
  376. </xhtml:html>