SMPMB01700_질병코드관리.xfdl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMPMB01700" position="absolute 0 0 504 645" titletext="질병코드관리" onload="SMPMB01700_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div id="grp" position="absolute 0 24 503 64" style="align: top;" class="div_SA">
  8. <Layouts>
  9. <Layout width="503" height="35">
  10. <Shape id="line3" class="line_4" linetype="vertical" position="absolute 432 10 435 32" style="border: solid #ffe4bb #ffe4bb;" anchor="top right"/>
  11. <Button id="btn_search" taborder="1" text="조회" onclick="btn_search_onclick" class="btn1" position="absolute 440 10 496 32" anchor="top right"/>
  12. <Edit id="ipt_srchcnts" taborder="2" onkeydown="ipt_srchcnts_onkeydown" class="input_essential" position="absolute 8 11 425 30" onkeypress="ipt_srchcnts_onkeypress" anchor="default"/>
  13. </Layout>
  14. </Layouts>
  15. </Div>
  16. <Static id="caption1" class="tit_2" position="absolute 0 72 123 88" style="" text="증상 및 질환내역"/>
  17. <Shape id="line1" class="line_10" linetype="horizontal" position="absolute 0 89 503 93" style="" anchor="default"/>
  18. <Shape id="line7" class="line_3" linetype="horizontal" position="absolute 0 117 502 120" style="" anchor="default"/>
  19. <Static id="caption3" class="cell_1" position="absolute 0 93 127 116" style="" text="질병명"/>
  20. <Edit id="ipt_sicknm" class="input_essential" position="absolute 129 93 502 116" style="" anchor="default" onkeypress="ipt_sicknm_onkeypress" onkeydown="ipt_sicknm_onkeydown"/>
  21. <Shape id="line8" class="line_10" linetype="horizontal" position="absolute 0 143 503 147" style="" anchor="default"/>
  22. <Grid id="grd_sickcdlist" binddataset="ds_main_sickcdspec_sickcdspeclist" position="absolute 0 147 503 617" style="" oncellclick="grd_sickcdlist_oncellclick">
  23. <Formats>
  24. <Format id="default">
  25. <Columns>
  26. <Column size="25" band="left"/>
  27. <Column size="190"/>
  28. <Column size="134"/>
  29. <Column size="74"/>
  30. <Column size="0"/>
  31. <Column size="0"/>
  32. </Columns>
  33. <Rows>
  34. <Row size="25" band="head"/>
  35. <Row size="25"/>
  36. </Rows>
  37. <Band id="head">
  38. <Cell/>
  39. <Cell col="1" text="질병명"/>
  40. <Cell col="2" text="수정일시"/>
  41. <Cell col="3" text="수정자"/>
  42. <Cell col="4" text="seqno"/>
  43. <Cell col="5" text="sickcd"/>
  44. </Band>
  45. <Band id="body">
  46. <Cell celltype="head"/>
  47. <Cell col="1" style="align:center top;padding:5 3 3 3;" text="bind:sicknm" wordwrap="char"/>
  48. <Cell col="2" displaytype="date" style="align:left middle;" text="bind:lastupdtdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="nulltext"/>
  49. <Cell col="3" style="align:center middle;" text="bind:lastupdtrid"/>
  50. <Cell col="4" text="bind:seqno"/>
  51. <Cell col="5" text="bind:sickcd"/>
  52. </Band>
  53. </Format>
  54. </Formats>
  55. </Grid>
  56. <Static id="caption20" class="tit_2" position="absolute 0 126 205 143" style="" text="증상 및 질환내역 리스트"/>
  57. <Button id="btn_update" class="btn4" position="absolute 318 120 374 142" text="저장" onclick="btn_update_onclick" anchor="default"/>
  58. <Button id="btn_delete" class="btn4" position="absolute 376 120 432 142" text="삭제" onclick="btn_delete_onclick"/>
  59. <Button id="btn_clear" class="btn4" position="absolute 434 120 502 142" text="초기화" onclick="btn_clear_onclick" anchor="default"/>
  60. <Button id="button9" class="btn4" visible="false" position="absolute 447 620 503 642" text="취소" onclick="button9_onclick" anchor="right bottom"/>
  61. <Static id="caption6" text="증상 및 질환관리" class="tit_1" position="absolute 0 0 160 25"/>
  62. </Layout>
  63. </Layouts>
  64. <Objects>
  65. <Dataset id="ds_hidden_desc" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  66. <ColumnInfo>
  67. <Column id="sickcd" type="STRING" size="256"/>
  68. <Column id="sicknm" type="STRING" size="256"/>
  69. <Column id="seqno" type="STRING" size="256"/>
  70. </ColumnInfo>
  71. <Rows>
  72. <Row>
  73. <Col id="sickcd"/>
  74. <Col id="sicknm"/>
  75. <Col id="seqno"/>
  76. </Row>
  77. </Rows>
  78. </Dataset>
  79. <Dataset id="ds_main_result_srchcnts" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  80. <ColumnInfo>
  81. <Column id="sicknm" type="STRING" size="256"/>
  82. <Column id="lastupdtdt" type="STRING" size="256"/>
  83. <Column id="lastupdtrid" type="STRING" size="256"/>
  84. <Column id="sickcd" type="STRING" size="256"/>
  85. <Column id="seqno" type="STRING" size="256"/>
  86. </ColumnInfo>
  87. <Rows>
  88. <Row>
  89. <Col id="sicknm"/>
  90. <Col id="lastupdtdt"/>
  91. <Col id="lastupdtrid"/>
  92. <Col id="sickcd"/>
  93. <Col id="seqno"/>
  94. </Row>
  95. </Rows>
  96. </Dataset>
  97. <Dataset id="ds_main" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  98. <ColumnInfo>
  99. <Column id="sicknm" type="STRING" size="256"/>
  100. </ColumnInfo>
  101. </Dataset>
  102. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  103. <ColumnInfo>
  104. <Column id="init" type="STRING" size="256"/>
  105. </ColumnInfo>
  106. </Dataset>
  107. <Dataset id="ds_main_sickcdspec_sickcdspeclist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  108. <ColumnInfo>
  109. <Column id="seqno" type="STRING" size="256"/>
  110. <Column id="sickcd" type="STRING" size="256"/>
  111. <Column id="lastupdtrid" type="STRING" size="256"/>
  112. <Column id="lastupdtdt" type="STRING" size="256"/>
  113. <Column id="sicknm" type="STRING" size="256"/>
  114. </ColumnInfo>
  115. <Rows>
  116. <Row>
  117. <Col id="seqno"/>
  118. <Col id="sickcd"/>
  119. <Col id="lastupdtrid"/>
  120. <Col id="lastupdtdt"/>
  121. <Col id="sicknm"/>
  122. </Row>
  123. </Rows>
  124. </Dataset>
  125. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  126. <ColumnInfo>
  127. <Column id="srchcond" type="STRING" size="256"/>
  128. <Column id="srchcnts" type="STRING" size="256"/>
  129. <Column id="updatedata" type="STRING" size="256"/>
  130. <Column id="sicknm" type="STRING" size="256"/>
  131. </ColumnInfo>
  132. <Rows>
  133. <Row>
  134. <Col id="srchcond">A</Col>
  135. <Col id="srchcnts"/>
  136. <Col id="updatedata"/>
  137. <Col id="sicknm"/>
  138. </Row>
  139. </Rows>
  140. </Dataset>
  141. <Dataset id="ds_send_updatedatalist_datalist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  142. <ColumnInfo/>
  143. </Dataset>
  144. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  145. <ColumnInfo/>
  146. </Dataset>
  147. <Dataset id="ds_main_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  148. <ColumnInfo/>
  149. </Dataset>
  150. </Objects>
  151. <Bind>
  152. <BindItem id="item1" compid="ipt_sicknm" propid="value" datasetid="ds_main" columnid="sicknm"/>
  153. <BindItem id="item0" compid="grp.ipt_srchcnts" propid="value" datasetid="ds_send" columnid="srchcnts"/>
  154. </Bind>
  155. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs";
  156. include "com_basiccodexp::ZBC001.xjs";
  157. var arErrorCode = new HashArray();
  158. function SMPMB01700_onload(obj:Form, e:LoadEventInfo) {
  159. frmf_initForm(obj);
  160. grdf_initGrid(grd_sickcdlist);
  161. grdf_setRowTypeIcon(grd_sickcdlist, 0);
  162. if (frmf_checkOpener()){ //팝업화면으로 사용될 때
  163. button9.visible = true;
  164. }
  165. fInitialize();
  166. }
  167. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  168. //조회조건부,입력부,조회부
  169. function fInitialize() {
  170. ds_send.clearData(); ds_send.addRow();
  171. ds_hidden_desc.clearData(); ds_hidden_desc.addRow();
  172. ds_main_sickcdspec_sickcdspeclist.clearData();
  173. ds_main.clearData(); ds_main.addRow();
  174. }
  175. //입력창의 내용이 기존내용과 비교하여 변경된 내역이 있는지 체크한다.
  176. //return : 변경된 경우 True, 변경된 내역이 없을 경우 False
  177. function fCheckModify() {
  178. //입력창에 매핑된 send Node 와 변경 전 데이타인 hidden Node 를 비교한다.
  179. //변경되었으면, return true
  180. //if ( (ds_hidden_desc.getColumn(0, "sickcd") ) != ( ds_send_updatedata.getColumn(0, "sickcd")) ) return true; //질병코드
  181. //if ( (ds_hidden_desc.getColumn(0, "sicknm") ) != ( ds_send_updatedata.getColumn(0, "sicknm")) ) return true; //질병명
  182. var i = 0;
  183. for (i = 0; i < ds_main_sickcdspec_sickcdspeclist.rowcount; i++) {
  184. if (ds_main_sickcdspec_sickcdspeclist.getColumn(i, "seqno") == "9999999999"){
  185. return true;
  186. }
  187. }
  188. return false;
  189. }
  190. function ipt_srchcnts_onkeydown(obj:Edit, e:KeyEventInfo) {
  191. if (e.keycode == 13) {
  192. obj.updateToDataset();
  193. grp.btn_search.click();
  194. }
  195. }
  196. function btn_search_onclick(obj:Button, e:ClickEventInfo) {
  197. if (utlf_isNull(ds_send.getColumn(0, 'srchcnts'))) {
  198. return;
  199. }
  200. //입력부, 조회부 초기화 후, 조회
  201. ds_main_sickcdspec_sickcdspeclist.clearData();
  202. ds_send_updatedatalist_datalist.clearData();
  203. ds_send_updatedatalist_datalist.addRow();
  204. ds_hidden_desc.clearData();
  205. ds_hidden_desc.addRow();
  206. //submit("TRPMB01701");
  207. var oParam = {};
  208. oParam.id = "TRPMB01701";
  209. oParam.service = "pambaseinfomngtapp.SickCd";
  210. oParam.method = "reqGetSickCdList";
  211. oParam.inds = "req=ds_send";
  212. oParam.outds = "ds_main_sickcdspec_sickcdspeclist=sickcdspeclist";
  213. oParam.async = false;
  214. tranf_submit(oParam);
  215. }
  216. function ipt_sicknm_onkeydown(obj:Edit, e:KeyEventInfo) {
  217. if (e.keycode == 13) {
  218. obj.updateToDataset();
  219. var i = 0;
  220. var strSickNm = ds_main.getColumn(0, 'sicknm');
  221. for (i = 0; i < ds_main_sickcdspec_sickcdspeclist.rowcount; i++){
  222. if (strSickNm == ds_main_sickcdspec_sickcdspeclist.getColumn(i, "sicknm")){
  223. sysf_messageBox("증상 및 질환내역 리스트에 입력하신 질병명이", "E006");
  224. return false;
  225. }
  226. }
  227. ds_send.setColumn( 0, "sicknm", strSickNm);
  228. var oParam = {};
  229. oParam.id = "TRPMB01702";
  230. oParam.service = "pambaseinfomngtapp.SickCd";
  231. oParam.method = "reqGetAddSickCdList";
  232. oParam.inds = "req=ds_send";
  233. oParam.outds = "ds_main_result_srchcnts=srchcnts";
  234. oParam.async = false;
  235. oParam.callback = "cf_TRPMB01702";
  236. tranf_submit(oParam);
  237. if(arErrorCode.pop("TRPMB01702") > -1) {
  238. var curDate = utlf_getCurrentDateTime(); //현재날짜 가져오기
  239. var strUserId = utlf_transNullToEmpty(sysf_getUserId()); //현재 사용자명 가져오기
  240. var cur_row = ds_main_sickcdspec_sickcdspeclist.addRow(); // 입력할 행 추가, 추가된 행 번호 가져오기
  241. if (utlf_isNull(ds_main_result_srchcnts.getColumn(0, "sicknm"))){
  242. //DB에 없는 내용이므로 새로 추가
  243. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "sicknm", strSickNm);
  244. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "lastupdtdt", curDate);
  245. if (strUserId != "") {
  246. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "lastupdtrid", strUserId);
  247. }
  248. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "seqno", "9999999999");
  249. //grd_sickcdlist.addStatus(cur_row,"insert"); // 행을 업데이트 상태로 변경
  250. ds_main_sickcdspec_sickcdspeclist.setRowType(cur_row, Dataset.ROWTYPE_INSERT);
  251. }else {
  252. //DB에서 조회하여 추가
  253. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "sicknm", ds_main_result_srchcnts.getColumn(0, "sicknm"));
  254. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "lastupdtdt", ds_main_result_srchcnts.getColumn(0, "lastupdtdt"));
  255. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "lastupdtrid", ds_main_result_srchcnts.getColumn(0, "lastupdtrid"));
  256. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "seqno", ds_main_result_srchcnts.getColumn(0, "seqno"));
  257. ds_main_sickcdspec_sickcdspeclist.setColumn( cur_row , "sickcd", ds_main_result_srchcnts.getColumn(0, "sickcd"));
  258. //grd_sickcdlist.clearStatus();
  259. ds_main_sickcdspec_sickcdspeclist.setRowType(cur_row, Dataset.ROWTYPE_NORMAL);
  260. }//else end
  261. var j = 0;
  262. for (j = 0; j < ds_main_sickcdspec_sickcdspeclist.rowcount; j++){
  263. if (ds_main_sickcdspec_sickcdspeclist.getColumn(j, "seqno") == "9999999999"){
  264. ds_main_sickcdspec_sickcdspeclist.setRowType(j, Dataset.ROWTYPE_INSERT);
  265. }
  266. }
  267. } //if (submit("TRPMB01702") == true) end
  268. else {
  269. return false;
  270. }
  271. }
  272. }
  273. function cf_TRPMB01702(sSvcId, nErrorCode, sErrorMsg) {
  274. arErrorCode.push(sSvcId, nErrorCode);
  275. }
  276. function grd_sickcdlist_oncellclick(obj:Grid, e:GridClickEventInfo) {
  277. //조회된 리스트를 선택 시, hidden Node 와 입력창(send Node)에 세팅한다.
  278. //입력창은 send Node 와 매핑된다.
  279. var row = e.row;
  280. if ( row >= 0 ) {
  281. ds_send_updatedatalist_datalist.clearData(); ds_send_updatedatalist_datalist.addRow();
  282. ds_hidden_desc.clearData(); ds_hidden_desc.addRow();
  283. dsf_copyColInfo(ds_send_updatedatalist_datalist, ds_main_sickcdspec_sickcdspeclist);
  284. dsf_copyColInfo(ds_hidden_desc, ds_main_sickcdspec_sickcdspeclist);
  285. ds_send_updatedatalist_datalist.copyRow(0, ds_main_sickcdspec_sickcdspeclist, row);
  286. ds_hidden_desc.copyRow( 0, ds_main_sickcdspec_sickcdspeclist, row);
  287. //seqno 세팅
  288. dsf_makeValue( ds_send_updatedatalist_datalist, "seqno", "string", ds_hidden_desc.getColumn(0, "seqno"));
  289. }
  290. }
  291. function btn_update_onclick(obj:Button, e:ClickEventInfo) {
  292. if ( sysf_messageBox("입력하신 증상 및 질환내역을", "Q002") == '6' ) {
  293. dsf_makeValue( ds_send_updatedatalist_datalist, "m", "string", "" );
  294. dsf_makeValue( ds_send_updatedatalist_datalist, "sicknm", "string", "" );
  295. ds_send_updatedatalist_datalist.setColumn( 0, "m", "I");
  296. ds_send_updatedatalist_datalist.setColumn( 0, "sicknm", ds_main.getColumn(0, "sicknm"));
  297. //ds_send_updatedatalist.setColumn( 0, "datalist",grd_sickcdlist.getupdatedata());
  298. //질병코드 저장 처리
  299. //if (submit("TXPMB01701") == true) {
  300. var oParam = {};
  301. oParam.id = "TXPMB01701";
  302. oParam.service = "pambaseinfomngtapp.SickCd";
  303. oParam.method = "reqExeSickCd";
  304. oParam.inds = "req=ds_send_updatedatalist_datalist";
  305. oParam.outds = "";
  306. oParam.async = false;
  307. oParam.callback = "cf_TXPMB01701";
  308. tranf_submit(oParam);
  309. if(arErrorCode.pop("TXPMB01701") > -1) {
  310. //btn_search.dispatch("DOMActivate"); //저장처리 후, 내역 재조회(조회 이벤트 호출)
  311. fInitialize();
  312. sysf_messageBox("저장이 ", "I002");
  313. }
  314. }
  315. else {
  316. return false;
  317. }
  318. }
  319. function cf_TXPMB01701(sSvcId, nErrorCode, sErrorMsg) {
  320. arErrorCode.push(sSvcId, nErrorCode);
  321. }
  322. function btn_delete_onclick(obj:Button, e:ClickEventInfo) {
  323. var row = ds_main_sickcdspec_sickcdspeclist.rowposition;
  324. if ( row < 0 ) {
  325. sysf_messageBox("삭제할 내역이 선택되지", "E007"); //삭제할 내역이 선택되지 않았습니다.
  326. return;
  327. }
  328. //삭제확인-선택하신 질병코드를 삭제하시겠습니까? Yes(6),No(7)
  329. if (sysf_messageBox("선택하신 질병코드를 ", "Q001") == '6') {
  330. //Yes 이면, 질병코드 삭제처리
  331. //seqno가 "9999999999"이면 화면에서만 생성된 질병리스트
  332. if (ds_main_sickcdspec_sickcdspeclist.getColumn(row, "seqno") == "9999999999"){
  333. ds_main_sickcdspec_sickcdspeclist.deleteRow(row);
  334. return true;
  335. }
  336. ds_send_updatedatalist_datalist.copyRow( 0, ds_main_sickcdspec_sickcdspeclist, row);
  337. dsf_makeValue( ds_send_updatedatalist_datalist, "workflag", "string", "" );
  338. ds_send_updatedatalist_datalist.setColumn( 0, "workflag", "D");
  339. //if (submit("TXPMB01702") == true) {
  340. var oParam = {};
  341. oParam.id = "TXPMB01702";
  342. oParam.service = "pambaseinfomngtapp.SickCd";
  343. oParam.method = "reqExeDelSickCd";
  344. oParam.inds = "req=ds_send_updatedatalist_datalist";
  345. oParam.outds = "";
  346. oParam.async = false;
  347. oParam.callback = "cf_TXPMB01702";
  348. tranf_submit(oParam);
  349. if(arErrorCode.pop("TXPMB01702") > -1) {
  350. ds_main_sickcdspec_sickcdspeclist.deleteRow(row);
  351. //btn_search.dispatch("DOMActivate"); //삭제처리 후, 내역 재조회(조회 이벤트 호출)
  352. }
  353. var i = 0;
  354. for (i = 0; i < ds_main_sickcdspec_sickcdspeclist.rowcount; i++){
  355. if (ds_main_sickcdspec_sickcdspeclist.getColumn(i, "seqno") == "9999999999"){
  356. //grd_sickcdlist.addStatus(i,"insert"); // 행을 업데이트 상태로 변경
  357. ds_main_sickcdspec_sickcdspeclist.setRowType(i, Dataset.ROWTYPE_INSERT);
  358. }
  359. }
  360. }else {
  361. //grd_sickcdlist.clearStatus();
  362. var i = 0;
  363. for (i = 0; i < ds_main_sickcdspec_sickcdspeclist.rowcount; i++){
  364. if (ds_main_sickcdspec_sickcdspeclist.getColumn(i, "seqno") == "9999999999"){
  365. //grd_sickcdlist.addStatus(i,"insert"); // 행을 업데이트 상태로 변경
  366. ds_main_sickcdspec_sickcdspeclist.setRowType(i, Dataset.ROWTYPE_INSERT);
  367. }
  368. }
  369. }
  370. }
  371. function cf_TXPMB01702(sSvcId, nErrorCode, sErrorMsg) {
  372. arErrorCode.push(sSvcId, nErrorCode);
  373. }
  374. function btn_clear_onclick(obj:Button, e:ClickEventInfo) {
  375. //화면 초기화
  376. fInitialize();
  377. }
  378. function button9_onclick(obj:Button, e:ClickEventInfo) {
  379. this.close();
  380. }]]></Script>
  381. </Form>
  382. </FDL>