SMPIB02400_이식환자등록및조회.xrw 62 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="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. <script type="javascript">
  5. <![CDATA[
  6. // 장기이식탭 - 초기화
  7. function fInitialize1()
  8. {
  9. // 1. 조회데이터 초기화
  10. model.resetInstanceNode("/root/send/data1");
  11. model.setValue("/root/send/data1/allyn","Y");
  12. model.setValue("/root/send/data1/patflag","1");
  13. model.setValue("/root/send/data1/kind", "-");
  14. model.setValue("/root/send/data1/refundyn", "");
  15. model.setValue("/root/send/data1/receyn", "");
  16. // 2. 입력데이터 초기화
  17. btn_clear.dispatch("DOMActivate");
  18. // 3. 장기이식환자내역 초기화
  19. model.removenode("/root/main/list1");
  20. model.makeNode("/root/main/list1");
  21. grd_orgtrnptlist.refresh();
  22. }
  23. // 골수이식탭 - 초기화
  24. function fInitialize2()
  25. {
  26. // 1. 조회데이터 초기화
  27. model.resetInstanceNode("/root/send/data2");
  28. model.setValue("/root/send/data2/allyn","Y");
  29. model.setValue("/root/send/data2/patflag","1");
  30. model.setValue("/root/send/data2/type", "-");
  31. // 2. 입력데이터 초기화
  32. btn_clear2.dispatch("DOMActivate");
  33. // 3. 골수이식환자내역 초기화
  34. model.removenode("/root/main/list2");
  35. model.makeNode("/root/main/list2");
  36. grd_bonetrnptlist.refresh();
  37. }
  38. // 장기이식탭 - 입력데이터의 유효성 검사
  39. function fCheckVariable1() {
  40. var rsvpid = model.getValue("/root/main/item1/trnpt/rsvpid");
  41. var rsvpatnm = model.getValue("/root/main/item1/trnpt/rsvpatnm");
  42. var rsvrgstno = model.getValue("/root/main/item1/trnpt/rsvrgstno");
  43. if (rsvpid == "" || rsvpatnm == "" || rsvrgstno == "")
  44. {
  45. messageBox("수혜자의 등록번호, 성명, 주민번호를 입력하십시오","E999","");
  46. return false;
  47. }
  48. var trnptdd = model.getValue("/root/main/item1/trnpt/trnptdd");
  49. if (trnptdd == "" || trnptdd.length != 8)
  50. {
  51. messageBox("이식일자를 입력하십시오","E999","");
  52. return false;
  53. }
  54. var trnptkind = model.getValue("/root/main/item1/trnpt/trnptkind");
  55. if (trnptkind == "" || trnptkind == "-")
  56. {
  57. messageBox("이식종류를 선택하십시오","E999","");
  58. return false;
  59. }
  60. var givinoutflag = model.getValue("/root/main/item1/trnpt/givinoutflag");
  61. if (givinoutflag == "1") {
  62. var givpid = model.getValue("/root/main/item1/trnpt/givpid");
  63. var givpatnm = model.getValue("/root/main/item1/trnpt/givpatnm");
  64. var givrgstno = model.getValue("/root/main/item1/trnpt/givrgstno");
  65. if (givpid == "" || givpatnm == "" || givrgstno == "")
  66. {
  67. messageBox("원내 공여자의 등록번호, 성명, 주민번호를 입력하십시오","E999","");
  68. return false;
  69. }
  70. } else if (givinoutflag == "2") {
  71. var givhospnm = model.getValue("/root/main/item1/trnpt/givhospnm");
  72. var givpatnm = model.getValue("/root/main/item1/trnpt/givpatnm");
  73. var givrgstno = model.getValue("/root/main/item1/trnpt/givrgstno");
  74. if (givhospnm == "")
  75. {
  76. messageBox("원외 공여자의 병원명을 입력하십시오","E999","");
  77. return false;
  78. }
  79. /*
  80. if (givrgstno != "") {
  81. if (!isResidentNo(givrgstno))
  82. {
  83. messageBox("공여자 주민번호를 올바르게 입력하십시오","E999","");
  84. return false;
  85. }
  86. }
  87. */
  88. }
  89. return true;
  90. }
  91. // 골수이식탭 - 입력데이터의 유효성 검사
  92. function fCheckVariable2() {
  93. var rsvpid = model.getValue("/root/main/item2/trnpt/rsvpid");
  94. var rsvpatnm = model.getValue("/root/main/item2/trnpt/rsvpatnm");
  95. var rsvrgstno = model.getValue("/root/main/item2/trnpt/rsvrgstno");
  96. if (rsvpid == "" || rsvpatnm == "" || rsvrgstno == "")
  97. {
  98. messageBox("수혜자의 등록번호, 성명, 주민번호를 입력하십시오","E999","");
  99. return false;
  100. }
  101. var trnptdd = model.getValue("/root/main/item2/trnpt/trnptdd");
  102. if (trnptdd == "" || trnptdd.length != 8)
  103. {
  104. messageBox("이식일자를 입력하십시오","E999","");
  105. return false;
  106. }
  107. var trnpttype = model.getValue("/root/main/item2/trnpt/trnpttype");
  108. if (trnpttype == "" || trnpttype == "-")
  109. {
  110. messageBox("이식형태를 선택하십시오","E999","");
  111. return false;
  112. }
  113. return true;
  114. }
  115. ]]>
  116. </script>
  117. <xhtml:head>
  118. <xhtml:title>이식환자 등록 및 조회</xhtml:title>
  119. <model id="model1">
  120. <instance id="instance1">
  121. <root xmlns="">
  122. <send>
  123. <data1>
  124. <allyn/>
  125. <patflag/>
  126. <pid/>
  127. <fromdd/>
  128. <todd/>
  129. <kind/>
  130. <refundyn/>
  131. <receyn/>
  132. </data1>
  133. <data2>
  134. <allyn/>
  135. <patflag/>
  136. <pid/>
  137. <fromdd/>
  138. <todd/>
  139. <type/>
  140. </data2>
  141. <data3>
  142. <pid/>
  143. </data3>
  144. </send>
  145. <main>
  146. <list1>
  147. <org/>
  148. </list1>
  149. <list2>
  150. <bone/>
  151. </list2>
  152. <patinfo>
  153. <patinfolist/>
  154. </patinfo>
  155. <item1>
  156. <trnpt>
  157. <rsvpid/>
  158. <rsvpatnm/>
  159. <rsvrgstno/>
  160. <trnptdd/>
  161. <trnptkind/>
  162. <givinoutflag/>
  163. <givhospnm/>
  164. <givpid/>
  165. <givpatnm/>
  166. <givrgstno/>
  167. <remfact/>
  168. </trnpt>
  169. </item1>
  170. <item2>
  171. <trnpt>
  172. <rsvpid/>
  173. <rsvpatnm/>
  174. <rsvrgstno/>
  175. <trnptdd/>
  176. <trnpttype/>
  177. <remfact/>
  178. </trnpt>
  179. </item2>
  180. </main>
  181. <init>
  182. <A0224list>
  183. <A0224/>
  184. </A0224list>
  185. <A0158list>
  186. <A0158/>
  187. </A0158list>
  188. </init>
  189. <hidden>
  190. <sppmc02500>
  191. <cond>
  192. <!-- SPPMC02500_환자조회 화면으로 검색조건을 보내는 경로임 -->
  193. <srchcond/>
  194. <pid/>
  195. <hngnm/>
  196. <rrgstno1/>
  197. <rrgstno2/>
  198. </cond>
  199. </sppmc02500>
  200. <appflag/>
  201. <currow/>
  202. <appflag2/>
  203. <currow2/>
  204. <list1>
  205. <org/>
  206. </list1>
  207. <list2>
  208. <bone/>
  209. </list2>
  210. </hidden>
  211. </root>
  212. </instance>
  213. <script type="javascript" ev:event="xforms-ready">
  214. <![CDATA[
  215. // 공통코드 조회 (이식종류, 이식형태)
  216. zbcfGetCodeList(new Array("A0224", "A0158"), new Array("/root/init/A0224list", "/root/init/A0158list"));
  217. // 이식종류 첫 항에 '전체' 삽입
  218. model.makeValue("/root/init/A0224list/A0224["+ 1 +"]/cdnm","전체");
  219. model.makeValue("/root/init/A0224list/A0224["+ 1 +"]/cdid","-");
  220. // 이식형태 첫 항에 '전체' 삽입
  221. model.makeValue("/root/init/A0158list/A0158["+ 1 +"]/cdnm","전체");
  222. model.makeValue("/root/init/A0158list/A0158["+ 1 +"]/cdid","-");
  223. // 1-1. 장기이식 탭 - 초기화
  224. fInitialize1();
  225. // 1-2. 골수이식 탭 - 초기화
  226. fInitialize2();
  227. // 2-1. 장기이식환자 내역 자동조회
  228. model.removenode("/root/main/list1");
  229. model.makeNode("/root/main/list1");
  230. grd_orgtrnptlist.refresh();
  231. //submit("TRPIB02401");
  232. // 2-2. 골수이식환자 내역 자동조회
  233. model.removenode("/root/main/list2");
  234. model.makeNode("/root/main/list2");
  235. grd_bonetrnptlist.refresh();
  236. //submit("TRPIB02402");
  237. model.refresh();
  238. ]]>
  239. </script>
  240. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  241. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  242. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  243. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  244. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  245. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  246. <submission id="TRPIB02401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data1" resultref="/root/main/list1"/>
  247. <submission id="TXPIB02401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/hidden" replace="instance" resultref="/root/temp"/>
  248. <submission id="TRPIB02403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data3" resultref="/root/main/patinfo"/>
  249. <submission id="TRPIB02402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data2" resultref="/root/main/list2"/>
  250. <submission id="TXPIB02402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/hidden" replace="instance" resultref="/root/temp"/>
  251. </model>
  252. </xhtml:head>
  253. <xhtml:body guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  254. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  255. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">이식환자 등록 및 조회</caption>
  256. </group>
  257. <group id="group3" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  258. <button id="btn_sw1" class="btn_sw" group="tab" selected="true" style="left:5px; top:5px; width:105px; height:22px; font-size:8pt; ">
  259. <caption>장기이식</caption>
  260. <script type="javascript" ev:event="onclick">
  261. <![CDATA[
  262. model.toggle("case1");
  263. ]]>
  264. </script>
  265. </button>
  266. <button id="btn_sw2" class="btn_sw" group="tab" style="left:110px; top:5px; width:105px; height:22px; font-size:8pt; ">
  267. <caption>골수이식</caption>
  268. <script type="javascript" ev:event="onclick">
  269. <![CDATA[
  270. model.toggle("case2");
  271. ]]>
  272. </script>
  273. </button>
  274. <switch id="switch1" style="left:5px; top:27px; width:1189px; height:712px; border-style:none; ">
  275. <case id="case1" selected="true">
  276. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1187px; height:40px; "/>
  277. <caption id="caption21" class="search_name" style="left:11px; top:11px; width:86px; height:17px; ">환자구분 :</caption>
  278. <button id="btn_search" class="btn1_letter2" style="left:1122px; top:10px; width:56px; height:22px; ">
  279. <caption>조회</caption>
  280. <script type="javascript" ev:event="DOMActivate">
  281. <![CDATA[
  282. // 1. 장기이식환자내역 초기화
  283. model.removenode("/root/main/list1");
  284. model.makeNode("/root/main/list1");
  285. grd_orgtrnptlist.refresh();
  286. //grd_orgtrnptlist.rebuild();
  287. // 2. 조회조건에 따른 조회임을 알려줌
  288. model.setValue("/root/send/data1/allyn", "N");
  289. // 3. 조회
  290. submit("TRPIB02401");
  291. for (var i = grd_orgtrnptlist.fixedRows; i < grd_orgtrnptlist.rows; i++) {
  292. //var givflag = model.getValue("/root/main/list1/org[" + i +"]/givinoutflag")
  293. var givflag = grd_orgtrnptlist.valueMatrix(i, grd_orgtrnptlist.colRef("givinoutflag"))
  294. if (givflag == "2"){
  295. grd_orgtrnptlist.isreadonly(i,grd_orgtrnptlist.colRef("refundyn"),i,grd_orgtrnptlist.colRef("refundyn")) = true;
  296. grd_orgtrnptlist.isreadonly(i,grd_orgtrnptlist.colRef("receyn"),i,grd_orgtrnptlist.colRef("receyn")) = true;
  297. }
  298. }
  299. ]]>
  300. </script>
  301. </button>
  302. <line id="line18" class="line_4" style="x1:1106px; y1:7px; x2:1106px; y2:35px; border-left-style:solid; "/>
  303. <caption id="caption11" class="search_name" style="left:265px; top:11px; width:98px; height:17px; ">환자번호 :</caption>
  304. <caption id="caption13" class="search_name" style="left:755px; top:11px; width:98px; height:17px; ">이식종류 :</caption>
  305. <select1 id="rdo_patflag" ref="/root/send/data1/patflag" appearance="full" cellspacing="5" cols="2" overflow="visible" style="left:98px; top:11px; width:127px; height:19px; ">
  306. <choices>
  307. <item>
  308. <label>수혜자</label>
  309. <value>1</value>
  310. </item>
  311. <item>
  312. <label>공여자</label>
  313. <value>2</value>
  314. </item>
  315. </choices>
  316. </select1>
  317. <select1 id="cmb_kind" ref="/root/send/data1/kind" class="input_search" appearance="minimal" style="left:848px; top:11px; width:82px; height:19px; ">
  318. <choices>
  319. <itemset nodeset="/root/init/A0224list/A0224">
  320. <label ref="cdnm"/>
  321. <value ref="cdid"/>
  322. </itemset>
  323. </choices>
  324. </select1>
  325. <input id="ipt_pid" ref="/root/send/data1/pid" class="input_search" inputtype="button" maxlength="10" format="9999999999" style="left:357px; top:11px; width:83px; height:19px; ">
  326. <script type="javascript" ev:event="onbuttonclick">
  327. <![CDATA[
  328. var pid = model.getValue("/root/send/data1/pid");
  329. if (pid) {
  330. model.setValue("/root/hidden/sppmc02500/cond/srchcond", "1"); // 검색조건 : 등록번호로 설정
  331. model.setValue("/root/hidden/sppmc02500/cond/pid", pid);
  332. } else {
  333. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  334. }
  335. modal("SPPMC02500", 1,150, 150, "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", "");
  336. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  337. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  338. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  339. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  340. model.setValue("/root/send/data1/pid", srch_pid);
  341. }
  342. model.refresh();
  343. ]]>
  344. </script>
  345. </input>
  346. <caption id="caption8" class="search_name" style="left:465px; top:11px; width:98px; height:17px; ">이식기간 :</caption>
  347. <input id="ipt_fromdd" ref="/root/send/data1/fromdd" class="input_search" inputtype="date" format="yyyy-mm-dd" style="left:557px; top:11px; width:85px; height:19px; "/>
  348. <input id="ipt_todd" ref="/root/send/data1/todd" class="input_search" inputtype="date" format="yyyy-mm-dd" style="left:645px; top:11px; width:85px; height:19px; "/>
  349. <caption id="caption22" class="tit_2" style="left:5px; top:52px; width:126px; height:14px; ">장기이식 환자정보</caption>
  350. <line id="line19" class="line_1" style="x1:0px; y1:67px; x2:1187px; y2:67px; "/>
  351. <caption id="caption23" class="cell_1" style="left:0px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자등록번호</caption>
  352. <caption id="caption34" class="cell_1" style="left:247px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자명</caption>
  353. <caption id="caption1" class="cell_1" style="left:484px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자주민번호</caption>
  354. <caption id="caption2" class="cell_1" style="left:741px; top:71px; width:100px; height:23px; vertical-align:middle; ">이식일자</caption>
  355. <caption id="caption3" class="cell_1" style="left:961px; top:71px; width:100px; height:23px; vertical-align:middle; ">이식종류</caption>
  356. <caption id="caption4" class="cell_1" style="left:484px; top:96px; width:100px; height:23px; vertical-align:middle; ">공여자등록번호</caption>
  357. <line id="line17" class="line_2" style="x1:0px; y1:95px; x2:1187px; y2:95px; "/>
  358. <caption id="caption5" class="cell_1" style="left:961px; top:96px; width:100px; height:23px; vertical-align:middle; ">공여자주민번호</caption>
  359. <caption id="caption7" class="cell_1" style="left:247px; top:96px; width:100px; height:23px; vertical-align:middle; ">공여발생기관명</caption>
  360. <caption id="caption9" class="cell_1" style="left:741px; top:96px; width:100px; height:23px; vertical-align:middle; ">공여자명</caption>
  361. <caption id="caption10" class="cell_1" style="left:0px; top:121px; width:100px; height:23px; vertical-align:middle; ">비고</caption>
  362. <line id="line1" class="line_2" style="x1:0px; y1:120px; x2:1187px; y2:120px; "/>
  363. <line id="line24" class="line_3" style="x1:0px; y1:144px; x2:1187px; y2:144px; "/>
  364. <caption id="caption12" class="tit_2" style="left:6px; top:160px; width:126px; height:14px; ">장기이식 환자내역</caption>
  365. <line id="line2" class="line_1" style="x1:0px; y1:175px; x2:1186px; y2:175px; "/>
  366. <datagrid id="grd_orgtrnptlist" nodeset="/root/main/list1/org" caption="수혜자^수혜자^수혜자^수혜자^이식종류^공여자^공여자^공여자^공여자^등록자^환불대상^환불대상^환불대상^환불수납^환불수납^환불수납^비고^seqno|이식일^등록번호^수혜자명^주민번호^이식종류^발생구분^등록번호(병원)^기증자명^주민번호^등록자^환불^등록자^등록일시^수납^수납자^수납일시^비고^seqno" colsep="^" colwidth="75, 75, 65, 95, 60, 70, 95, 65, 95, 65, 35, 59, 75, 35, 60, 76, 278, 100" explorerbar="sortshowmove" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:0px; top:180px; width:1186px; height:485px; ">
  367. <col ref="trnptdd" format="yyyy-mm-dd" style="text-align:center; "/>
  368. <col ref="rsvpid" style="text-align:center; "/>
  369. <col ref="rsvpatnm" style="text-align:center; "/>
  370. <col ref="rsvrgstno" format="999999-9999999" style="text-align:center; "/>
  371. <col disabled="true" ref="trnptkind" type="combo" style="text-align:center; ">
  372. <choices>
  373. <itemset nodeset="/root/init/A0224list/A0224">
  374. <label ref="cdnm"/>
  375. <value ref="cdid"/>
  376. </itemset>
  377. </choices>
  378. </col>
  379. <col disabled="true" ref="givinoutflag" type="combo" style="text-align:center; ">
  380. <choices>
  381. <item>
  382. <label>원내</label>
  383. <value>1</value>
  384. </item>
  385. <item>
  386. <label>원외</label>
  387. <value>2</value>
  388. </item>
  389. </choices>
  390. </col>
  391. <col ref="givpid" style="text-align:center; "/>
  392. <col ref="givpatnm" style="text-align:center; "/>
  393. <col ref="givrgstno" format="999999-9999999" style="text-align:center; "/>
  394. <col ref="lastupdtrid" style="text-align:center; "/>
  395. <col checkvalue="Y,N" ref="refundyn" type="checkbox"/>
  396. <col ref="refundrid" style="text-align:center; "/>
  397. <col ref="refunddt" format="yyyy-mm-dd" style="text-align:center; "/>
  398. <col checkvalue="Y,N" ref="receyn" type="checkbox"/>
  399. <col ref="receid" style="text-align:center; "/>
  400. <col ref="recedt" format="yyyy-mm-dd" style="text-align:center; "/>
  401. <col ref="remfact"/>
  402. <col ref="seqno" visibility="hidden"/>
  403. <script type="javascript" ev:event="ondblclick">
  404. <![CDATA[
  405. if(grd_orgtrnptlist.isCell(event.target) && grd_orgtrnptlist.row >= grd_orgtrnptlist.fixedRows) {
  406. var row = grd_orgtrnptlist.row ;
  407. if (grd_orgtrnptlist.rowstatus(row) != 1 && grd_orgtrnptlist.rowstatus(row) != 3 && grd_orgtrnptlist.rowstatus(row) != 4) {
  408. // 0. 입력데이터 초기화
  409. btn_clear.dispatch("DOMActivate");
  410. // 1. 데이터 전달
  411. model.setValue("/root/main/item1/trnpt/rsvpid", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvpid")));
  412. model.setValue("/root/main/item1/trnpt/rsvpatnm", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvpatnm")));
  413. model.setValue("/root/main/item1/trnpt/rsvrgstno", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvrgstno")));
  414. model.setValue("/root/main/item1/trnpt/trnptdd", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("trnptdd")));
  415. model.setValue("/root/main/item1/trnpt/trnptkind", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("trnptkind")));
  416. var givinoutflag = grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givinoutflag"));
  417. model.setValue("/root/main/item1/trnpt/givinoutflag", givinoutflag);
  418. if (givinoutflag == "1") {
  419. model.setValue("/root/main/item1/trnpt/givpid", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpid")));
  420. } else if (givinoutflag == "2") {
  421. model.setValue("/root/main/item1/trnpt/givhospnm", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpid")));
  422. }
  423. model.setValue("/root/main/item1/trnpt/givpatnm", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpatnm")));
  424. model.setValue("/root/main/item1/trnpt/givrgstno", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givrgstno")));
  425. model.setValue("/root/main/item1/trnpt/remfact", grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("remfact")));
  426. // 2. 공여발생구분에 따른 입력 컨트롤 disable 처리
  427. if (givinoutflag == "1") {
  428. ipt_givhospnm.disabled = true;
  429. ipt_givpid.disabled = false;
  430. ipt_givpatnm.disabled = true;
  431. ipt_givrgstno.disabled = true;
  432. } else if (givinoutflag == "2") {
  433. ipt_givhospnm.disabled = false;
  434. ipt_givpid.disabled = true;
  435. ipt_givpatnm.disabled = false;
  436. ipt_givrgstno.disabled = false;
  437. }
  438. // 3. key값 수정 불가
  439. ipt_rsvpid.disabled = true;
  440. ipt_trnptdd.disabled = true;
  441. cmb_trnptkind.disabled = true;
  442. // 4. 추가수정flag, row 수정상태로 하고, key값은 수정하지 못하게 막는다.
  443. model.setValue("/root/hidden/appflag", "U");
  444. model.setValue("/root/hidden/currow", row);
  445. model.refresh();
  446. }
  447. }
  448. ]]>
  449. </script>
  450. <script type="javascript" ev:event="onaftersort">
  451. <![CDATA[
  452. grd_orgtrnptlist.gridToInstance();
  453. ]]>
  454. </script>
  455. <script type="javascript" ev:event="oncopy">
  456. <![CDATA[
  457. if (grd_orgtrnptlist.selectedRows == 1) {
  458. var row = grd_orgtrnptlist.row;
  459. var col = grd_orgtrnptlist.col;
  460. if (col == grd_orgtrnptlist.colRef("rsvpid") || col == grd_orgtrnptlist.colRef("rsvrgstno") || col == grd_orgtrnptlist.colRef("givpid") || col == grd_orgtrnptlist.colRef("givrgstno")) {
  461. var clip = grd_orgtrnptlist.labelMatrix(row, col);
  462. window.clipBoardData = clip;
  463. }
  464. }
  465. ]]>
  466. </script>
  467. </datagrid>
  468. <button id="btn_save" class="btn4_letter2" navindex="21" style="left:1050px; top:675px; width:56px; height:22px; ">
  469. <caption>저장</caption>
  470. <script type="javascript" ev:event="DOMActivate">
  471. <![CDATA[
  472. // 0. 저장하시겠습니까?
  473. model.removeNode("/root/hidden/list1/org");
  474. var updtdata = getGridUpdateData(grd_orgtrnptlist);
  475. if (updtdata == "") {
  476. messageBox("변경된 데이터가", "I004");
  477. return;
  478. }
  479. if (messageBox("장기이식환자 정보를 저장", "S001") != 6) return;
  480. // 1. 그리드에 update가 일어난 데이터를 받는다.
  481. model.makeValue("/root/hidden/list1/org",updtdata);
  482. // 2. 일괄저장한다.
  483. if (submit("TXPIB02401")) {
  484. // 3. 화면 초기화 + 그리드 status 변경
  485. btn_clear.dispatch("DOMActivate");
  486. var rows = grd_orgtrnptlist.rows;
  487. for (var i = rows-1; i > 1; i--) {
  488. if (grd_orgtrnptlist.rowStatus(i) == 4) {
  489. grd_orgtrnptlist.deleteRow(i, false);
  490. } else {
  491. grd_orgtrnptlist.rowStatus(i) = 0;
  492. }
  493. }
  494. grd_orgtrnptlist.gridToInstance();
  495. grd_orgtrnptlist.refresh();
  496. messageBox("정상적으로 저장되었습니다.", "I999");
  497. }
  498. ]]>
  499. </script>
  500. </button>
  501. <button id="btn_init" class="btn4_letter3" navindex="21" style="left:1110px; top:675px; width:68px; height:22px; ">
  502. <caption>초기화</caption>
  503. <script type="javascript" ev:event="DOMActivate">
  504. <![CDATA[
  505. fInitialize1();
  506. ]]>
  507. </script>
  508. </button>
  509. <input id="ipt_rsvpid" ref="/root/main/item1/trnpt/rsvpid" class="input_default" navindex="1" inputtype="button" maxlength="10" format="9999999999" style="left:101px; top:73px; width:143px; height:19px; ">
  510. <script type="javascript" ev:event="onbuttonclick">
  511. <![CDATA[
  512. var pid = model.getValue("/root/main/item1/trnpt/rsvpid");
  513. if (pid) {
  514. model.setValue("/root/hidden/sppmc02500/cond/srchcond", "1"); // 검색조건 : 등록번호로 설정
  515. model.setValue("/root/hidden/sppmc02500/cond/pid", pid);
  516. } else {
  517. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  518. }
  519. modal("SPPMC02500", 1,150, 150, "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", "");
  520. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  521. var patnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  522. var rgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  523. var rgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  524. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  525. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  526. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  527. model.setValue("/root/main/item1/trnpt/rsvpid", srch_pid);
  528. model.setValue("/root/main/item1/trnpt/rsvpatnm", patnm);
  529. model.setValue("/root/main/item1/trnpt/rsvrgstno", rgstno1 + rgstno2);
  530. }
  531. model.refresh();
  532. ]]>
  533. </script>
  534. <script type="javascript" ev:event="onkeypress">
  535. <![CDATA[
  536. if (event.keyCode==13) {
  537. inputEnterKey("ipt_rsvpid", "DOMFocusIn");
  538. var rsvpid = model.getValue("/root/main/item1/trnpt/rsvpid");
  539. if (rsvpid != "") {
  540. model.removeNodeset("/root/main/patinfo/patinfolist");
  541. model.makeNode("/root/main/patinfo/patinfolist");
  542. model.setValue("/root/send/data3/pid", rsvpid);
  543. if (submit("TRPIB02403")) {
  544. var rsvpatnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  545. var rsvrgstno = model.getValue("/root/main/patinfo/patinfolist/rgstno");
  546. model.removeNodeset("/root/main/patinfo/patinfolist");
  547. model.makeNode("/root/main/patinfo/patinfolist");
  548. if (rsvpatnm != "") {
  549. model.setValue("/root/main/item1/trnpt/rsvpatnm", rsvpatnm);
  550. model.setValue("/root/main/item1/trnpt/rsvrgstno", rsvrgstno);
  551. model.refresh();
  552. } else {
  553. inputEnterKey("ipt_rsvpid", "onbuttonclick");
  554. }
  555. }
  556. }
  557. }
  558. ]]>
  559. </script>
  560. </input>
  561. <input id="ipt_rsvpatnm" ref="/root/main/item1/trnpt/rsvpatnm" class="input_default" disabled="true" style="left:348px; top:73px; width:134px; height:19px; "/>
  562. <input id="ipt_rsvrsgtno" ref="/root/main/item1/trnpt/rsvrgstno" class="input_default" disabled="true" format="999999-9999999" style="left:585px; top:73px; width:153px; height:19px; "/>
  563. <input id="ipt_trnptdd" ref="/root/main/item1/trnpt/trnptdd" class="input_default" navindex="2" inputtype="date" format="yyyy-mm-dd" style="left:842px; top:73px; width:118px; height:19px; "/>
  564. <select1 id="cmb_trnptkind" ref="/root/main/item1/trnpt/trnptkind" class="input_default" navindex="3" appearance="minimal" style="left:1062px; top:73px; width:123px; height:19px; ">
  565. <choices>
  566. <itemset nodeset="/root/init/A0224list/A0224">
  567. <label ref="cdnm"/>
  568. <value ref="cdid"/>
  569. </itemset>
  570. </choices>
  571. </select1>
  572. <caption id="caption14" class="cell_1" style="left:0px; top:96px; width:100px; height:23px; vertical-align:middle; ">공여발생구분</caption>
  573. <select1 id="rdo_givinoutflag" ref="/root/main/item1/trnpt/givinoutflag" navindex="4" appearance="full" cellspacing="5" cols="2" overflow="visible" style="left:123px; top:100px; width:105px; height:19px; ">
  574. <choices>
  575. <item>
  576. <label>원내</label>
  577. <value>1</value>
  578. </item>
  579. <item>
  580. <label>원외</label>
  581. <value>2</value>
  582. </item>
  583. </choices>
  584. <script type="javascript" ev:event="xforms-value-changed">
  585. <![CDATA[
  586. var givinoutflag = model.getValue("/root/main/item1/trnpt/givinoutflag");
  587. if (givinoutflag == "1") {
  588. model.setValue("/root/main/item1/trnpt/givhospnm", "");
  589. ipt_givhospnm.disabled = true;
  590. ipt_givpid.disabled = false;
  591. ipt_givpatnm.disabled = true;
  592. ipt_givrgstno.disabled = true;
  593. } else {
  594. model.setValue("/root/main/item1/trnpt/givpid", "");
  595. model.setValue("/root/main/item1/trnpt/givpatnm", "");
  596. model.setValue("/root/main/item1/trnpt/givrgstno", "");
  597. ipt_givhospnm.disabled = false;
  598. ipt_givpid.disabled = true;
  599. ipt_givpatnm.disabled = false;
  600. ipt_givrgstno.disabled = false;
  601. }
  602. model.refresh();
  603. ]]>
  604. </script>
  605. </select1>
  606. <input id="ipt_givhospnm" ref="/root/main/item1/trnpt/givhospnm" class="input_default" disabled="false" navindex="5" style="left:348px; top:98px; width:134px; height:19px; "/>
  607. <input id="ipt_givpid" ref="/root/main/item1/trnpt/givpid" class="input_default" navindex="6" inputtype="button" maxlength="10" format="9999999999" style="left:585px; top:98px; width:153px; height:19px; ">
  608. <script type="javascript" ev:event="onbuttonclick">
  609. <![CDATA[
  610. var pid = model.getValue("/root/main/item1/trnpt/givpid");
  611. if (pid) {
  612. model.setValue("/root/hidden/sppmc02500/cond/srchcond", "1"); // 검색조건 : 등록번호로 설정
  613. model.setValue("/root/hidden/sppmc02500/cond/pid", pid);
  614. } else {
  615. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  616. }
  617. modal("SPPMC02500", 1,150, 150, "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", "");
  618. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  619. var patnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  620. var rgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  621. var rgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  622. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  623. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  624. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  625. model.setValue("/root/main/item1/trnpt/givpid", srch_pid);
  626. model.setValue("/root/main/item1/trnpt/givpatnm", patnm);
  627. model.setValue("/root/main/item1/trnpt/givrgstno", rgstno1 + rgstno2);
  628. }
  629. model.refresh();
  630. ]]>
  631. </script>
  632. <script type="javascript" ev:event="onkeypress">
  633. <![CDATA[
  634. if (event.keyCode==13) {
  635. inputEnterKey("ipt_givpid", "DOMFocusIn");
  636. var givpid = model.getValue("/root/main/item1/trnpt/givpid");
  637. if (givpid != "") {
  638. model.removeNodeset("/root/main/patinfo/patinfolist");
  639. model.makeNode("/root/main/patinfo/patinfolist");
  640. model.setValue("/root/send/data3/pid", givpid);
  641. if (submit("TRPIB02403")) {
  642. var givpatnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  643. var givrgstno = model.getValue("/root/main/patinfo/patinfolist/rgstno");
  644. model.removeNodeset("/root/main/patinfo/patinfolist");
  645. model.makeNode("/root/main/patinfo/patinfolist");
  646. if (givpatnm != "") {
  647. model.setValue("/root/main/item1/trnpt/givpatnm", givpatnm);
  648. model.setValue("/root/main/item1/trnpt/givrgstno", givrgstno);
  649. model.refresh();
  650. } else {
  651. inputEnterKey("ipt_givpid", "onbuttonclick");
  652. }
  653. }
  654. }
  655. }
  656. ]]>
  657. </script>
  658. </input>
  659. <input id="ipt_givpatnm" ref="/root/main/item1/trnpt/givpatnm" class="input_default" disabled="false" navindex="7" style="left:842px; top:98px; width:118px; height:19px; "/>
  660. <input id="ipt_givrgstno" ref="/root/main/item1/trnpt/givrgstno" class="input_default" disabled="false" navindex="8" maxlength="13" format="999999-9999999" style="left:1062px; top:98px; width:123px; height:19px; "/>
  661. <input id="ipt_remfact" ref="/root/main/item1/trnpt/remfact" class="input_default" disabled="false" navindex="9" style="left:102px; top:123px; width:1083px; height:19px; "/>
  662. <button id="btn_update" class="btn2_letter2" style="left:1043px; top:47px; width:42px; height:19px; ">
  663. <caption>수정</caption>
  664. <script type="javascript" ev:event="DOMActivate">
  665. <![CDATA[
  666. // 전제:수정모드가 아니면 메세지로 먼저 목록을 더블클릭하여 수정할 데이터를 보여주도록 해야한다.
  667. var appflag = model.getValue("/root/hidden/appflag");
  668. if (appflag != "U") {
  669. messageBox("먼저 수정할 장기이식환자 정보를 목록에서 선택해 주십시요.","E999","");
  670. return false;
  671. }
  672. if (fCheckVariable1()) {
  673. var row = model.getValue("/root/hidden/currow");
  674. // 1. 수정된 내용을 장기이식환자내역에 반영한다.
  675. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("trnptdd")) = model.getValue("/root/main/item1/trnpt/trnptdd");
  676. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvpid")) = model.getValue("/root/main/item1/trnpt/rsvpid");
  677. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvpatnm")) = model.getValue("/root/main/item1/trnpt/rsvpatnm");
  678. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("rsvrgstno")) = model.getValue("/root/main/item1/trnpt/rsvrgstno");
  679. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("trnptkind")) = model.getValue("/root/main/item1/trnpt/trnptkind");
  680. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givinoutflag")) = model.getValue("/root/main/item1/trnpt/givinoutflag");
  681. var givinoutflag = model.getValue("/root/main/item1/trnpt/givinoutflag");
  682. if (givinoutflag == "1") {
  683. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpid")) = model.getValue("/root/main/item1/trnpt/givpid");
  684. } else if (givinoutflag == "2") {
  685. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpid")) = model.getValue("/root/main/item1/trnpt/givhospnm");
  686. }
  687. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givpatnm")) = model.getValue("/root/main/item1/trnpt/givpatnm");
  688. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("givrgstno")) = model.getValue("/root/main/item1/trnpt/givrgstno");
  689. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("lastupdtrid")) = getUserName();
  690. grd_orgtrnptlist.valueMatrix(row, grd_orgtrnptlist.colRef("remfact")) = model.getValue("/root/main/item1/trnpt/remfact");
  691. grd_orgtrnptlist.gridToInstance();
  692. // 2. row 상태를 update로 변경
  693. if (grd_orgtrnptlist.rowstatus(row) == 0) {
  694. grd_orgtrnptlist.rowstatus(row) = 2;
  695. }
  696. // 3. 입력부분 초기화
  697. btn_clear.dispatch("DOMActivate");
  698. }
  699. ]]>
  700. </script>
  701. </button>
  702. <button id="btn_clear" class="btn2_letter3" style="left:1131px; top:47px; width:53px; height:19px; ">
  703. <caption>Clear</caption>
  704. <script type="javascript" ev:event="DOMActivate">
  705. <![CDATA[
  706. // 1. 입력데이터 초기화
  707. model.resetInstanceNode("/root/main/item1/trnpt");
  708. model.setValue("/root/main/item1/trnpt/trnptdd", getCurrentDate());
  709. model.setValue("/root/main/item1/trnpt/trnptkind", "-");
  710. model.setValue("/root/main/item1/trnpt/givinoutflag","1");
  711. ipt_rsvpid.disabled = false;
  712. ipt_trnptdd.disabled = false;
  713. cmb_trnptkind.disabled = false;
  714. ipt_givhospnm.disabled = true;
  715. ipt_givpid.disabled = false;
  716. ipt_givpatnm.disabled = true;
  717. ipt_givrgstno.disabled = true;
  718. // 2. 추가수정flag, row 초기화
  719. model.setValue("/root/hidden/appflag", "I");
  720. model.setValue("/root/hidden/currow", 0);
  721. model.refresh();
  722. ]]>
  723. </script>
  724. </button>
  725. <button id="btn_insert" class="btn2_letter2" style="left:1087px; top:47px; width:42px; height:19px; ">
  726. <caption>추가</caption>
  727. <script type="javascript" ev:event="DOMActivate">
  728. <![CDATA[
  729. // 전제:수정모드가 아니면 메세지로 먼저 목록을 더블클릭하여 수정할 데이터를 보여주도록 해야한다.
  730. var appflag = model.getValue("/root/hidden/appflag");
  731. if (appflag != "I") {
  732. messageBox("Clear를 클릭하여 수정모드를 해제한 뒤 추가하세요.","E999","");
  733. return false;
  734. }
  735. if (fCheckVariable1()) {
  736. // 1. 추가할 내용을 목록 맨 밑에 추가한다.
  737. grd_orgtrnptlist.addRow();
  738. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("trnptdd")) = model.getValue("/root/main/item1/trnpt/trnptdd");
  739. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("rsvpid")) = model.getValue("/root/main/item1/trnpt/rsvpid");
  740. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("rsvpatnm")) = model.getValue("/root/main/item1/trnpt/rsvpatnm");
  741. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("rsvrgstno")) = model.getValue("/root/main/item1/trnpt/rsvrgstno");
  742. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("trnptkind")) = model.getValue("/root/main/item1/trnpt/trnptkind");
  743. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("givinoutflag")) = model.getValue("/root/main/item1/trnpt/givinoutflag");
  744. var givinoutflag = model.getValue("/root/main/item1/trnpt/givinoutflag");
  745. if (givinoutflag == "1") {
  746. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("givpid")) = model.getValue("/root/main/item1/trnpt/givpid");
  747. } else if (givinoutflag == "2") {
  748. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("givpid")) = model.getValue("/root/main/item1/trnpt/givhospnm");
  749. }
  750. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("givpatnm")) = model.getValue("/root/main/item1/trnpt/givpatnm");
  751. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("givrgstno")) = model.getValue("/root/main/item1/trnpt/givrgstno");
  752. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("lastupdtrid")) = getUserName();
  753. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("remfact")) = model.getValue("/root/main/item1/trnpt/remfact");
  754. grd_orgtrnptlist.valueMatrix(grd_orgtrnptlist.row, grd_orgtrnptlist.colRef("seqno")) = "";
  755. grd_orgtrnptlist.gridToInstance();
  756. // 2. row 상태를 insert로 변경
  757. grd_orgtrnptlist.rowstatus(grd_orgtrnptlist.row) = 3;
  758. grd_orgtrnptlist.colDisabled(grd_orgtrnptlist.colRef("trnptkind")) = true;
  759. grd_orgtrnptlist.colDisabled(grd_orgtrnptlist.colRef("givinoutflag")) = true;
  760. // 3. 입력부분 초기화
  761. btn_clear.dispatch("DOMActivate");
  762. }
  763. ]]>
  764. </script>
  765. </button>
  766. <button id="btn_delete" class="btn2_letter2" style="left:1142px; top:154px; width:42px; height:19px; ">
  767. <caption>삭제</caption>
  768. <script type="javascript" ev:event="DOMActivate">
  769. <![CDATA[
  770. // 1. 입력부분 초기화
  771. btn_clear.dispatch("DOMActivate");
  772. // 2. 선택된 row 의 rowstatus를 delete 로 변경한다.
  773. for (var i = 0; i < grd_orgtrnptlist.selectedRows; i++) {
  774. var sel = grd_orgtrnptlist.selectedRow(i);
  775. grd_orgtrnptlist.rowstatus(sel) = 4;
  776. }
  777. ]]>
  778. </script>
  779. </button>
  780. <button id="btn_excel" class="btn2_letter4" style="left:1075px; top:154px; width:64px; height:19px; ">
  781. <caption>엑셀저장</caption>
  782. <script type="javascript" ev:event="DOMActivate">
  783. <![CDATA[
  784. if (grd_orgtrnptlist.rows == 2) {
  785. return;
  786. }
  787. var fileName = window.fileDialog("save", ",", false, "장기이식 환자내역", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  788. if (fileName != "")
  789. {
  790. //grd_orgtrnptlist.saveExcel(fileName, "장기이식환자내역", true, true, "", "", true);
  791. grd_orgtrnptlist.saveExcel(fileName, "장기이식환자내역:sheet1;colhiddenextend:false;rowhiddenextend:false;col_1:label;col_2:label;col_3:label;col_4:label;col_5:label;col_6:label;col_7:label;col_8:label;col_9:label;col_10:label;col_11:label;");
  792. messageBox("EXCEL 저장이 완료되었습니다.","I999");
  793. }
  794. ]]>
  795. </script>
  796. </button>
  797. <select id="chk_refund" ref="/root/send/data1/refundyn" overflow="visible" appearance="full" style="left:965px; top:13px; width:55px; height:20px; font-weight:bold; border-style:none; ">
  798. <choices>
  799. <item>
  800. <label> 환 불</label>
  801. <value>Y</value>
  802. </item>
  803. </choices>
  804. </select>
  805. <select id="chk_rece" ref="/root/send/data1/receyn" overflow="visible" appearance="full" style="left:1030px; top:13px; width:65px; height:20px; font-weight:bold; border-style:none; ">
  806. <choices>
  807. <item>
  808. <label> 미수납</label>
  809. <value>Y</value>
  810. </item>
  811. </choices>
  812. </select>
  813. </case>
  814. <case id="case2">
  815. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1187px; height:40px; "/>
  816. <caption id="caption15" class="search_name" style="left:16px; top:11px; width:86px; height:17px; ">환자구분 :</caption>
  817. <button id="btn_search2" class="btn1_letter2" style="left:1122px; top:10px; width:56px; height:22px; ">
  818. <caption>조회</caption>
  819. <script type="javascript" ev:event="DOMActivate">
  820. <![CDATA[
  821. // 1. 골수이식환자내역 초기화
  822. model.removenode("/root/main/list2");
  823. model.makeNode("/root/main/list2");
  824. // 2. 조회조건에 따른 조회임을 알려줌
  825. model.setValue("/root/send/data2/allyn", "N");
  826. // 3. 조회
  827. submit("TRPIB02402");
  828. ]]>
  829. </script>
  830. </button>
  831. <line id="line3" class="line_4" style="x1:1106px; y1:7px; x2:1106px; y2:35px; border-left-style:solid; "/>
  832. <caption id="caption16" class="search_name" style="left:280px; top:11px; width:98px; height:17px; ">환자번호 :</caption>
  833. <caption id="caption17" class="search_name" style="left:890px; top:11px; width:98px; height:17px; ">이식형태 :</caption>
  834. <select1 id="rdo_patflag2" ref="/root/send/data2/patflag" appearance="full" cellspacing="5" cols="2" overflow="visible" style="left:108px; top:11px; width:127px; height:19px; ">
  835. <choices>
  836. <item>
  837. <label>수혜자</label>
  838. <value>1</value>
  839. </item>
  840. <item>
  841. <label>공여자</label>
  842. <value>2</value>
  843. </item>
  844. </choices>
  845. </select1>
  846. <select1 id="cmb_trpnttype" ref="/root/send/data2/type" class="input_search" appearance="minimal" style="left:983px; top:11px; width:102px; height:19px; ">
  847. <choices>
  848. <itemset nodeset="/root/init/A0158list/A0158">
  849. <label ref="cdnm"/>
  850. <value ref="cdid"/>
  851. </itemset>
  852. </choices>
  853. </select1>
  854. <input id="ipt_pid2" ref="/root/send/data2/pid" class="input_search" inputtype="button" maxlength="10" format="9999999999" style="left:372px; top:11px; width:103px; height:19px; ">
  855. <script type="javascript" ev:event="onbuttonclick">
  856. <![CDATA[
  857. var pid = model.getValue("/root/send/data2/pid");
  858. if (pid) {
  859. model.setValue("/root/hidden/sppmc02500/cond/srchcond", "1"); // 검색조건 : 등록번호로 설정
  860. model.setValue("/root/hidden/sppmc02500/cond/pid", pid);
  861. } else {
  862. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  863. }
  864. modal("SPPMC02500", 1,150, 150, "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", "");
  865. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  866. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  867. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  868. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  869. model.setValue("/root/send/data2/pid", srch_pid);
  870. }
  871. model.refresh();
  872. ]]>
  873. </script>
  874. </input>
  875. <caption id="caption18" class="search_name" style="left:540px; top:11px; width:98px; height:17px; ">이식기간 :</caption>
  876. <input id="ipt_fromdd2" ref="/root/send/data2/fromdd" class="input_search" inputtype="date" format="yyyy-mm-dd" style="left:632px; top:11px; width:85px; height:19px; "/>
  877. <input id="ipt_todd2" ref="/root/send/data2/todd" class="input_search" inputtype="date" format="yyyy-mm-dd" style="left:725px; top:11px; width:85px; height:19px; "/>
  878. <caption id="caption19" class="tit_2" style="left:5px; top:52px; width:126px; height:14px; ">골수이식 환자정보</caption>
  879. <line id="line4" class="line_1" style="x1:0px; y1:67px; x2:1187px; y2:67px; "/>
  880. <caption id="caption20" class="cell_1" style="left:0px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자등록번호</caption>
  881. <caption id="caption24" class="cell_1" style="left:247px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자명</caption>
  882. <caption id="caption25" class="cell_1" style="left:484px; top:71px; width:100px; height:23px; vertical-align:middle; ">수혜자주민번호</caption>
  883. <caption id="caption26" class="cell_1" style="left:741px; top:71px; width:100px; height:23px; vertical-align:middle; ">이식일자</caption>
  884. <caption id="caption27" class="cell_1" style="left:961px; top:71px; width:100px; height:23px; vertical-align:middle; ">이식형태</caption>
  885. <line id="line5" class="line_2" style="x1:0px; y1:95px; x2:1187px; y2:95px; "/>
  886. <caption id="caption32" class="cell_1" style="left:0px; top:96px; width:100px; height:23px; vertical-align:middle; ">비고</caption>
  887. <line id="line7" class="line_3" style="x1:0px; y1:119px; x2:1187px; y2:119px; "/>
  888. <caption id="caption33" class="tit_2" style="left:6px; top:132px; width:126px; height:13px; ">골수이식 환자내역</caption>
  889. <line id="line8" class="line_1" style="x1:0px; y1:147px; x2:1186px; y2:147px; "/>
  890. <datagrid id="grd_bonetrnptlist" nodeset="/root/main/list2/bone" caption="수혜자^수혜자^수혜자^수혜자^승인일자^승인&#xA;여부^승인&#xA;상병^이식&#xA;형태^공여자^공여자^공여자^공여자^공여자^공여자^등록자^비고^seqno^boneflag|이식일^등록번호^수혜자명^주민번호^승인일자^승인&#xA;여부^승인&#xA;상병^이식&#xA;형태^등록번호^공여자명^주민번호^협회코드^골수ID^채취기관^등록자^비고^seqno^boneflag" colsep="^" colwidth="70, 65, 60, 90, 70, 55, 55, 55, 65, 60, 90, 70, 60, 80, 60, 120, 100, 100" explorerbar="sortshowmove" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:0px; top:152px; width:1186px; height:513px; ">
  891. <col ref="trnptdd" format="yyyy-mm-dd" style="text-align:center; "/>
  892. <col ref="rsvpid" style="text-align:center; "/>
  893. <col ref="rsvpatnm" style="text-align:center; "/>
  894. <col ref="rsvrgstno" format="999999-9999999" style="text-align:center; "/>
  895. <col ref="insuaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  896. <col disabled="true" ref="insuaprvkind" type="combo" style="text-align:center; ">
  897. <choices>
  898. <item>
  899. <label>비급여</label>
  900. <value>0</value>
  901. </item>
  902. <item>
  903. <label>급여</label>
  904. <value>1</value>
  905. </item>
  906. <item>
  907. <label>일반</label>
  908. <value>2</value>
  909. </item>
  910. </choices>
  911. </col>
  912. <col ref="insuaprvdiag"/>
  913. <col disabled="true" ref="trnpttype" type="combo" style="text-align:center; ">
  914. <choices>
  915. <itemset nodeset="/root/init/A0158list/A0158">
  916. <label ref="cdnm"/>
  917. <value ref="cdid"/>
  918. </itemset>
  919. </choices>
  920. </col>
  921. <col ref="givpid" style="text-align:center; "/>
  922. <col ref="givpatnm" style="text-align:center; "/>
  923. <col ref="givrgstno" format="999999-9999999" style="text-align:center; "/>
  924. <col ref="boneassocd" style="text-align:left; "/>
  925. <col ref="dnorid" style="text-align:left; "/>
  926. <col ref="dnorextrinst"/>
  927. <col ref="lastupdtrid" style="text-align:center; "/>
  928. <col ref="remfact"/>
  929. <col ref="seqno" visibility="hidden"/>
  930. <col ref="boneflag" visibility="hidden"/>
  931. <script type="javascript" ev:event="ondblclick">
  932. <![CDATA[
  933. if(grd_bonetrnptlist.isCell(event.target) && grd_bonetrnptlist.row >= grd_bonetrnptlist.fixedRows) {
  934. var row = grd_bonetrnptlist.row;
  935. var boneflag = grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("boneflag"));
  936. if (grd_bonetrnptlist.rowstatus(row) != 1 && grd_bonetrnptlist.rowstatus(row) != 3 && grd_bonetrnptlist.rowstatus(row) != 4 && boneflag == "1") {
  937. // 0. 입력데이터 초기화
  938. btn_clear2.dispatch("DOMActivate");
  939. // 1. 데이터 전달
  940. model.setValue("/root/main/item2/trnpt/rsvpid", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpid")));
  941. model.setValue("/root/main/item2/trnpt/rsvpatnm", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpatnm")));
  942. model.setValue("/root/main/item2/trnpt/rsvrgstno", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvrgstno")));
  943. model.setValue("/root/main/item2/trnpt/trnptdd", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnptdd")));
  944. model.setValue("/root/main/item2/trnpt/trnpttype", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnpttype")));
  945. model.setValue("/root/main/item2/trnpt/remfact", grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("remfact")));
  946. // 3. key값 수정 불가
  947. ipt_rsvpid2.disabled = true;
  948. ipt_trnptdd2.disabled = true;
  949. cmb_trnpttype.disabled = true;
  950. // 4. 추가수정flag, row 수정상태로 하고, key값은 수정하지 못하게 막는다.
  951. model.setValue("/root/hidden/appflag2", "U");
  952. model.setValue("/root/hidden/currow2", row);
  953. model.refresh();
  954. }
  955. }
  956. ]]>
  957. </script>
  958. <script type="javascript" ev:event="onaftersort">
  959. <![CDATA[
  960. grd_bonetrnptlist.gridToInstance();
  961. ]]>
  962. </script>
  963. <script type="javascript" ev:event="oncopy">
  964. <![CDATA[
  965. if (grd_bonetrnptlist.selectedRows == 1) {
  966. var row = grd_bonetrnptlist.row;
  967. var col = grd_bonetrnptlist.col;
  968. if (col == grd_bonetrnptlist.colRef("rsvpid") || col == grd_bonetrnptlist.colRef("rsvrgstno") || col == grd_bonetrnptlist.colRef("givpid") || col == grd_bonetrnptlist.colRef("givrgstno")) {
  969. var clip = grd_bonetrnptlist.labelMatrix(row, col);
  970. window.clipBoardData = clip;
  971. }
  972. }
  973. ]]>
  974. </script>
  975. </datagrid>
  976. <input id="ipt_rsvpatnm2" ref="/root/main/item2/trnpt/rsvpatnm" class="input_default" disabled="true" style="left:348px; top:73px; width:134px; height:19px; "/>
  977. <input id="ipt_rsvrgstno2" ref="/root/main/item2/trnpt/rsvrgstno" class="input_default" disabled="true" format="999999-9999999" style="left:585px; top:73px; width:153px; height:19px; "/>
  978. <input id="ipt_rsvpid2" ref="/root/main/item2/trnpt/rsvpid" class="input_default" navindex="1" inputtype="button" maxlength="10" format="9999999999" style="left:101px; top:73px; width:143px; height:19px; ">
  979. <script type="javascript" ev:event="onbuttonclick">
  980. <![CDATA[
  981. var pid = model.getValue("/root/main/item2/trnpt/rsvpid");
  982. if (pid) {
  983. model.setValue("/root/hidden/sppmc02500/cond/srchcond", "1"); // 검색조건 : 등록번호로 설정
  984. model.setValue("/root/hidden/sppmc02500/cond/pid", pid);
  985. } else {
  986. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  987. }
  988. modal("SPPMC02500", 1,150, 150, "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", "");
  989. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  990. var patnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  991. var rgstno1 = model.getValue("/root/main/patinfo/patinfolist/rrgstno1");
  992. var rgstno2 = model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  993. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  994. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  995. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  996. model.setValue("/root/main/item2/trnpt/rsvpid", srch_pid);
  997. model.setValue("/root/main/item2/trnpt/rsvpatnm", patnm);
  998. model.setValue("/root/main/item2/trnpt/rsvrgstno", rgstno1 + rgstno2);
  999. }
  1000. model.refresh();
  1001. ]]>
  1002. </script>
  1003. <script type="javascript" ev:event="onkeypress">
  1004. <![CDATA[
  1005. if (event.keyCode==13) {
  1006. inputEnterKey("ipt_rsvpid2", "DOMFocusIn");
  1007. var rsvpid = model.getValue("/root/main/item2/trnpt/rsvpid");
  1008. if (rsvpid != "") {
  1009. model.removeNodeset("/root/main/patinfo/patinfolist");
  1010. model.makeNode("/root/main/patinfo/patinfolist");
  1011. model.setValue("/root/send/data3/pid", rsvpid);
  1012. if (submit("TRPIB02403")) {
  1013. var rsvpatnm = model.getValue("/root/main/patinfo/patinfolist/hngnm");
  1014. var rsvrgstno = model.getValue("/root/main/patinfo/patinfolist/rgstno");
  1015. model.removeNodeset("/root/main/patinfo/patinfolist");
  1016. model.makeNode("/root/main/patinfo/patinfolist");
  1017. if (rsvpatnm != "") {
  1018. model.setValue("/root/main/item2/trnpt/rsvpatnm", rsvpatnm);
  1019. model.setValue("/root/main/item2/trnpt/rsvrgstno", rsvrgstno);
  1020. model.refresh();
  1021. } else {
  1022. inputEnterKey("ipt_rsvpid2", "onbuttonclick");
  1023. }
  1024. }
  1025. }
  1026. }
  1027. ]]>
  1028. </script>
  1029. </input>
  1030. <input id="ipt_trnptdd2" ref="/root/main/item2/trnpt/trnptdd" class="input_default" navindex="2" inputtype="date" format="yyyy-mm-dd" style="left:842px; top:73px; width:118px; height:19px; "/>
  1031. <select1 id="cmb_trnpttype" ref="/root/main/item2/trnpt/trnpttype" class="input_default" navindex="3" appearance="minimal" style="left:1062px; top:73px; width:123px; height:19px; ">
  1032. <choices>
  1033. <itemset nodeset="/root/init/A0158list/A0158">
  1034. <label ref="cdnm"/>
  1035. <value ref="cdid"/>
  1036. </itemset>
  1037. </choices>
  1038. </select1>
  1039. <input id="ipt_remfact2" ref="/root/main/item2/trnpt/remfact" class="input_default" disabled="false" navindex="9" style="left:102px; top:98px; width:1083px; height:19px; "/>
  1040. <button id="btn_clear2" class="btn2_letter3" style="left:1131px; top:47px; width:53px; height:19px; ">
  1041. <caption>Clear</caption>
  1042. <script type="javascript" ev:event="DOMActivate">
  1043. <![CDATA[
  1044. // 1. 입력데이터 초기화
  1045. model.resetInstanceNode("/root/main/item2/trnpt");
  1046. model.setValue("/root/main/item2/trnpt/trnptdd", getCurrentDate());
  1047. model.setValue("/root/main/item2/trnpt/trnpttype", "-");
  1048. ipt_rsvpid2.disabled = false;
  1049. ipt_trnptdd2.disabled = false;
  1050. cmb_trnpttype.disabled = false;
  1051. // 2. 추가수정flag, row 초기화
  1052. model.setValue("/root/hidden/appflag2", "I");
  1053. model.setValue("/root/hidden/currow2", 0);
  1054. model.refresh();
  1055. ]]>
  1056. </script>
  1057. </button>
  1058. <button id="btn_update2" class="btn2_letter2" style="left:1043px; top:47px; width:42px; height:19px; ">
  1059. <caption>수정</caption>
  1060. <script type="javascript" ev:event="DOMActivate">
  1061. <![CDATA[
  1062. // 전제:수정모드가 아니면 메세지로 먼저 목록을 더블클릭하여 수정할 데이터를 보여주도록 해야한다.
  1063. var appflag = model.getValue("/root/hidden/appflag2");
  1064. if (appflag != "U") {
  1065. messageBox("먼저 수정할 골수이식환자 정보를 목록에서 선택해 주십시요.","E999","");
  1066. return false;
  1067. }
  1068. if (fCheckVariable2()) {
  1069. var row = model.getValue("/root/hidden/currow2");
  1070. // 1. 수정된 내용을 장기이식환자내역에 반영한다.
  1071. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnptdd")) = model.getValue("/root/main/item2/trnpt/trnptdd");
  1072. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpid")) = model.getValue("/root/main/item2/trnpt/rsvpid");
  1073. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpatnm")) = model.getValue("/root/main/item2/trnpt/rsvpatnm");
  1074. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvrgstno")) = model.getValue("/root/main/item2/trnpt/rsvrgstno");
  1075. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnpttype")) = model.getValue("/root/main/item2/trnpt/trnpttype");
  1076. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("remfact")) = model.getValue("/root/main/item2/trnpt/remfact");
  1077. grd_bonetrnptlist.gridToInstance();
  1078. // 2. row 상태를 update로 변경
  1079. if (grd_bonetrnptlist.rowstatus(row) == 0) {
  1080. grd_bonetrnptlist.rowstatus(row) = 2;
  1081. }
  1082. // 3. 입력부분 초기화
  1083. btn_clear2.dispatch("DOMActivate");
  1084. }
  1085. ]]>
  1086. </script>
  1087. </button>
  1088. <button id="btn_insert2" class="btn2_letter2" style="left:1087px; top:47px; width:42px; height:19px; ">
  1089. <caption>추가</caption>
  1090. <script type="javascript" ev:event="DOMActivate">
  1091. <![CDATA[
  1092. // 전제:수정모드가 아니면 메세지로 먼저 목록을 더블클릭하여 수정할 데이터를 보여주도록 해야한다.
  1093. var appflag = model.getValue("/root/hidden/appflag2");
  1094. if (appflag != "I") {
  1095. messageBox("Clear를 클릭하여 수정모드를 해제한 뒤 추가하세요.","E999","");
  1096. return false;
  1097. }
  1098. if (fCheckVariable2()) {
  1099. // 1. 추가할 내용을 목록 맨 밑에 추가한다.
  1100. grd_bonetrnptlist.addRow();
  1101. var row = grd_bonetrnptlist.row;
  1102. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnptdd")) = model.getValue("/root/main/item2/trnpt/trnptdd");
  1103. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpid")) = model.getValue("/root/main/item2/trnpt/rsvpid");
  1104. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvpatnm")) = model.getValue("/root/main/item2/trnpt/rsvpatnm");
  1105. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("rsvrgstno")) = model.getValue("/root/main/item2/trnpt/rsvrgstno");
  1106. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("trnpttype")) = model.getValue("/root/main/item2/trnpt/trnpttype");
  1107. grd_bonetrnptlist.valueMatrix(row, grd_bonetrnptlist.colRef("remfact")) = model.getValue("/root/main/item2/trnpt/remfact");
  1108. // 2. row 상태를 insert로 변경
  1109. grd_bonetrnptlist.rowstatus(row) = 3;
  1110. grd_bonetrnptlist.colDisabled(grd_bonetrnptlist.colRef("trnpttype")) = true;
  1111. grd_bonetrnptlist.colDisabled(grd_bonetrnptlist.colRef("insuaprvkind")) = true;
  1112. // 3. 입력부분 초기화
  1113. btn_clear2.dispatch("DOMActivate");
  1114. grd_bonetrnptlist.row = grd_bonetrnptlist.rows - 1;
  1115. }
  1116. ]]>
  1117. </script>
  1118. </button>
  1119. <button id="btn_save2" class="btn4_letter2" navindex="21" style="left:1050px; top:675px; width:56px; height:22px; ">
  1120. <caption>저장</caption>
  1121. <script type="javascript" ev:event="DOMActivate">
  1122. <![CDATA[
  1123. // 0. 저장하시겠습니까?
  1124. model.removeNode("/root/hidden/list2/bone");
  1125. var updtdata = getGridUpdateData(grd_bonetrnptlist);
  1126. if (updtdata == "") {
  1127. messageBox("변경된 데이터가", "I004");
  1128. return;
  1129. }
  1130. if (messageBox("골수이식환자 정보를 저장", "S001") != 6) return;
  1131. // 1. 그리드에 update가 일어난 데이터를 받는다.
  1132. model.makeValue("/root/hidden/list2/bone",updtdata);
  1133. // 2. 일괄저장한다.
  1134. if (submit("TXPIB02402")) {
  1135. // 3. 화면 초기화 + 그리드 status 변경
  1136. btn_clear2.dispatch("DOMActivate");
  1137. var rows = grd_bonetrnptlist.rows;
  1138. for (var i = rows-1; i > 1; i--) {
  1139. if (grd_bonetrnptlist.rowStatus(i) == 4) {
  1140. grd_bonetrnptlist.deleteRow(i, false);
  1141. } else {
  1142. grd_bonetrnptlist.rowStatus(i) = 0;
  1143. }
  1144. }
  1145. grd_bonetrnptlist.gridToInstance();
  1146. grd_bonetrnptlist.refresh();
  1147. }
  1148. ]]>
  1149. </script>
  1150. </button>
  1151. <button id="btn_init2" class="btn4_letter3" navindex="21" style="left:1110px; top:675px; width:68px; height:22px; ">
  1152. <caption>초기화</caption>
  1153. <script type="javascript" ev:event="DOMActivate">
  1154. <![CDATA[
  1155. fInitialize2();
  1156. ]]>
  1157. </script>
  1158. </button>
  1159. <button id="btn_delete2" class="btn2_letter2" style="left:1141px; top:127px; width:42px; height:19px; ">
  1160. <caption>삭제</caption>
  1161. <script type="javascript" ev:event="DOMActivate">
  1162. <![CDATA[
  1163. // 1. 입력부분 초기화
  1164. btn_clear2.dispatch("DOMActivate");
  1165. // 2. 선택된 row 의 rowstatus를 delete 로 변경한다.
  1166. for (var i = 0; i < grd_bonetrnptlist.selectedRows; i++) {
  1167. var sel = grd_bonetrnptlist.selectedRow(i);
  1168. var boneflag = grd_bonetrnptlist.valueMatrix(sel, grd_bonetrnptlist.colRef("boneflag"));
  1169. if (boneflag == "1") {
  1170. grd_bonetrnptlist.rowstatus(sel) = 4;
  1171. }
  1172. }
  1173. ]]>
  1174. </script>
  1175. </button>
  1176. <button id="btn_excel2" class="btn2_letter4" style="left:1075px; top:127px; width:64px; height:19px; ">
  1177. <caption>엑셀저장</caption>
  1178. <script type="javascript" ev:event="DOMActivate">
  1179. <![CDATA[
  1180. if (grd_bonetrnptlist.rows == 2) {
  1181. return;
  1182. }
  1183. var fileName = window.fileDialog("save", ",", false, "골수이식 환자내역", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  1184. if (fileName != "")
  1185. {
  1186. //grd_bonetrnptlist.saveExcel(fileName, "SheetName", true, true, "", "", true);
  1187. grd_bonetrnptlist.saveExcel(fileName, "골수이식환자내역:sheet1;colhiddenextend:false;rowhiddenextend:false;col_1:label;col_2:label;col_3:label;col_4:label;col_5:label;col_6:label;col_7:label;col_8:label;col_9:label;col_10:label;col_11:label;col_12:label;col_13:label;col_14:label;col_15:label;col_16:label;");
  1188. messageBox("EXCEL 저장이 완료되었습니다.","I999");
  1189. }
  1190. ]]>
  1191. </script>
  1192. </button>
  1193. </case>
  1194. </switch>
  1195. </group>
  1196. </xhtml:body>
  1197. </xhtml:html>