widgetmain.xfdl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="widgetmain" classname="widgetmain" inheritanceid="" position="absolute 0 0 1024 768" titletext="New Form" onload="widgetmain_onload" ontimer="widgetmain_ontimer">
  5. <Layouts>
  6. <Layout>
  7. <Div id="div_pannel" taborder="2" style="showeffect:TransitionAnimation00;hideeffect:TransitionAnimation02;" visible="false" position="absolute 31 0 198 157" class="stick" scrollbars="none">
  8. <Layouts>
  9. <Layout/>
  10. </Layouts>
  11. </Div>
  12. <Div id="div_main" taborder="4" style="background:transparent URL('IMG::widget/bg_Body.png');" position="absolute 0 114 230 244">
  13. <Layouts>
  14. <Layout>
  15. <Button id="btn_tray" taborder="0" position="absolute 167 7 189 25" onclick="div_main_btn_tray_onclick" class="btn_tray" tooltiptext="트레이로 보내기"/>
  16. </Layout>
  17. </Layouts>
  18. </Div>
  19. <Button id="btn_draw" taborder="5" class="upShow" position="absolute 82 102 156 133" onclick="btn_draw_onclick" style="pusheddrawoffset:1 1;" enable="false"/>
  20. <Div id="div_userinfo" taborder="6" position="absolute 33 139 199 181" style="background:transparent no-repeat right top;">
  21. <Layouts>
  22. <Layout>
  23. <Button id="btn_login" taborder="0" text="로그인" position="absolute 106 7 166 35" anchor="default" onclick="div_userinfo_btn_login_onclick"/>
  24. <Edit id="edt_id" taborder="1" displaynulltext="사번" position="absolute 0 0 100 20" anchor="default"/>
  25. <Edit id="edt_pwd" taborder="2" displaynulltext="비밀번호" position="absolute 0 22 100 42" anchor="default" imemode="alpha" password="true" onkeydown="div_userinfo_edt_pwd_onkeydown"/>
  26. </Layout>
  27. </Layouts>
  28. </Div>
  29. <Div id="div_afterlogin" taborder="7" position="absolute 29 139 203 215" visible="false">
  30. <Layouts>
  31. <Layout>
  32. <Static id="stt_usernm" position="absolute 3 48 103 74" anchor="default" style="color:beige;align:center middle;"/>
  33. <Button id="btn_logout" taborder="1" text="로그아웃" position="absolute 110 7 170 35" anchor="default" onclick="div_afterlogin_btn_logout_onclick"/>
  34. <ImageViewer id="iv_logo" taborder="2" position="absolute 0 1 107 43" anchor="default" image="URL('IMG::widget/logo031.png')" stretch="fixaspectratio" style="focusborder:0 none gray ;background:transparent;border:0px none #b1b5b9b3 ;bordertype:round 10 10 ;" transparenthittest="true"/>
  35. </Layout>
  36. </Layouts>
  37. </Div>
  38. <Button id="btn_logoff" taborder="8" onclick="btn_logoff_onclick" class="logout" position="absolute 157 184 184 207"/>
  39. <Static id="stt_close" text="종료" position="absolute 159 207 187 224" style="color:cornsilk;font:Dotum,8;"/>
  40. <Button id="Button00" taborder="9" text="Button00" onclick="Div01_Button00_onclick" class="btn_kdrg" position="absolute 374 52 440 113" style="clickeffect:TransitionAnimation01;" visible="false"/>
  41. <Button id="Button03" taborder="10" text="Button00" onclick="Div01_Button00_onclick" class="E4" position="absolute 439 52 505 113" style="clickeffect:TransitionAnimation01;" visible="false"/>
  42. <Static id="Static01" text="KDRG" position="absolute 374 111 440 131" style="align:center middle;font:Dotum,9,bold;" visible="false"/>
  43. <Button id="Button02" taborder="11" text="Button00" class="E1" position="absolute 374 128 440 189" style="clickeffect:TransitionAnimation01;" visible="false"/>
  44. <Button id="Button01" taborder="12" text="Button00" onclick="Div01_Button01_onclick" class="E2" position="absolute 439 128 505 189" style="clickeffect:TransitionAnimation01;" visible="false"/>
  45. </Layout>
  46. </Layouts>
  47. <Objects>
  48. <TransitionAnimation id="TransitionAnimation00" duration="1000" starttime="0" type="slide" direction="bottom" interpolation="Interpolation.bounceOut"/>
  49. <TransitionAnimation id="TransitionAnimation01" duration="500" starttime="0" type="flip3d" direction="left" interpolation="Interpolation.linear"/>
  50. <TransitionAnimation id="TransitionAnimation02" duration="1000" starttime="0" type="slide" direction="top" interpolation="Interpolation.curve5InOut"/>
  51. <Dataset id="ds_userinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  52. <Dataset id="ds_iconlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  53. <Dataset id="ds_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  54. </Objects>
  55. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs"
  56. var initPosBottom = 0;
  57. var initPosY = 0;
  58. function widgetmain_onload(obj:Form, e:LoadEventInfo)
  59. {
  60. initPosBottom = Widget0.position.bottom;
  61. initPosY = Widget0.position.y;
  62. // ID 입력란 바로 활성화 되도록 함
  63. obj.setTimer(1, 100);
  64. }
  65. function widgetmain_ontimer(obj:Form, e:TimerEventInfo)
  66. {
  67. if(e.timerid == 1) {
  68. obj.killTimer(e.timerid);
  69. div_userinfo.edt_id.setFocus();
  70. }
  71. }
  72. function btn_logoff_onclick(obj:Button, e:ClickEventInfo)
  73. {
  74. if(div_afterlogin.visible) {
  75. fLogout();
  76. }
  77. exit();
  78. }
  79. function btn_draw_onclick(obj:Button, e:ClickEventInfo)
  80. {
  81. div_pannel.visible = !(div_pannel.visible);
  82. if(div_pannel.visible) {
  83. obj.class = "downShow";
  84. } else {
  85. obj.class = "upShow";
  86. }
  87. }
  88. function div_userinfo_edt_pwd_onkeydown(obj:Edit, e:KeyEventInfo)
  89. {
  90. if(e.keycode == 13) {
  91. obj.updateToDataset();
  92. div_userinfo.btn_login.click();
  93. }
  94. }
  95. function div_userinfo_btn_login_onclick(obj:Button, e:ClickEventInfo)
  96. {
  97. var userid = div_userinfo.edt_id.value;
  98. var password = div_userinfo.edt_pwd.value;
  99. if(!utlf_isNull(userid)){
  100. userid = userid.toUpperCase();
  101. }
  102. // 아이디 체크
  103. if (utlf_isNull(userid)){
  104. alert("아이디를 입력하세요");
  105. div_userinfo.edt_id.setFocus();
  106. return;
  107. }
  108. // 패스워드 체크
  109. if (utlf_isNull(password)){
  110. alert("패스워드를 입력하세요");
  111. div_userinfo.edt_pwd.setFocus();
  112. return;
  113. }
  114. tranf_submit({
  115. service: "hismainapp.Login"
  116. , method: "reqPotalLoginProcess"
  117. , args: "userid="+wrapQuote(userid)+" "+
  118. "password="+wrapQuote(password)
  119. , outds: "gds_userInfo=userinfo "+
  120. "ds_iconlist=iconlist "+
  121. "ds_result=result"
  122. , async: true
  123. , callback: "cbf_tr_reqPotalLoginProcess"
  124. , error: false
  125. , force : true
  126. });
  127. }
  128. function cbf_tr_reqPotalLoginProcess(sSvcId, nErrorCode, sErrorMsg){
  129. if(nErrorCode == 0){
  130. var result = ds_result.getColumn(0,"resultmsg"); // 로그인 결과 메세지를 가져옴
  131. if(result == "OK"){ // 정상적인 로그인
  132. gv_sSessionToken = gds_userInfo.getColumn(0,"sessioninfo");
  133. gv_sSessionToken_ENC = gds_userInfo.getColumn(0,"sessioninfo_enc");
  134. btn_draw.enable = true;
  135. div_userinfo.visible = false;
  136. div_afterlogin.visible = true;
  137. div_afterlogin.stt_usernm.text = gds_userInfo.getColumn(0, "usernm") + " 님 로그인";
  138. fSetIcon();
  139. btn_draw.click();
  140. }else{
  141. // 에러처리
  142. sysf_messageBox(result, "E");
  143. div_userinfo.edt_pwd.value = null;
  144. div_userinfo.edt_pwd.setFocus();
  145. }
  146. }
  147. }
  148. function div_afterlogin_btn_logout_onclick(obj:Button, e:ClickEventInfo)
  149. {
  150. fLogout();
  151. div_pannel.visible = false;
  152. btn_draw.class = "upShow";
  153. btn_draw.enable = false;
  154. div_userinfo.visible = true;
  155. div_afterlogin.visible = false;
  156. div_afterlogin.stt_usernm.text = null;
  157. div_userinfo.edt_pwd.value = null;
  158. // 기존 버튼들 삭제
  159. var length = div_pannel.components.length;
  160. for(var i = length - 1; i >= 0; i--) {
  161. var comp = div_pannel.components[i];
  162. div_pannel.removeChild(comp.name);
  163. comp.destroy();
  164. comp = null;
  165. }
  166. div_userinfo.edt_id.setFocus();
  167. div_userinfo.edt_id.setSelect();
  168. for(var i = 1; i < application.widgets.length; i++) {
  169. application.widgets[i].form.visible = false;
  170. }
  171. }
  172. function fLogout() {
  173. tranf_submit({
  174. id: "logoutdt_update"
  175. , service: "hismainapp.Login"
  176. , method: "reqPortalLogoutProcess"
  177. , error: false
  178. , async: false
  179. , force: true
  180. });
  181. // 세션토큰 초기화
  182. gv_sSessionToken = "";
  183. gv_sSessionToken_ENC = "";
  184. gds_userInfo.clear();
  185. }
  186. function fSetIcon() {
  187. var LEFT = 16;
  188. var TOP = 40;
  189. var WIDTH = 66;
  190. var HEIGHT = 45;
  191. var TEXT_HEIGHT = 24;
  192. var rowcount = ds_iconlist.rowcount;
  193. for(var i = 0; i < rowcount; i++) {
  194. var iconclass = ds_iconlist.getColumn(i, "iconclass");
  195. var posLeft = LEFT + (WIDTH + 1) * (i % 2);
  196. var posTop = TOP + (HEIGHT + TEXT_HEIGHT) * parseInt(i / 2);
  197. var posRight = posLeft + WIDTH;
  198. var posBottom = posTop + HEIGHT;
  199. // 버튼 생성
  200. var objButton = new Button(iconclass, posLeft, posTop, posRight, posBottom);
  201. objButton.class = iconclass;
  202. objButton.style.shadow = "drop 3,3 3 gray";
  203. objButton.style.clickeffect = TransitionAnimation01;
  204. objButton.onclick.addHandler(btn_PannelButton_Click);
  205. div_pannel.addChild(iconclass, objButton);
  206. objButton.show();
  207. // 버튼 이름 생성
  208. var objStatic = new Static("stt_" + i, posLeft, posBottom, posRight, posBottom + TEXT_HEIGHT);
  209. objStatic.text = ds_iconlist.getColumn(i, "iconnm");
  210. objStatic.style.align = "center middle";
  211. objStatic.style.font = "Dotum,9,bold";
  212. div_pannel.addChild("stt_" + i, objStatic);
  213. objStatic.show();
  214. }
  215. var pannelHeight = (HEIGHT + TEXT_HEIGHT) * parseInt((rowcount - 1) / 2);
  216. div_pannel.position.bottom = 157 + pannelHeight;
  217. div_main.position.y = 114 + pannelHeight;
  218. btn_draw.position.y = 102 + pannelHeight;
  219. div_userinfo.position.y = 139 + pannelHeight;
  220. div_afterlogin.position.y = 139 + pannelHeight;
  221. btn_logoff.position.y = 184 + pannelHeight;
  222. stt_close.position.y = 207 + pannelHeight;
  223. Widget0.position.bottom = initPosBottom + pannelHeight;
  224. Widget0.position.y = initPosY - pannelHeight;
  225. }
  226. function btn_PannelButton_Click(obj:Button, e:ClickEventInfo) {
  227. switch(obj.name) {
  228. case "btn_ku2_031" :
  229. frmf_openHtml("https://hisx031.knuh.kr/himed");
  230. break;
  231. case "btn_ku2_032" :
  232. frmf_openHtml("https://hisx032.knuh.kr/himed");
  233. break;
  234. case "btn_ku2_030" :
  235. frmf_openHtml("https://misx030.knuh.kr/himed");
  236. break;
  237. case "btn_ku_031" :
  238. frmf_openHtml("https://his031.knuh.kr/himed");
  239. break;
  240. case "btn_ku_032" :
  241. frmf_openHtml("https://his032.knuh.kr/himed");
  242. break;
  243. case "btn_ku_030" :
  244. frmf_openHtml("https://mis030.knuh.kr/himed");
  245. break;
  246. case "btn_kdrg" :
  247. Widget1.move(e.screenX - 565, e.screenY - 230);
  248. Widget1.form.visible = true;
  249. trace("55555555");
  250. Widget1.form.fForm_Refresh();
  251. break;
  252. case "btn_elecsign" :
  253. frmf_openHtml("http://192.168.100.12");
  254. break;
  255. }
  256. }
  257. function div_main_btn_tray_onclick(obj:Button, e:ClickEventInfo)
  258. {
  259. for(var i = 0; i < application.widgets.length; i++) {
  260. application.widgets[i].openstatus = "minimize";
  261. }
  262. }]]></Script>
  263. </Form>
  264. </FDL>