SPPIJ00500_특정내역상세관리.xrw 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * @(#)SPPIJ00500_특정내역상세관리.xrw
  4. * 수정이력
  5. * - 2007.05.25 / 최초작성 / 박도형
  6. *
  7. -->
  8. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  9. <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">
  10. <xhtml:head>
  11. <xhtml:title>특정내역 상세 관리</xhtml:title>
  12. <model id="model1">
  13. <instance id="instance1">
  14. <root xmlns="">
  15. <main>
  16. <item1>
  17. <clcj>
  18. <flag/>
  19. <calcscorcd/>
  20. <edicd/>
  21. <spclcd/>
  22. <detldesc/>
  23. <remfact/>
  24. <spclspec/>
  25. <rownum/>
  26. <list/>
  27. <spclcdnm/>
  28. <pid/>
  29. <indd/>
  30. </clcj>
  31. </item1>
  32. </main>
  33. <send>
  34. <pid/>
  35. <indd/>
  36. </send>
  37. <init>
  38. <P0117list>
  39. <P0117>
  40. <cdnm/>
  41. <cdid/>
  42. <cdval/>
  43. <dispseq/>
  44. </P0117>
  45. </P0117list>
  46. </init>
  47. <hidden>
  48. <clcj>
  49. <cond>
  50. <calcscorcd/>
  51. <edicd/>
  52. <spclcd/>
  53. <spclspec/>
  54. <remfact/>
  55. <row/>
  56. <unitflag/>
  57. <list/>
  58. <pid/>
  59. <indd/>
  60. </cond>
  61. </clcj>
  62. <sppiz00700>
  63. <cond>
  64. <judgrid/>
  65. <memoflag/>
  66. <memocls/>
  67. <ediitem1/>
  68. </cond>
  69. <rslt>
  70. <memocd/>
  71. <memo/>
  72. </rslt>
  73. </sppiz00700>
  74. </hidden>
  75. </root>
  76. </instance>
  77. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  78. <submission id="TRZBC00102" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  79. <script type="javascript" ev:event="xforms-ready">
  80. <![CDATA[
  81. fInitialize(); // 화면을 초기화한다.
  82. // fCheckAuth(); // 화면 권한을 설정한다.
  83. ]]>
  84. </script>
  85. <submission id="TRPIZ00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/hidden/clcj/cond" resultref="/root/init/P0117list"/>
  86. </model>
  87. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  88. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  89. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  90. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  91. <script type="javascript" src="../../../pam/insucomweb/js/PAM.js"/>
  92. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  93. <script type="javascript">
  94. <![CDATA[
  95. // 화면 권한을 설정한다.
  96. function fCheckAuth() {
  97. /*
  98. if (getAuth() == "") { // (common.js) 현재 화면의 권한 정보를 확인
  99. // 메뉴에서 열리는 화면이 아닌 경우 메뉴가 없는 Local Test를 위해 임시로 설정함
  100. model.setValue("/root/hidden/properties/auth", "10000000"); // R권한만 있는 경우
  101. }
  102. */
  103. var xAuth = !checkAuth("X");
  104. cmb_spclcd.disabled = xAuth; // 특정코드 Combo
  105. tar_spclspec.disabled = xAuth; // 특정내역 TextArea
  106. btn_confirm.disabled = xAuth; // 확인
  107. btn_delete.disabled = xAuth; // 삭제
  108. }
  109. // 화면을 초기화한다.
  110. function fInitialize() {
  111. // 공통코드를 조회한다.
  112. var unitflag = model.getValue("/root/hidden/clcj/cond/unitflag");
  113. if(unitflag == "") {
  114. model.setValue("/root/hidden/clcj/cond/unitflag","J");
  115. }
  116. submit("TRPIZ00501",false);
  117. // zbcfGetCodeList(
  118. // new Array("P0117"),
  119. // new Array("/root/init/P0117list" ),
  120. // false ); // minimum을 'false'로 설정한 경우에는 코드의 모든속성을 가져온다.
  121. if (checkOpener()) { // (common.js) 자신을 Open한 opener의 현재 UID가 자신을 open한 시점의 UID와 비교하여 변경되었는지 여부를 반환
  122. model.removeNodeset("/root/main/item1/clcj");
  123. model.makeNode("/root/main/item1/clcj");
  124. model.copyNode("/root/main/item1/clcj", "/root/hidden/clcj/cond");
  125. var unitflag = model.getValue("/root/hidden/clcj/cond/unitflag");
  126. if (unitflag == "M") {
  127. // cmb_spclcd.choices.itemset.attribute("nodeset") = "/root/init/P0117list/P0117[minval = 'M' and cdid != 'MX999']";
  128. // 화면에는 0을 표시하지 않고 ""로 처리하여 edilnno 값이 ""인 경우 Combo의 index 계산을 index++ 로 하도록 한다.
  129. btn_memohistory.visible = false;
  130. } else {
  131. // 특정내역을 삭제하는 경우를 위해 empty 상태인 초기 node를 만들고, dispseq = ''인 노드를 선택에 포함시킨다.
  132. // 줄단위 특정코드 만을 표시한다.
  133. //cmb_spclcd.choices.itemset.attribute("nodeset") = "/root/init/P0117list/P0117[cdid < 'MS001']"; 의 경우, 문자는 크기 비교가 되지 않는다.
  134. // 'JT001' 확인코드는 SPPIZ01100_확인코드조회.xrw 팝업에서 입력한다.
  135. // cmb_spclcd.choices.itemset.attribute("nodeset") = "/root/init/P0117list/P0117[minval = 'J' and cdid != 'JT001' ]";
  136. }
  137. // 상세설명 조회
  138. fSetDetldesc();
  139. grd_clcjlist.rebuild();
  140. var row = model.getValue("/root/main/item1/clcj/rownum");
  141. var rows = grd_clcjlist.rows;
  142. for (var i=1; i<rows; i++) {
  143. if (row == model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum") ) {
  144. model.setValue("/root/main/item1/clcj/list["+ i +"]/detldesc", model.getValue("/root/main/item1/clcj/detldesc"));
  145. grd_clcjlist.row = i;
  146. }
  147. }
  148. } else {
  149. messageBox("상위화면이 변경되어 데이터를 초기화 할 수", "I004"); ///상위화면이 변경되어 데이터를 초기화 할 수 없습니다.
  150. }
  151. if(unitflag == "M"){
  152. // btn_delete.visible = false;
  153. // btn_save.visible = false;
  154. // btn_add.visible = false;
  155. // 2008.01.04 박지욱 수정 - 특정내역 추가, 삭제 버튼을 보여주도록 함, 명세서단위 특정내역 입력시에도 가능하도록
  156. }
  157. model.refresh();
  158. }
  159. // 입력된 특정내역의 길이를 체크한다.
  160. function fCheckspclspecLength() {
  161. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  162. return spclspec.isByteSize(1050); // (stringHelper.js) 문자열의 Byte 크기가 제한값을 벗어나는지 체크 (벗어나면 false 리턴)
  163. }
  164. // 특정 내역 코드에 대한 상세설명 가져오는 부분
  165. function fSetDetldesc() {
  166. var spclcd = model.getValue("/root/main/item1/clcj/spclcd")
  167. var detldesccnt = getNodesetCount("/root/init/P0117list/P0117");
  168. detldesccnt = detldesccnt + 1;
  169. for (var i=1; i<detldesccnt; i++) {
  170. var cdid = model.getValue("/root/init/P0117list/P0117["+ i +"]/cdid");
  171. if (spclcd == cdid) {
  172. model.setValue("/root/main/item1/clcj/detldesc",model.getValue("/root/init/P0117list/P0117["+ i +"]/detldesc"));
  173. return;
  174. }
  175. }
  176. }
  177. // 메모 가져오기
  178. function fSetJudgMemoRefresh(){
  179. var memo = model.getValue("/root/hidden/sppiz00700/rslt/memo");
  180. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  181. if (memo) {
  182. if (spclspec) { // 기존 심사메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  183. model.setValue("/root/main/item1/clcj/spclspec", spclspec +" \n"+ memo);
  184. } else {
  185. model.setValue("/root/main/item1/clcj/spclspec", memo);
  186. }
  187. model.refresh();
  188. }
  189. }
  190. // 심사Comment 조회 Popup에서 선택한 EDI메모를 설정한다.
  191. function fSetEdiMemoRefresh(){
  192. var memo = model.getValue("/root/hidden/sppiz00700/rslt/memo");
  193. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  194. if (memo) {
  195. if (spclspec) { // 기존 청구메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  196. model.setValue("/root/main/item1/clcj/spclspec", spclspec +" \n"+ memo);
  197. } else {
  198. model.setValue("/root/main/item1/clcj/spclspec", memo);
  199. }
  200. model.refresh();
  201. }
  202. }
  203. //특정상세내역을 수정한경우 밑에 리스트에 적용한다. 2007.09.23 박도형
  204. function fSetSpclspec(){
  205. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  206. var spclcd = model.getValue("/root/main/item1/clcj/spclcd");
  207. var detldesc = model.getValue("/root/main/item1/clcj/detldesc");
  208. var remfact = model.getValue("/root/main/item1/clcj/remfact");
  209. var unitflag = model.getValue("/root/hidden/clcj/cond/unitflag");
  210. //명단위 인경우 한개씩 수정이라 무조건 첫번째 것에 셋팅한다. - 2007.09.24 박도형
  211. //여러 명단위 특정내역 입력 가능하게 수정 - 2008.01.04 박지욱
  212. if(unitflag == "M"){
  213. // model.setValue("/root/main/item1/clcj/list["+ 1 +"]/spclcd",spclcd);
  214. // model.setValue("/root/main/item1/clcj/list["+ 1 +"]/spclspec",spclspec);
  215. // model.setValue("/root/main/item1/clcj/list["+ 1 +"]/detldesc",detldesc);
  216. // model.setValue("/root/main/item1/clcj/list["+ 1 +"]/remfact",remfact);
  217. // model.setValue("/root/main/item1/clcj/list["+ 1 +"]/unitflag",unitflag);
  218. }else{
  219. for(var i = 1; i < grd_clcjlist.rows ; i++){
  220. var oldspclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcd");
  221. var oldspclspec = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclspec");
  222. if(oldspclcd == spclcd){
  223. model.setValue("/root/main/item1/clcj/list["+ i +"]/spclspec", spclspec);
  224. model.setValue("/root/main/item1/clcj/list["+ 1 +"]/unitflag",unitflag);
  225. }
  226. }
  227. }
  228. }
  229. // SPPIZ00700_심사Comment조회.xrw 호출
  230. function fGetJudgComment(memocls) {
  231. // memoflag - 메모구분(1:심사자메모, 2:EDI메모, 3:줄단위메모, 4:타부서전달)
  232. // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  233. var unitflag = model.getValue("/root/main/item1/clcj/unitflag");
  234. var memoflag = "";
  235. if (unitflag == "M") { // 명세서 단위인 경우 2:EDI메모
  236. memoflag = "2";
  237. } else { // 줄번호 단위인 경우 3:줄단위메모
  238. memoflag = "3";
  239. }
  240. model.resetInstanceNode("/root/hidden/sppiz00700/rslt");
  241. model.resetInstanceNode("/root/hidden/sppiz00700/cond");
  242. model.setValue("/root/hidden/sppiz00700/cond/memoflag", memoflag);
  243. model.setValue("/root/hidden/sppiz00700/cond/memocls", memocls);
  244. modal("SPPIZ00700", "1", "400", "100", "SPPIZ00700", "/root/hidden/sppiz00700", "/root/send/sppiz00700", "", "");
  245. }
  246. function fGetJudgComment(memocls, ediitem1) {
  247. // memoflag - 메모구분(1:심사자메모, 2:EDI메모, 3:줄단위메모, 4:타부서전달)
  248. // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  249. var unitflag = model.getValue("/root/main/item1/clcj/unitflag");
  250. var memoflag = "";
  251. if (unitflag == "M") { // 명세서 단위인 경우 2:EDI메모
  252. memoflag = "2";
  253. } else { // 줄번호 단위인 경우 3:줄단위메모
  254. memoflag = "3";
  255. }
  256. model.resetInstanceNode("/root/hidden/sppiz00700/rslt");
  257. model.resetInstanceNode("/root/hidden/sppiz00700/cond");
  258. model.setValue("/root/hidden/sppiz00700/cond/memoflag", memoflag);
  259. model.setValue("/root/hidden/sppiz00700/cond/memocls", memocls);
  260. model.setValue("/root/hidden/sppiz00700/cond/ediitem1", ediitem1);
  261. modal("SPPIZ00700", "1", "400", "100", "SPPIZ00700", "/root/hidden/sppiz00700", "/root/send/sppiz00700", "", "");
  262. }
  263. // 심사Comment 조회 Popup에서 선택한 EDI메모를 설정한다.
  264. // SPPIZ00700_심사Comment조회.xrw 에서 opener.javascript.fSetEdiMemoRefresh(); 형태로 호출한다.
  265. function fSetEdiMemoRefresh(){
  266. var memo = model.getValue("/root/hidden/sppiz00700/rslt/memo");
  267. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  268. if (memo) {
  269. // model.setValue("/root/main/item1/clsp/spclcd", "MX999");
  270. // model.setValue("/root/main/item1/clsp/detldesc", "영문(700자), 한글(350자)");
  271. // model.setValue("/root/main/item1/clsp/spclformat", "X(700)");
  272. // model.setValue("/root/main/item1/clsp/cdnm", "기타내역");
  273. if (spclspec) { // 기존 청구메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  274. model.setValue("/root/main/item1/clcj/spclspec", spclspec +" \n"+ memo);
  275. } else {
  276. model.setValue("/root/main/item1/clcj/spclspec", memo);
  277. }
  278. model.refresh();
  279. }
  280. }
  281. // 심사Comment 조회 Popup에서 선택한 줄단위메모를 설정한다.
  282. // SPPIZ00700_심사Comment조회.xrw 에서 opener.javascript.fSetLnUnitMemoRefresh(); 형태로 호출한다.
  283. function fSetLnUnitMemoRefresh(){
  284. var memo = model.getValue("/root/hidden/sppiz00700/rslt/memo");
  285. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  286. if (memo) {
  287. if (model.getValue("/root/main/item1/clcj/spclcd") == "") {
  288. model.setValue("/root/main/item1/clcj/spclcd", "JX999");
  289. model.setValue("/root/main/item1/clcj/detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  290. model.setValue("/root/main/item1/clcj/remfact", "X(700)");
  291. //model.setValue("/root/main/item1/clcj/cdnm", "기타내역");
  292. }
  293. if (spclspec) { // 기존 줄단위메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  294. model.setValue("/root/main/item1/clcj/spclspec", spclspec +" \n"+ memo);
  295. } else {
  296. model.setValue("/root/main/item1/clcj/spclspec", memo);
  297. }
  298. model.refresh();
  299. }
  300. }
  301. ]]>
  302. </script>
  303. </xhtml:head>
  304. <xhtml:body pagewidth="611" pageheight="591" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  305. <group id="grp_biz" scroll="auto" style="left:0px; top:0px; width:595px; height:560px; ">
  306. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:100px; height:13px; ">특정내역 상세</caption>
  307. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:594px; y2:25px; "/>
  308. <caption id="caption2" class="cell_1" style="left:0px; top:30px; width:59px; height:23px; ">EDI코드</caption>
  309. <output id="opt_edicd" ref="/root/main/item1/clcj/edicd" class="output_fix" style="left:62px; top:31px; width:100px; height:19px; "/>
  310. <caption id="caption4" class="cell_1" style="left:164px; top:30px; width:59px; height:23px; ">특정코드</caption>
  311. <select1 id="cmb_spclcd" ref="/root/main/item1/clcj/spclcd" class="combo_default" appearance="minimal" style="left:226px; top:31px; width:364px; height:19px; ">
  312. <choices>
  313. <itemset nodeset="/root/init/P0117list/P0117">
  314. <label ref="cdengabbrnm"/>
  315. <value ref="cdid"/>
  316. </itemset>
  317. </choices>
  318. <script type="javascript" ev:event="xforms-select">
  319. <![CDATA[
  320. //var index = cmb_spclcd.focusIndex + 1; // 시작 인덱스 = 0 대신에 empty 상태의 초기 빈 node를 추가하였음
  321. var spclcd = cmb_spclcd.value;
  322. var p0117list = instance1.selectSingleNode("/root/init/P0117list");
  323. var p0117 = p0117list.childNodes;
  324. // model.resetInstanceNode("/root/main/item1/clcj/spclcd");
  325. model.resetInstanceNode("/root/main/item1/clcj/spclspec");
  326. // model.resetInstanceNode("/root/main/item1/clcj/remfact");
  327. for (var i=0; i<=p0117.length; i++) {
  328. var chk_spclcd = model.getValue("/root/init/P0117list/P0117[" + i + "]/cdid");
  329. if(spclcd == chk_spclcd){
  330. var format = model.getValue("/root/init/P0117list/P0117[" + i + "]/cdval");
  331. var detldesc = model.getValue("/root/init/P0117list/P0117[" + i + "]/detldesc");
  332. var spclcdnm = model.getValue("/root/init/P0117list/P0117[" + i + "]/cdnm");
  333. model.setValue("/root/main/item1/clcj/detldesc", detldesc);
  334. model.setValue("/root/main/item1/clcj/remfact", format);
  335. model.makeValue("/root/main/item1/clcj/spclcdnm", spclcdnm);
  336. }
  337. }
  338. model.refresh();
  339. ]]>
  340. </script>
  341. </select1>
  342. <line id="line2" class="line_2" style="x1:0px; y1:52px; x2:594px; y2:52px; "/>
  343. <caption id="caption5" class="cell_1" style="left:0px; top:184px; width:59px; height:146px; ">특정내역</caption>
  344. <textarea id="tar_spclspec" ref="/root/main/item1/clcj/spclspec" style="left:62px; top:185px; width:532px; height:142px; "/>
  345. <line id="line3" class="line_2" style="x1:0px; y1:183px; x2:594px; y2:183px; "/>
  346. <caption id="caption6" class="cell_1" style="left:0px; top:331px; width:59px; height:23px; ">기재형식</caption>
  347. <output id="opt_remfact" ref="/root/main/item1/clcj/remfact" class="output_fix" style="left:62px; top:332px; width:532px; height:19px; "/>
  348. <line id="line4" class="line_3" style="x1:0px; y1:353px; x2:594px; y2:353px; "/>
  349. <button id="btn_add" class="btn2_letter2" style="left:502px; top:360px; width:42px; height:19px; ">
  350. <caption>추가</caption>
  351. <script type="javascript" ev:event="DOMActivate">
  352. <![CDATA[
  353. var rows = grd_clcjlist.rows;
  354. var calcscorcd = model.getValue("/root/main/item1/clcj/calcscorcd"); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  355. var edicd = model.getValue("/root/main/item1/clcj/edicd");
  356. var spclcd = model.getValue("/root/main/item1/clcj/spclcd");
  357. var spclcdnm = model.getValue("/root/main/item1/clcj/spclcdnm");
  358. var detldesc = model.getValue("/root/main/item1/clcj/detldesc");
  359. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  360. var remfact = model.getValue("/root/main/item1/clcj/remfact");
  361. // 2008.01.04 박지욱 수정 - remfact (형식) 자릿수 50 제한 처리
  362. remfact = remfact.substring(0,50);
  363. var grdspclcd = "";
  364. var rownum = "";
  365. var setrow = 0;
  366. if (spclcd == "") {
  367. messageBox("특정코드를", "C002"); ///특정코드를 필수 입력
  368. return;
  369. }
  370. for (var i=1; i<rows; i++) {
  371. grdspclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcd");
  372. if ( spclcd == grdspclcd && grdspclcd == "JX999" ) {
  373. var rowHidden = grd_clcjlist.rowHidden(i);
  374. if (rowHidden == "1") {
  375. grd_clcjlist.rowHidden(i) = false;
  376. setrow = i;
  377. rownum = model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum");
  378. } else {
  379. messageBox("특정코드 'JX999'가 존재하므로 추가할 수", "I004"); ///특정코드 'JX999'가 존재하므로 추가할 수 없습니다.
  380. return;
  381. }
  382. } else if ( spclcd == grdspclcd && grdspclcd == "MT015" ) {
  383. var rowHidden = grd_clcjlist.rowHidden(i);
  384. if (rowHidden == "1") {
  385. grd_clcjlist.rowHidden(i) = false;
  386. setrow = i;
  387. rownum = model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum");
  388. } else {
  389. messageBox("특정코드 'MT015'가 존재하므로 추가할 수", "I004"); ///특정코드 'MT015'가 존재하므로 추가할 수 없습니다.
  390. return;
  391. }
  392. } else if ( spclcd == grdspclcd && grdspclcd == "MT016 " ) {
  393. var rowHidden = grd_clcjlist.rowHidden(i);
  394. if (rowHidden == "1") {
  395. grd_clcjlist.rowHidden(i) = false;
  396. setrow = i;
  397. rownum = model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum");
  398. } else {
  399. messageBox("특정코드 'MT016'가 존재하므로 추가할 수", "I004"); ///특정코드 'MT016'가 존재하므로 추가할 수 없습니다.
  400. return;
  401. }
  402. }
  403. }
  404. var row = 0;
  405. if (setrow == 0) {
  406. grd_clcjlist.addItem();
  407. row = grd_clcjlist.row;
  408. model.setValue("/root/main/item1/clcj/list["+ row +"]/flag","I");
  409. } else {
  410. row = setrow;
  411. }
  412. model.setValue("/root/main/item1/clcj/list["+ row +"]/calcscorcd",calcscorcd);
  413. model.setValue("/root/main/item1/clcj/list["+ row +"]/edicd",edicd);
  414. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclcd",spclcd);
  415. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclcdnm",spclcdnm);
  416. model.setValue("/root/main/item1/clcj/list["+ row +"]/detldesc",detldesc);
  417. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclspec",spclspec);
  418. model.setValue("/root/main/item1/clcj/list["+ row +"]/remfact",remfact);
  419. model.setValue("/root/main/item1/clcj/list["+ row +"]/rownum",rownum);
  420. // 특정코드, 상세설명, 특정내역, 기재형식 초기화 - 2007.12.31 박지욱 수정
  421. model.setValue("/root/main/item1/clcj/spclcd", "");
  422. model.setValue("/root/main/item1/clcj/spclcdnm", "");
  423. model.setValue("/root/main/item1/clcj/detldesc", "");
  424. model.setValue("/root/main/item1/clcj/spclspec", "");
  425. model.setValue("/root/main/item1/clcj/remfact", "");
  426. grd_clcjlist.row = 0;
  427. model.refresh();
  428. ]]>
  429. </script>
  430. </button>
  431. <button id="btn_save" class="btn2_letter2" visibility="hidden" style="left:412px; top:360px; width:42px; height:19px; ">
  432. <caption>저장</caption>
  433. <script type="javascript" ev:event="DOMActivate">
  434. <![CDATA[
  435. var flag = model.getValue("/root/main/item1/clcj/flag");
  436. var calcscorcd = model.getValue("/root/main/item1/clcj/calcscorcd"); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  437. var edicd = model.getValue("/root/main/item1/clcj/edicd");
  438. var spclcd = model.getValue("/root/main/item1/clcj/spclcd");
  439. var spclcdnm = model.getValue("/root/main/item1/clcj/spclcdnm");
  440. var detldesc = model.getValue("/root/main/item1/clcj/detldesc");
  441. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  442. var remfact = model.getValue("/root/main/item1/clcj/remfact");
  443. var rownum = model.getValue("/root/main/item1/clcj/rownum");
  444. var row = grd_clcjlist.row;
  445. var rows = grd_clcjlist.rows;
  446. if (row > 0) {
  447. for (var i=1; i<rows; i++) {
  448. grdspclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcd");
  449. if (row != i) {
  450. if ( spclcd == grdspclcd && grdspclcd == "JX999" ) {
  451. var rowHidden = grd_clcjlist.rowHidden(i);
  452. if (rowHidden == "1") {
  453. grd_clcjlist.rowHidden(i) = false;
  454. rownum = model.getValue("/root/main/item1/clcj/list["+ row +"]/rownum");
  455. } else {
  456. messageBox("특정코드 'JX999'가 존재하므로 'JX999'로 변경할 수", "I004");
  457. return;
  458. }
  459. } else if ( spclcd == grdspclcd && grdspclcd == "MT015" ) {
  460. var rowHidden = grd_clcjlist.rowHidden(i);
  461. if (rowHidden == "1") {
  462. grd_clcjlist.rowHidden(i) = false;
  463. rownum = model.getValue("/root/main/item1/clcj/list["+ row +"]/rownum");
  464. } else {
  465. messageBox("특정코드 'MT015'가 존재하므로 'MT015'로 변경할 수", "I004"); ///특정코드 'MT015'가 존재하므로 추가할 수 없습니다.
  466. return;
  467. }
  468. } else if ( spclcd == grdspclcd && grdspclcd == "MT016 " ) {
  469. var rowHidden = grd_clcjlist.rowHidden(i);
  470. if (rowHidden == "1") {
  471. grd_clcjlist.rowHidden(i) = false;
  472. rownum = model.getValue("/root/main/item1/clcj/list["+ row +"]/rownum");
  473. } else {
  474. messageBox("특정코드 'MT016'가 존재하므로 'MT016로 변경할 수", "I004"); ///특정코드 'MT016'가 존재하므로 추가할 수 없습니다.
  475. return;
  476. }
  477. }
  478. }
  479. }
  480. model.setValue("/root/main/item1/clcj/list["+ row +"]/flag", flag);
  481. model.setValue("/root/main/item1/clcj/list["+ row +"]/calcscorcd",calcscorcd); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  482. model.setValue("/root/main/item1/clcj/list["+ row +"]/edicd",edicd);
  483. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclcd",spclcd);
  484. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclcdnm",spclcdnm);
  485. model.setValue("/root/main/item1/clcj/list["+ row +"]/detldesc",detldesc);
  486. model.setValue("/root/main/item1/clcj/list["+ row +"]/spclspec",spclspec);
  487. model.setValue("/root/main/item1/clcj/list["+ row +"]/remfact",remfact);
  488. model.setValue("/root/main/item1/clcj/list["+ row +"]/rownum",rownum);
  489. model.refresh();
  490. } else {
  491. messageBox("저장할 수 있는 특정 내역이", "I004"); ///특정코드를 필수 입력
  492. return;
  493. }
  494. ]]>
  495. </script>
  496. </button>
  497. <button id="btn_delete" class="btn2_letter2" style="left:457px; top:360px; width:42px; height:19px; ">
  498. <caption>삭제</caption>
  499. <script type="javascript" ev:event="DOMActivate">
  500. <![CDATA[
  501. var row = grd_clcjlist.row;
  502. if (row > 0) {
  503. grd_clcjlist.rowHidden(row) = true;
  504. model.setValue("/root/main/item1/clcj/list["+ row +"]/flag","D");
  505. // 특정코드, 상세설명, 특정내역, 기재형식 초기화 - 2007.12.31 박지욱 수정
  506. model.setValue("/root/main/item1/clcj/spclcd", "");
  507. model.setValue("/root/main/item1/clcj/spclcdnm", "");
  508. model.setValue("/root/main/item1/clcj/detldesc", "");
  509. model.setValue("/root/main/item1/clcj/spclspec", "");
  510. model.setValue("/root/main/item1/clcj/remfact", "");
  511. grd_clcjlist.row= 0;
  512. model.refresh();
  513. } else {
  514. messageBox("삭제할 특정 내역을", "C002"); ///특정코드를 필수 입력
  515. return;
  516. }
  517. ]]>
  518. </script>
  519. </button>
  520. <datagrid id="grd_clcjlist" nodeset="/root/main/item1/clcj/list" caption="flag^row^수가코드^EDI코드^특정코드^특정내역^기재형식^unitflag^상세설명^기존특정코드^기존특정내역^특정코드명" colsep="^" colwidth="100, 100, 100, 90, 77, 288, 116, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:385px; width:594px; height:173px; ">
  521. <col ref="flag" visibility="hidden"/>
  522. <col ref="rownum" visibility="hidden"/>
  523. <col ref="calcscorcd"/>
  524. <col ref="edicd"/>
  525. <col ref="spclcd"/>
  526. <col ref="spclspec"/>
  527. <col ref="remfact"/>
  528. <col ref="unitflag" visibility="hidden"/>
  529. <col ref="detldesc" visibility="hidden"/>
  530. <col ref="oldspclcd" visibility="hidden"/>
  531. <col ref="oldspclspec" visibility="hidden"/>
  532. <col ref="spclcdnm" visibility="hidden"/>
  533. <script type="javascript" ev:event="onclick">
  534. <![CDATA[
  535. var row = grd_clcjlist.row;
  536. if (grd_clcjlist.isCell(event.target) && grd_clcjlist.mouseRow >= grd_clcjlist.fixedrows) {
  537. model.setValue("/root/main/item1/clcj/flag",model.getValue("/root/main/item1/clcj/list["+ row +"]/flag"));
  538. model.setValue("/root/main/item1/clcj/calcscorcd",model.getValue("/root/main/item1/clcj/list["+ row +"]/calcscorcd")); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  539. model.setValue("/root/main/item1/clcj/edicd",model.getValue("/root/main/item1/clcj/list["+ row +"]/edicd"));
  540. model.setValue("/root/main/item1/clcj/spclcd",model.getValue("/root/main/item1/clcj/list["+ row +"]/spclcd"));
  541. model.setValue("/root/main/item1/clcj/detldesc",model.getValue("/root/main/item1/clcj/list["+ row +"]/detldesc"));
  542. model.setValue("/root/main/item1/clcj/spclspec",model.getValue("/root/main/item1/clcj/list["+ row +"]/spclspec"));
  543. model.setValue("/root/main/item1/clcj/remfact",model.getValue("/root/main/item1/clcj/list["+ row +"]/remfact"));
  544. model.setValue("/root/main/item1/clcj/rownum",model.getValue("/root/main/item1/clcj/list["+ row +"]/rownum"));
  545. model.setValue("/root/main/item1/clcj/spclcdnm",model.getValue("/root/main/item1/clcj/list["+ row +"]/spclcdnm"));
  546. model.refresh();
  547. }
  548. ]]>
  549. </script>
  550. </datagrid>
  551. <caption id="caption7" class="tit_2" style="left:5px; top:365px; width:100px; height:13px; ">특정내역 상세</caption>
  552. <line id="line6" class="line_1" style="x1:0px; y1:380px; x2:594px; y2:380px; "/>
  553. <textarea id="textarea1" ref="/root/main/item1/clcj/detldesc" disabled="true" style="left:62px; top:55px; width:532px; height:126px; "/>
  554. <caption id="caption8" class="cell_1" style="left:0px; top:54px; width:59px; height:128px; ">상세설명</caption>
  555. <button id="btn_memohistory_etc" class="btn2_letter2" style="left:552px; top:5px; width:42px; height:19px; ">
  556. <caption>기타</caption>
  557. <script type="javascript" ev:event="DOMActivate">
  558. <![CDATA[
  559. fGetJudgComment("99"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  560. ]]>
  561. </script>
  562. </button>
  563. <button id="btn_memohistory_treat" class="btn2_letter2" style="left:462px; top:5px; width:42px; height:19px; ">
  564. <caption>처치</caption>
  565. <script type="javascript" ev:event="DOMActivate">
  566. <![CDATA[
  567. fGetJudgComment("03"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  568. ]]>
  569. </script>
  570. </button>
  571. <button id="btn_memohistory_exam" class="btn2_letter2" style="left:507px; top:5px; width:42px; height:19px; ">
  572. <caption>검사</caption>
  573. <script type="javascript" ev:event="DOMActivate">
  574. <![CDATA[
  575. fGetJudgComment("04"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  576. ]]>
  577. </script>
  578. </button>
  579. <button id="btn_memohistory" class="btn2_letter5" style="left:294px; top:5px; width:75px; height:19px; ">
  580. <caption>줄단위메모</caption>
  581. <script type="javascript" ev:event="DOMActivate">
  582. <![CDATA[
  583. fGetJudgComment(""); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  584. ]]>
  585. </script>
  586. </button>
  587. <button id="btn_memohistory_drug" class="btn2_letter2" style="left:372px; top:5px; width:42px; height:19px; ">
  588. <caption>약</caption>
  589. <script type="javascript" ev:event="DOMActivate">
  590. <![CDATA[
  591. fGetJudgComment("01"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  592. ]]>
  593. </script>
  594. </button>
  595. <button id="btn_memohistory_injection" class="btn2_letter2" style="left:417px; top:5px; width:42px; height:19px; ">
  596. <caption>주사</caption>
  597. <script type="javascript" ev:event="DOMActivate">
  598. <![CDATA[
  599. fGetJudgComment("02"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  600. ]]>
  601. </script>
  602. </button>
  603. <button id="btn_rsltsrch" class="btn2_letter4" style="left:228px; top:5px; width:64px; height:19px; ">
  604. <caption>결과조회</caption>
  605. <script type="javascript" ev:event="DOMActivate">
  606. <![CDATA[
  607. var pid = model.getValue("/root/hidden/clcj/cond/pid");
  608. var indd = model.getValue("/root/hidden/clcj/cond/indd");
  609. if (pid != "") {
  610. model.makevalue("/root/hidden/smaer00800/cond/srchdate1", indd);
  611. model.makevalue("/root/hidden/smaer00800/cond/srchdate2", getCurrentDate());
  612. model.makevalue("/root/hidden/smaer00800/cond/srchpid", pid);
  613. model.makevalue("/root/hidden/smaer00800/cond/wardcd", "");
  614. model.makevalue("/root/hidden/smaer00800/cond/roomcd", "");
  615. model.makevalue("/root/hidden/smaer00800/cond/listflag", "P");
  616. model.makevalue("/root/hidden/smaer00800/cond/deptcd", "");
  617. model.makevalue("/root/hidden/smaer00800/cond/drid", "");
  618. model.makevalue("/root/hidden/smaer00800/cond/chkcheck", "");
  619. model.makevalue("/root/hidden/smaer00800/cond/chkcheck1", "A");
  620. model.makevalue("/root/hidden/smaer00800/cond/chkcheck2", "B");
  621. model.makevalue("/root/hidden/smaer00800/cond/chkcheck3", "C");
  622. model.makevalue("/root/hidden/smaer00800/cond/chkcheck4", "D");
  623. model.makevalue("/root/hidden/smaer00800/cond/chkcheck5", "E");
  624. model.makevalue("/root/hidden/smaer00800/cond/chkcheck6", "F");
  625. model.makevalue("/root/hidden/smaer00800/cond/chkcheck7", "G");
  626. model.makevalue("/root/hidden/smaer00800/cond/chkcheck8", "");
  627. model.makevalue("/root/hidden/smaer00800/cond/tabflag", "");
  628. model.makevalue("/root/hidden/smaer00800/cond/mdlcd", "");
  629. model.makevalue("/root/hidden/smaer00800/cond/examgubun", "");
  630. open("SMAER00800" ,"", "10", "10", "SMAER00800", "/root/hidden/smaer00800/cond", "/root/send/data/singdata", "", "");
  631. }
  632. ]]>
  633. </script>
  634. </button>
  635. <button id="btn_modify" class="btn2_letter2" style="left:547px; top:360px; width:42px; height:19px; ">
  636. <caption>수정</caption>
  637. <script type="javascript" ev:event="DOMActivate">
  638. <![CDATA[
  639. // JX999의 경우 특정내역을 수정한다. - 20081022 박창원
  640. var rows = grd_clcjlist.rows;
  641. var spclcd = model.getValue("/root/main/item1/clcj/spclcd");
  642. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  643. var remfact = model.getValue("/root/main/item1/clcj/remfact");
  644. // 2008.01.04 박지욱 수정 - remfact (형식) 자릿수 50 제한 처리
  645. remfact = remfact.substring(0,50);
  646. var grdspclcd = "";
  647. var rownum = "";
  648. var setrow = 0;
  649. if (spclcd == "") {
  650. messageBox("특정코드를", "C002"); ///특정코드를 필수 입력
  651. return;
  652. }
  653. for (var i=1; i<rows; i++) {
  654. var grdspclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcd");
  655. if ( spclcd == grdspclcd && grdspclcd == "JX999" ) {
  656. var rowHidden = grd_clcjlist.rowHidden(i);
  657. if (rowHidden == "1") {
  658. grd_clcjlist.rowHidden(i) = false;
  659. setrow = i;
  660. rownum = model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum");
  661. } else {
  662. // 이부분에 특정내역을 추가한다. - 20081022 박창원
  663. model.setValue("/root/main/item1/clcj/list["+ i +"]/spclspec",spclspec);
  664. }
  665. }
  666. // 특정코드, 상세설명, 특정내역, 기재형식 초기화 - 2007.12.31 박지욱 수정
  667. model.setValue("/root/main/item1/clcj/spclcd", "");
  668. model.setValue("/root/main/item1/clcj/spclcdnm", "");
  669. model.setValue("/root/main/item1/clcj/detldesc", "");
  670. model.setValue("/root/main/item1/clcj/spclspec", "");
  671. model.setValue("/root/main/item1/clcj/remfact", "");
  672. grd_clcjlist.row = 0;
  673. }
  674. model.refresh();
  675. ]]>
  676. </script>
  677. </button>
  678. </group>
  679. <group id="grp_btn" scroll="auto" style="left:0px; top:564px; width:595px; height:27px; ">
  680. <line id="line5" class="line_6" style="x1:0px; y1:0px; x2:594px; y2:0px; "/>
  681. <button id="btn_cancel" class="btn4_letter2" style="left:538px; top:5px; width:56px; height:22px; ">
  682. <caption>취소</caption>
  683. <close ev:event="DOMActivate"/>
  684. </button>
  685. <button id="btn_confirm" class="btn4_letter2" style="left:479px; top:5px; width:56px; height:22px; ">
  686. <caption>확인</caption>
  687. <script type="javascript" ev:event="DOMActivate">
  688. <![CDATA[
  689. if (checkOpener()) { // (common.js) 자신을 Open한 opener의 현재 UID가 자신을 open한 시점의 UID와 비교하여 변경되었는지 여부를 반환
  690. // 2008. 01. 21 박지욱 추가 (추가버튼 누르지 않고 확인 누를 때 자동으로 들어갈 수 있게 처리)
  691. if (grd_clcjlist.row > 0) {
  692. btn_save.dispatch("DOMActivate");
  693. } else {
  694. var spclcd = model.getValue("/root/main/item1/clcj/spclcd");
  695. var spclspec = model.getValue("/root/main/item1/clcj/spclspec");
  696. if (spclcd != "" && spclspec != "") {
  697. //alert(grd_clsplist.row); // -1
  698. btn_add.dispatch("DOMActivate");
  699. //alert("btn_add.dispatch = " + model.getValue("/root/main/item1/clsp/selectedrow"));
  700. }
  701. }
  702. var rows = grd_clcjlist.rows;
  703. fSetSpclspec();
  704. for (var i=1; i<rows; i++) {
  705. var flag = model.getValue("/root/main/item1/clcj/list["+ i +"]/flag");
  706. var calcscorcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/calcscorcd"); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  707. var edicd = model.getValue("/root/main/item1/clcj/list["+ i +"]/edicd");
  708. var rownum = model.getValue("/root/main/item1/clcj/list["+ i +"]/rownum");
  709. var spclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcd");
  710. var spclspec = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclspec").getTrim();
  711. var remfact = model.getValue("/root/main/item1/clcj/list["+ i +"]/remfact");
  712. var oldspclcd = model.getValue("/root/main/item1/clcj/list["+ i +"]/oldspclcd");
  713. var oldspclspec = model.getValue("/root/main/item1/clcj/list["+ i +"]/oldspclspec");
  714. var detldesc = model.getValue("/root/main/item1/clcj/list["+ i +"]/detldesc");
  715. var spclcdnm = model.getValue("/root/main/item1/clcj/list["+ i +"]/spclcdnm");
  716. // 입력된 특정내역의 길이를 체크한다. (특정내역 필드 길이 = 1750 Byte 임)
  717. if (spclspec.isByteSize(1750) == false) { // (stringHelper.js) 문자열의 Byte 크기가 제한값을 벗어나는지 체크 (벗어나면 false 리턴)
  718. messageBox("특정내역 입력 제한길이(1750 Byte)를", "E003"); ///특정내역 입력 제한길이(1750 Byte)를 초과하였습니다
  719. return;
  720. }
  721. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/flag", flag);
  722. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/calcscorcd", calcscorcd); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  723. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/edicd", edicd);
  724. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/spclcd", spclcd);
  725. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/spclspec", spclspec);
  726. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/remfact", remfact);
  727. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/rownum", rownum);
  728. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/oldspclcd", oldspclcd);
  729. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/oldspclspec", oldspclspec);
  730. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/detldesc", detldesc);
  731. model.makevalue("/root/hidden/clcj/rslt/list[" + i + "]/spclcdnm", spclcdnm);
  732. }
  733. model.copyNode(opener.root.hidden.sppij00500, "/root/hidden/clcj");
  734. } else {
  735. messageBox("상위화면이 변경되어 데이터를 전달할 수", "I004"); ///상위화면이 변경되어 데이터를 전달할 수 없습니다.
  736. }
  737. window.close(); // F5 실행시 IE를 종료시킨다.
  738. ]]>
  739. </script>
  740. </button>
  741. </group>
  742. </xhtml:body>
  743. </xhtml:html>