SMPMI06100_실시간모니터.xfdl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMPMI06100" position="absolute 0 0 1024 669" titletext="실시간 모니터" onload="SMPMI06100_onload" ontimer="SMPMI06100_ontimer" onkeydown="SMPMI06100_onkeydown">
  5. <Layouts>
  6. <Layout>
  7. <Shape id="line2" class="line_1" linetype="horizontal" position="absolute 0 625 995 628" style="strokepen:3 solid #33bbbbff;" anchor="default"/>
  8. <Static id="caption8" position="absolute 111 635 911 660" style="align:center middle;font:휴먼엑스포,17;"/>
  9. <Shape id="line3" class="line_1" linetype="horizontal" position="absolute 0 58 995 61" style="strokepen:3 solid #33bbbbff;" anchor="default"/>
  10. <Button id="button2" class="btn4" position="absolute 939 636 995 658" style="" text="종료" onclick="button2_onclick"/>
  11. <Div id="group1" taborder="1" style="align: top;" position="absolute 0 22 1004 62">
  12. <Layouts>
  13. <Layout>
  14. <Shape id="roundrect1" type="roundrectangle" visible="false" position="absolute 0 0 995 35" style="border: solid #ffd799 #ffd799;background:#fffbf2 ;"/>
  15. <Calendar id="ipt_dlivdd" taborder="2" class="output" visible="false" position="absolute 45 9 145 28" autoselect="true" autoskip="true" dateformat="yyyy-MM-dd" value="null"/>
  16. <Shape id="line13" linetype="vertical" class="line_4" position="absolute 917 7 920 29" visible="false"/>
  17. <Button id="btn_select" taborder="3" text="조회" onclick="grp_biz_group1_btn_select_onclick" class="btn1" visible="false" position="absolute 933 8 989 30"/>
  18. </Layout>
  19. </Layouts>
  20. </Div>
  21. <Grid id="grd_list" class="datagrid_btype" taborder="2" binddataset="ds_main_bedinfo_empbed" useinputpanel="false" position="absolute 0 60 995 624" style="font:,24,24pt;align:center middle;" autofittype="col" scrollbars="none">
  22. <Formats>
  23. <Format id="default">
  24. <Columns>
  25. <Column size="300"/>
  26. <Column size="701"/>
  27. </Columns>
  28. <Rows>
  29. <Row size="54" band="head"/>
  30. <Row size="74"/>
  31. </Rows>
  32. <Band id="head">
  33. <Cell style="background:#99ccffff;background2:#99ccffff;color:#808000ff;color2:#808000ff;font:휴먼엑스포,25;" text="■빈병상현황"/>
  34. <Cell col="1" style="background:#99ccffff;background2:#99ccffff;color:#808000ff;color2:#808000ff;font:휴먼엑스포,25;" text="차 액"/>
  35. </Band>
  36. <Band id="body">
  37. <Cell style="font:휴먼엑스포,20;" text="bind:room"/>
  38. <Cell col="1" displaytype="number" style="align:center middle;font:휴먼엑스포,20,bold;" text="bind:insurbpnt" mask="9,999" maskchar=" "/>
  39. </Band>
  40. </Format>
  41. </Formats>
  42. </Grid>
  43. <Div id="lbl_header" taborder="3" text="공용병상 현황" position="absolute 100 3 900 53" style="color:#3366ffff;font:휴먼엑스포,36,bold;"/>
  44. </Layout>
  45. </Layouts>
  46. <Objects>
  47. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  48. <ColumnInfo>
  49. <Column id="emindd" type="STRING" size="256"/>
  50. </ColumnInfo>
  51. <Rows>
  52. <Row/>
  53. </Rows>
  54. </Dataset>
  55. <Dataset id="ds_main_bedinfo_empbed" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  56. <ColumnInfo>
  57. <Column id="room" type="STRING" size="256" sumtext="빈병상"/>
  58. <Column id="insurbpnt" type="STRING" size="256" sumtext="차액"/>
  59. </ColumnInfo>
  60. </Dataset>
  61. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  62. <ColumnInfo>
  63. <Column id="grdStatus" type="STRING" size="256"/>
  64. <Column id="msgStatus" type="STRING" size="256"/>
  65. <Column id="grdStatus1" type="STRING" size="256"/>
  66. <Column id="msgStatus1" type="STRING" size="256"/>
  67. </ColumnInfo>
  68. <Rows>
  69. <Row>
  70. <Col id="grdStatus"/>
  71. <Col id="msgStatus"/>
  72. <Col id="grdStatus1"/>
  73. <Col id="msgStatus1"/>
  74. </Row>
  75. </Rows>
  76. </Dataset>
  77. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  78. <ColumnInfo>
  79. <Column id="title" type="STRING" size="256"/>
  80. <Column id="time" type="STRING" size="256"/>
  81. <Column id="callmsg" type="STRING" size="256"/>
  82. </ColumnInfo>
  83. <Rows>
  84. <Row/>
  85. </Rows>
  86. </Dataset>
  87. </Objects>
  88. <Bind>
  89. <BindItem id="item2" compid="caption8" propid="value" datasetid="ds_hidden" columnid="time"/>
  90. <BindItem id="item0" compid="group1.ipt_dlivdd" propid="value" datasetid="ds_main_cond" columnid="emindd"/>
  91. <BindItem id="item3" compid="caption8" propid="text" datasetid="ds_hidden" columnid="time"/>
  92. </Bind>
  93. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  94. * System Name :
  95. * Job Name :
  96. * Creator :
  97. * Make Date : 2016-05-24
  98. * Description :
  99. *---------------------------------------------------------------------------------------
  100. * Modify Date Modifier Modify Description
  101. *---------------------------------------------------------------------------------------
  102. * 2016-05-24 Live Converter TF->XP
  103. *
  104. *---------------------------------------------------------------------------------------
  105. ****************************************************************************************/
  106. //=======================================================================================
  107. // Lib Include
  108. //---------------------------------------------------------------------------------------
  109. include 'com_commonxp::comm_main.xjs';
  110. //include 'emr_opanstxp::SMMNP06200.xjs';
  111. var arErrorCode = new HashArray();
  112. var clockID = 2;
  113. var grdintervalID = 0;
  114. var grdintervalIDTop = 1;
  115. var showGrdTime = 4 * 1000; // 7초
  116. var msgintervalID;
  117. //=======================================================================================
  118. // Local methods
  119. //---------------------------------------------------------------------------------------
  120. /**
  121. * @group :
  122. * @ver : 2007.10.09
  123. * @by : 문창곤
  124. * @---------------------------------------------------
  125. * @type : function
  126. * @access : public
  127. * @desc : DataTime 조회.
  128. * @param :
  129. * @param :
  130. * @return :
  131. * @---------------------------------------------------
  132. */
  133. function clock() {
  134. var datetime = utlf_getCurrentDateTime().substring(0, 4) + "년 " +
  135. utlf_getCurrentDateTime().substring(4, 6) + "월 " +
  136. utlf_getCurrentDateTime().substring(6, 8) + "일 " +
  137. utlf_getCurrentDate().toDate().getDayOfWeek("K") + "요일 " +
  138. utlf_getCurrentDateTime().substring(8, 11) + "시 " +
  139. utlf_getCurrentDateTime().substring(11, 13) + "분 " +
  140. utlf_getCurrentDateTime().substring(13, 15) + "초";
  141. ds_hidden.setColumn(0, "time", datetime);
  142. }
  143. /**
  144. * [fGetOpPartrtnPatList description]
  145. * @return {[type]} [description]
  146. */
  147. function fGetOpPartrtnPatList() {
  148. if (ds_main_bedinfo_empbed.rowcount == 0) {
  149. //(20080211) oppatinfo까지 된것을 막음)
  150. ds_main_bedinfo_empbed.clearData();
  151. sysf_setErrorMsg(false);
  152. dsf_createDsRow('ds_TRPMI06100', [{ col: 'emindd', type: 'string', size: 256, val: ds_main_cond.getColumn(0, 'emindd') }], false);
  153. var oParam = {};
  154. oParam.id = "TRPMI06100";
  155. oParam.service = "ipatmngtapp.InRsrv";
  156. oParam.method = "reqGetRTMonitor";
  157. oParam.inds = "req=ds_TRPMI06100";
  158. oParam.outds = "ds_main_bedinfo_empbed=empbed";
  159. oParam.async = false;
  160. //oParam.callback = "callback";
  161. tranf_submit(oParam);
  162. sysf_setErrorMsg(true);
  163. if (arErrorCode.pop("TRPMI06100") > -1) {
  164. ds_init.setColumn(0, "grdStatus", "grd:정상");
  165. ds_init.setColumn(0, "grdStatus1", "조회");
  166. if (ds_main_bedinfo_empbed.rowcount > 0) {
  167. this.setTimer(grdintervalIDTop, showGrdTime);
  168. }
  169. }
  170. else {
  171. ds_init.setColumn(0, "grdStatus", "grd:장애");
  172. }
  173. }
  174. }
  175. function fInitialize() {
  176. ds_main_bedinfo_empbed.clearData();
  177. //ds_main_bedinfo_empbed.addRow();
  178. ds_main_cond.setColumn(0, "emindd", utlf_getCurrentDate());
  179. fSetGrdTimer();
  180. lbl_header.setFocus();
  181. }
  182. /**
  183. * [fSetGrdTimer description]
  184. * @return {[type]} [description]
  185. */
  186. function fSetGrdTimer() {
  187. var submitIntervalTime = 5 * 1000;
  188. grdintervalID = 0; // 그리드 조회 interval
  189. var msgintervalID; // msg 조회 interval
  190. //시간은 1초 단위로 갱신: 무한루프=> 0.1로 변경
  191. //clockID = window.setInterval("clock();", 1000);
  192. //clockID = window.setInterval("clock();", 100); //0.1초
  193. this.setTimer(clockID, 100);
  194. //메시지 5초: 무한루프시켜야 함(그리드 test용으로 막음)
  195. // msgintervalID = window.setInterval("fGetCallMessage();", submitIntervalTime); //5초
  196. //그리드 5초(상단으로 이동):무한루프시켜야 함
  197. this.setTimer(grdintervalID, submitIntervalTime);
  198. }
  199. /**
  200. * 자료를 상단으로 올리는 기능1
  201. * @return {[type]} [description]
  202. */
  203. function fGetOpPartrtnPatListSub1() {
  204. ds_main_bedinfo_empbed.deleteRow(0);
  205. // var timerID = window.setinterval("", 5000) ; //상단올리기 지연시킴
  206. //ds_main_bedinfo_empbed.clearData();
  207. //setGridColor() ;
  208. ds_init.setColumn(0, "grdStatus1", ds_main_bedinfo_empbed.rowcount);
  209. if (ds_main_bedinfo_empbed.rowcount == 0) {
  210. ds_init.setColumn(0, "grdStatus1", "E:" + grdintervalIDTop);
  211. this.killTimer(grdintervalIDTop);
  212. }
  213. }
  214. /**
  215. * [fClearTimer description]
  216. * @param {[type]} keyPressed [description]
  217. * @return {[type]} [description]
  218. */
  219. function fClearTimer(keyPressed) {
  220. if (keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우
  221. {
  222. var answer = sysf_essageBox("응급 재원 환자 현황 안내 프로그램 종료를 ", "Q004");
  223. if (answer == 6) {
  224. if (clockID != "") window.clearInterval(clockID);
  225. if (msgintervalID != "") window.clearInterval(msgintervalID);
  226. if (grdintervalID != "") window.clearInterval(grdintervalID);
  227. if (msgintervalIDTop != "") window.clearInterval(msgintervalIDTop);
  228. if (grdintervalIDTop != "") window.clearInterval(grdintervalIDTop);
  229. this.close();
  230. }
  231. }
  232. }
  233. /**
  234. * submit 후 호출 될 공통 콜백
  235. * @param {[type]} sSvcId [description]
  236. * @param {[type]} nErrorCode [description]
  237. * @param {[type]} sErrorMsg [description]
  238. * @return {Function} [description]
  239. */
  240. function callback(sSvcId, nErrorCode, sErrorMsg){
  241. arErrorCode.push(sSvcId, nErrorCode);
  242. }
  243. //=======================================================================================
  244. // Events
  245. //---------------------------------------------------------------------------------------
  246. /**
  247. * onload 이벤트 발생 시 호출
  248. * @param {[type]} obj:Form [description]
  249. * @param {[type]} e:LoadEventInfo [description]
  250. */
  251. function SMPMI06100_onload(obj: Form, e: LoadEventInfo) {
  252. frmf_initForm(obj);
  253. fInitialize();
  254. }
  255. /**
  256. * 타이머 호출 시
  257. * @param {[type]} obj:Form [description]
  258. * @param {[type]} e:TimerEventInfo [description]
  259. */
  260. function SMPMI06100_ontimer(obj:Form, e:TimerEventInfo)
  261. {
  262. if(e.timerid == clockID){
  263. clock();
  264. }
  265. else if(e.timerid == grdintervalID){
  266. fGetOpPartrtnPatList();
  267. }
  268. else if(e.timerid == grdintervalIDTop){
  269. fGetOpPartrtnPatListSub1();
  270. }
  271. }
  272. /**
  273. * 키보드 입력 이벤트
  274. * @param {[type]} obj: Form [description]
  275. * @param {[type]} e: KeyEventInfo [description]
  276. */
  277. function SMPMI06100_onkeydown(obj: Form, e: KeyEventInfo) {
  278. if (e.keycode == 27 || e.keycode == 81) {
  279. fClearTimer(e.keycode);
  280. }
  281. }
  282. function button2_onclick(obj:Button, e:ClickEventInfo)
  283. {
  284. this.close();
  285. }
  286. ]]></Script>
  287. </Form>
  288. </FDL>