SPMMO16800_누락처방입력.xfdl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO16800" position="absolute 0 0 608 336" titletext="누락처방입력 정보" oninit="SPMMO16800_oninit" onload="SPMMO16800_onload" onclose="SPMMO16800_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Button position="absolute 492 314 548 336" id="button1" class="btn4" text="확인" onclick="button1_onclick"/>
  8. <Button position="absolute 552 314 608 336" id="button2" class="btn4" text="취소" onclick="button2_onclick"/>
  9. <Grid position="absolute 0 24 608 306" id="grd_resnlist" binddataset="ds_hardcd" onenteredit="grd_resnlist_onenteredit" onkeydown="grd_resnlist_onkeydown" cellclickbound="cell" cellsizingtype="col" autofittype="col">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="35"/>
  14. <Column size="0"/>
  15. <Column size="35"/>
  16. <Column size="535"/>
  17. </Columns>
  18. <Rows>
  19. <Row size="24" band="head"/>
  20. <Row size="24"/>
  21. </Rows>
  22. <Band id="head">
  23. <Cell text="선택"/>
  24. <Cell col="1" text="선택"/>
  25. <Cell col="2" text="코드"/>
  26. <Cell col="3" text="상세사유"/>
  27. </Band>
  28. <Band id="body">
  29. <Cell displaytype="image" style="align:center middle;" expr="expr:(status == &quot;Y&quot;) ? &quot;theme://images\\bg_radio_select_N.png&quot; : &quot;theme://images\\bg_radio_N.png&quot;"/>
  30. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:status"/>
  31. <Cell col="2" text="bind:hardcd"/>
  32. <Cell col="3" displaytype="text" edittype="text" style="padding:0 0 0 3;" text="bind:hardcdnm" editautoselect="true"/>
  33. </Band>
  34. </Format>
  35. </Formats>
  36. </Grid>
  37. <Static text="누락처방 사유선택 :" position="absolute 0 3 171 23" id="caption3" class="tit_2"/>
  38. <Calendar position="absolute 407 0 507 20" align="align:center middle;" id="cmb_prcpdd" visible="true" dateformat="yyyy-MM-dd" value="null" style="align:center middle;" class="input_essential" autoselect="true"/>
  39. <Static text="누락처방 적용일 :" position="absolute 281 3 407 23" id="caption1" class="tit_2"/>
  40. <Static text="시간 :" position="absolute 512 1 549 21" id="caption2" style="font:Dotum,9,bold;"/>
  41. <MaskEdit position="absolute 551 0 608 20" id="input1" mask="##:##" type="string" style="align:center middle;" displaynulltext=" " autoselect="true" value="1200" class="input_essential" onkeydown="input1_onkeydown"/>
  42. </Layout>
  43. </Layouts>
  44. <Objects>
  45. <Dataset id="ds_hardcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" onrowposchanged="ds_hardcd_onrowposchanged">
  46. <ColumnInfo>
  47. <Column id="status" type="STRING"/>
  48. <Column id="hardcd" type="STRING"/>
  49. <Column id="hardcdnm" type="STRING"/>
  50. </ColumnInfo>
  51. </Dataset>
  52. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  53. <ColumnInfo>
  54. <Column id="selcond1" type="STRING" size="256"/>
  55. <Column id="prcpdd" type="STRING" size="256"/>
  56. <Column id="prcptime" type="STRING" size="256"/>
  57. <Column id="passflag" type="STRING" size="256"/>
  58. </ColumnInfo>
  59. <Rows>
  60. <Row>
  61. <Col id="selcond1">1</Col>
  62. </Row>
  63. </Rows>
  64. </Dataset>
  65. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  66. <ColumnInfo>
  67. <Column id="hardcd" type="STRING" size="256" sumtext="하드코드"/>
  68. </ColumnInfo>
  69. <Rows>
  70. <Row/>
  71. </Rows>
  72. </Dataset>
  73. </Objects>
  74. <Bind>
  75. <BindItem id="item0" compid="cmb_prcpdd" propid="value" datasetid="ds_init" columnid="prcpdd"/>
  76. <BindItem id="item1" compid="input1" propid="value" datasetid="ds_init" columnid="prcptime"/>
  77. </Bind>
  78. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  79. * System Name :
  80. * Job Name :
  81. * Creator :
  82. * Make Date : 2014-08-29
  83. * Description :
  84. *---------------------------------------------------------------------------------------
  85. * Modify Date Modifier Modify Description
  86. *---------------------------------------------------------------------------------------
  87. * 2014-08-29 Live Converter TF->XP
  88. *
  89. *---------------------------------------------------------------------------------------
  90. ****************************************************************************************/
  91. include "com_commonxp::comm_main.xjs";
  92. function SPMMO16800_oninit(obj:Form, e:InitEventInfo)
  93. {
  94. frmf_initForm(obj);
  95. ds_send.setColumn(0, "hardcd", "60" );
  96. var oParam = {};
  97. oParam.id = "TRMMB16401";
  98. oParam.service = "prcpbaseapp.EnvInfoMngt";
  99. oParam.method = "reqGetHardCodeCD";
  100. oParam.inds = "req=ds_send";
  101. oParam.outds = "ds_hardcd=hardcd";
  102. oParam.async = true;
  103. oParam.callback = "cf_TRMMB16401";
  104. tranf_submit(oParam);
  105. }
  106. function cf_TRMMB16401(sSvcId, nErrorCode, sErrorMsg) {
  107. dsf_setDefaultVal(ds_hardcd, "status:N");
  108. ds_hardcd.rowposition = -1;
  109. }
  110. function SPMMO16800_onload(obj:Form, e:LoadEventInfo)
  111. {
  112. if (opener !=null) {
  113. var sOpenerID = opener.frmf_getScreenID();
  114. if (sOpenerID == "SMMMO00200") { // 시행부서처방화면
  115. ds_init.setColumn(0, "prcpdd", opener.ds_init.getColumn(0, "prcpdd"));
  116. cmb_prcpdd.enable = false;
  117. }
  118. }
  119. }
  120. function SPMMO16800_onclose(obj:Form, e:CloseEventInfo)
  121. {
  122. var mainObj = frmf_getMainViewer();
  123. var passflag = ds_init.getColumn(0, "passflag");
  124. if ( passflag == "Y" ) {
  125. sysf_setGlobalVariable("SPMMO16800_rtn1", "Y");
  126. } else {
  127. sysf_setGlobalVariable("SPMMO16800_rtn1", "N");
  128. }
  129. }
  130. function button1_onclick(obj:Button, e:ClickEventInfo)
  131. {
  132. var currow = "";
  133. var pid = "";
  134. var prcpgenrflag = "";
  135. var orddd = "";
  136. var cretno = "";
  137. var orddeptcd = "";
  138. var mainObj = frmf_getMainViewer();
  139. curBfObj = mainObj.frmf_findPopup("SMMMO00200");
  140. var sOpenerID = "";
  141. if (!utlf_isNull(opener)) {
  142. sOpenerID = opener.frmf_getScreenID();
  143. }
  144. if (sOpenerID == "SMMMO00200") { // 시행부서처방화면
  145. pid = opener.ds_paminfo.getColumn(0, "pid");
  146. prcpgenrflag = opener.ds_paminfo.getColumn(0, "ioflag");
  147. if(prcpgenrflag == "O" || prcpgenrflag == "S") {
  148. orddd = opener.ds_paminfo.getColumn(0, "orddd");
  149. } else {
  150. orddd = opener.ds_paminfo.getColumn(0, "indd");
  151. }
  152. cretno = opener.ds_paminfo.getColumn(0, "cretno");
  153. orddeptcd = opener.ds_paminfo.getColumn(0, "orddeptcd");
  154. } else {
  155. var prtgrid = opener.ds_patordinfolist.rowposition;
  156. pid = opener.ds_patordinfolist.getColumn(prtgrid, "pid");
  157. prcpgenrflag = opener.ds_patordinfolist.getColumn(prtgrid, "ioflag");
  158. orddd = opener.ds_patordinfolist.getColumn(prtgrid, "orddd");
  159. cretno = opener.ds_patordinfolist.getColumn(prtgrid, "cretno");
  160. orddeptcd = opener.ds_patordinfolist.getColumn(prtgrid, "orddeptcd");
  161. }
  162. var prcpdd = ds_init.getColumn(0, "prcpdd");
  163. if (utlf_isNull(prcpdd)){
  164. alert("누락처방 적용일이 없습니다. 누락처방일자를 입력해 주세요. ");
  165. return ;
  166. }
  167. var prcptime = utlf_trim(utlf_transNullToEmpty(ds_init.getColumn(0, "prcptime"))).substr(0,4);
  168. if (prcptime.length < 4 || utlf_isValidDateTime(prcptime, "hhmm") == false) {
  169. alert("시간을 HH:MM 형식으로 입력해 주세요. ") ;
  170. return ;
  171. } else {
  172. prcptime = prcptime+"00";
  173. ds_init.setColumn(0, "prcptime", prcptime);
  174. }
  175. var srchLength = ds_hardcd.rowcount;
  176. var chkflag = false ;
  177. for ( var i = 0; i < srchLength; i++ ) {
  178. var status = ds_hardcd.getColumn(i, "status" );
  179. if ( status == "Y" ) {
  180. chkflag = true ;
  181. var hardcdnm = ds_hardcd.getColumn(i, "hardcdnm" );
  182. if ( utlf_isNull(hardcdnm)) {
  183. alert("상세 사유가 없습니다. 상세 사유를 넣어주세요.");
  184. return ;
  185. }
  186. }
  187. }
  188. if ( chkflag == false ) {
  189. alert("선택된 사유가 없습니다. 사유를 선택하세요. ");
  190. return ;
  191. }
  192. var resncnts = "instcd|pid|orddd|cretno|ordtype|orddeptcd|prcpdd|prcpno|prcphistno|resnflag|resncd|resncnts^" ;
  193. var chkresncnts = '-';
  194. var chkresncd = ds_hardcd.getColumn(currow, "hardcd" );
  195. var chkresnname = ds_hardcd.getColumn(currow, "hardcdnm" );
  196. var instcd = sysf_getUserInfo("dutplceinstcd");
  197. resncnts = resncnts + instcd + "|" + pid + "|" + orddd + "|" + cretno + "|" + prcpgenrflag + "|" + orddeptcd + "|-|0|0|C|" + chkresncd + "|" + chkresnname + "^";
  198. if ( curBfObj == null ) {
  199. curBfObj = mainObj.frmf_findPopup("SMLPJ01000");
  200. curBfObj.ds_prcpresn.setColumn(0, "prcpdd", prcpdd);
  201. curBfObj.ds_prcpresn.setColumn(0, "resncnt", resncnts);
  202. curBfObj.ds_prcpresn.setColumn(0, "prcptime", prcpdd + prcptime);
  203. ds_init.setColumn(0, "passflag", "Y");
  204. } else {
  205. if(curBfObj.ds_prcpresn.rowcount == 0 )
  206. curBfObj.ds_prcpresn.addRow();
  207. curBfObj.ds_prcpresn.setColumn(0, "prcpdd", prcpdd);
  208. curBfObj.ds_prcpresn.setColumn(0, "resncnt", resncnts);
  209. curBfObj.ds_prcpresn.setColumn(0, "prcptime", prcpdd + prcptime);
  210. ds_init.setColumn(0, "passflag", "Y");
  211. }
  212. close();
  213. }
  214. function button2_onclick(obj:Button, e:ClickEventInfo)
  215. {
  216. ds_init.setColumn(0, "passflag", "N");
  217. close();
  218. }
  219. function ds_hardcd_onrowposchanged(obj:Dataset, e:DSRowPosChangeEventInfo)
  220. {
  221. fSelectResn(obj, e);
  222. }
  223. function grd_resnlist_onenteredit(obj:Grid, e:GridEditEventInfo)
  224. {
  225. var oDataset = eval(obj.binddataset);
  226. var currow = oDataset.rowposition;
  227. if ( ds_hardcd.getColumn(currow, "hardcd") == "Z" && e.col == obj.getBindCellIndex("body", "hardcdnm")) {
  228. } else {
  229. obj.showEditor(false);
  230. }
  231. }
  232. function grd_resnlist_onkeydown(obj:Grid, e:KeyEventInfo)
  233. {
  234. if(e.keycode == 13) {
  235. obj.showEditor(false);
  236. }
  237. }
  238. function fSelectResn(obj:Dataset, e:DSRowPosChangeEventInfo) {
  239. if(e.newrow > -1) {
  240. for(var i = 0; i < obj.rowcount; i++) {
  241. if(utlf_isNull(obj.getColumnInfo("status"))) return;
  242. obj.setColumn(i, "status", "N"); // 기존의 것은 모두 체크 해제
  243. }
  244. obj.setColumn(e.newrow, "status", "Y"); // 현재 선택한 것을 체크
  245. if (obj.getColumn(e.newrow, "hardcd") == "Z" && grd_resnlist.getCellPos() == grd_resnlist.getBindCellIndex("body", "hardcdnm")) {
  246. grd_resnlist.showEditor(true);
  247. }
  248. }
  249. }
  250. function input1_onkeydown(obj:MaskEdit, e:KeyEventInfo)
  251. {
  252. if (e.keycode == 13){
  253. obj.updateToDataset();
  254. button1.click();
  255. }
  256. }
  257. ]]></Script>
  258. </Form>
  259. </FDL>