himed2.xadl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ADL version="1.1">
  3. <TypeDefinition url="default_typedef.xml"/>
  4. <GlobalVariables url="globalvars.xml"/>
  5. <Application id="himed2" codepage="utf-8" language="Korean" loginformurl="" loginformstyle="" windowopeneffect="" windowcloseeffect="" version="" tracemode="" themeid="XPKNU.xtheme" onload="application_onload" usewaitcursor="false" addcookietovariable="true" onerror="application_onerror" licenseurl="XPLATFORM_Client_License.xml" framemovetype="default" ondownloadactivex="application_ondownloadactivex" filesecurelevel="all" networksecurelevel="all" engineurl="../install/TobeSoft/XPlatform/" engineversion="9.2.0.300" httpretry="0" httptimeout="1800" proxyretry="0" onexit="application_onexit">
  6. <Layout>
  7. <MainFrame id="mainframe" title="maintitle" defaultfont="" resizable="true" showtitlebar="true" showstatusbar="true" position="absolute 0 0 1280 1024" titletext="Himed" showcascadestatustext="false" showcascadetitletext="false" layered="false" style="showzoomcombo:false;statusbarheight:0;" style.statusbarheight="" onsize="MainFrame_onsize" style.icon="">
  8. <VFrameSet id="VFrameSet" separatesize="120,*,23">
  9. <Frames>
  10. <ChildFrame id="ChildFrameTop" showtitlebar="false" formurl="com_hismainxp::form_top.xfdl" dragmovetype="none" style="statusbarheight:0;" openstatus="normal"/>
  11. <FrameSet id="FrameSet">
  12. <Frames>
  13. <ChildFrame id="ChildFrameWork" formurl="com_hismainxp::form_work.xfdl" dragmovetype="none" resizable="false" showtitlebar="false" openstatus="maximize"/>
  14. </Frames>
  15. </FrameSet>
  16. <ChildFrame id="ChildFrameBottom" showtitlebar="false" formurl="com_hismainxp::form_bottom.xfdl" dragmovetype="none" style="statusbarheight:0;"/>
  17. </Frames>
  18. </VFrameSet>
  19. </MainFrame>
  20. </Layout>
  21. <ScreenInfo/>
  22. <Style url="CSS::default.css"/>
  23. </Application>
  24. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  25. * System Name : HIT
  26. * Job Name :
  27. * File Name : himed2.xadl
  28. * Creator :
  29. * Make Date : 2014-01-01
  30. *
  31. * Description :
  32. *---------------------------------------------------------------------------------------
  33. * Modify Date Modifier Modify Description
  34. *---------------------------------------------------------------------------------------
  35. * 2014-01-01 임준호
  36. *
  37. *---------------------------------------------------------------------------------------
  38. ****************************************************************************************/
  39. //=======================================================================================
  40. // Global Variable
  41. //---------------------------------------------------------------------------------------
  42. //상단 프레임
  43. var agv_objAppTopPath = null;
  44. //업무화면을 관리하는 프레임셋
  45. var agv_objAppWorkPath = null;
  46. //하단 프레임
  47. var agv_objAppBottomPath = null;
  48. //시스템 에러 구분 application_onerror에서 사용
  49. var agv_bSystemError = false;
  50. //업무용 세션 변수
  51. var agv_objBizVariable = null;
  52. //Cache Variable
  53. var agv_objCommonCache = new Object();
  54. //last transaction time(milli)
  55. var agv_nLastTransactionTime = 0;
  56. //var agv_sStartMemoryInfo = Math.round(system.getMemoryStatus("FreePhysical")/1000000)+"";
  57. //frmf_openForm 함수에서 인자값을 넘길때 사용(frmf_openForm) - frmf_getMainFormParam()에서 사용한다.
  58. var agv_objMainFormParam = null;
  59. //=======================================================================================
  60. // Function
  61. //---------------------------------------------------------------------------------------
  62. /****************************************************************************************
  63. * Argument : 01.usessl : ssl 사용 여부
  64. * Description : ssl 설정
  65. ****************************************************************************************/
  66. function gf_useSSL(usessl)
  67. {
  68. if (usessl){
  69. application.services["SVR"].url = gv_sURLprefixSSL+"/.lxp?";
  70. }else{
  71. application.services["SVR"].url = gv_sURLprefix+"/.lxp?";
  72. }
  73. }
  74. /****************************************************************************************
  75. * Argument :
  76. * Description : 로그인 화면 기동
  77. ****************************************************************************************/
  78. function gf_loginProcess()
  79. {
  80. var nMoniterIndex;
  81. var nScreenLeft;
  82. var nScreenTop;
  83. var nScreenRight;
  84. var nScreenBottom;
  85. var nScreenWidth;
  86. var nScreenHeight;
  87. var arrScreenSize;
  88. nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
  89. //alert("login process="+nMoniterIndex);
  90. objScreenSize = system.getScreenRect(nMoniterIndex);
  91. nScreenLeft = objScreenSize.left;
  92. nScreenTop = objScreenSize.top;
  93. nScreenRight = objScreenSize.right;
  94. nScreenBottom = objScreenSize.bottom;
  95. nScreenWidth = nScreenRight - nScreenLeft;
  96. nScreenHeight = nScreenBottom - nScreenTop;
  97. //로그인 창 나올때 작업표시줄 아이콘 표시를 위하여 mainframe 크기를 0으로 줄인다.
  98. var nMainLeft = application.mainframe.position.left;
  99. var nMainTop = application.mainframe.position.top;
  100. var nMainWidth = application.mainframe.position.width;
  101. var nMainHeight = application.mainframe.position.height;
  102. application.mainframe.position.left = Math.ceil(nScreenLeft+(nScreenWidth/2));
  103. application.mainframe.position.top = Math.ceil(nScreenTop+(nScreenHeight/2));
  104. application.mainframe.position.width =0;
  105. application.mainframe.position.height = 0;
  106. application.mainframe.visible = true;
  107. //application.mainframe.style.icon = "theme://images\\icon_titlebar.png";
  108. //trace("==================="+application.popupframes["Login"]);
  109. //로그인 화면 기동
  110. //application.mainframe.visible = false;
  111. //var objFrame = new ChildFrame("Login", nScreenLeft+(nScreenWidth/2)-235, nScreenTop+(nScreenHeight/2)-130, nScreenLeft+(nScreenWidth/2)+235, nScreenTop+(nScreenHeight/2)+130);
  112. var objFrame = new ChildFrame("Login", nScreenLeft+(nScreenWidth/2)-174, nScreenTop+(nScreenHeight/2)-365, nScreenLeft+(nScreenWidth/2)+174, nScreenTop+(nScreenHeight/2)+365);
  113. //objFrame.openalign.halign = "center";
  114. //objFrame.openalign.valign = "center";
  115. objFrame.showtitlebar = false;
  116. //objFrame.autosize = true;
  117. objFrame.layered = true;
  118. objFrame.style.background = "transparent";
  119. objFrame.formurl = "com_hismainxp::form_login.xfdl";
  120. //var rtn = objFrame.showModal("Login");
  121. var rtn = objFrame.showModal("Login", application.mainframe);
  122. // trace("==============================================="+rtn);
  123. // trace(this);
  124. // trace("=================================");
  125. // trace("login result : "+ rtn);
  126. // trace("=================================");
  127. //objFrame.destroy();
  128. //objFrame = null;
  129. if(rtn=="OK"){
  130. //로그인 창 나올때 mainframe를 원래 크기로 적용한다.
  131. application.mainframe.position.left = nMainLeft;
  132. application.mainframe.position.top = nMainTop;
  133. application.mainframe.position.width = nMainWidth;
  134. application.mainframe.position.height = nMainHeight;
  135. application.mainframe.visible = true;
  136. //agv_objAppTopPath.form.setMenuType(gv_sMenuType);
  137. gf_setMenuType(gv_sMenuType);
  138. }else{
  139. exit();
  140. }
  141. }
  142. /****************************************************************************************
  143. * Argument :
  144. * Description : 메인 프레임 사이즈 및 위치 설정
  145. ****************************************************************************************/
  146. function gf_setFrameSize()
  147. {
  148. var nMoniterIndex;
  149. var nScreenLeft;
  150. var nScreenTop;
  151. var nScreenRight;
  152. var nScreenBottom;
  153. var nScreenWidth;
  154. var nScreenHeight;
  155. var arrScreenSize;
  156. var objExtCommon = new ExtCommon();
  157. var nTaskBar = objExtCommon.getTaskBarPosition();
  158. nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
  159. objScreenSize = system.getScreenRect(nMoniterIndex);
  160. nScreenLeft = objScreenSize.left;
  161. nScreenTop = objScreenSize.top;
  162. nScreenRight = objScreenSize.right;
  163. nScreenBottom = objScreenSize.bottom;
  164. nScreenWidth = nScreenRight - nScreenLeft;
  165. nScreenHeight = nScreenBottom - nScreenTop;
  166. var nLeftCenter = nScreenLeft+((nScreenWidth/2)-(application.mainframe.position.width/2));
  167. if(nTaskBar[0] >= nScreenLeft && nTaskBar[0] < (nScreenLeft + nScreenWidth)){
  168. if(nTaskBar[0] == nScreenLeft && nTaskBar[1] > nScreenLeft){
  169. application.mainframe.position.height = nScreenHeight - (nScreenHeight - nTaskBar[1]);
  170. application.mainframe.move(nLeftCenter, nScreenTop);
  171. }else if(nTaskBar[0] == nScreenLeft && nTaskBar[1] == nScreenLeft && nTaskBar[2] < nScreenWidth){
  172. application.mainframe.position.height = nScreenHeight;
  173. application.mainframe.move(nLeftCenter+nTaskBar[2], nScreenTop);
  174. }else if(nTaskBar[0] > nScreenLeft && nTaskBar[1] == nScreenLeft){
  175. application.mainframe.position.height = nScreenHeight;
  176. application.mainframe.move(nLeftCenter, nScreenTop);
  177. }else if(nTaskBar[0] == nScreenLeft && nTaskBar[1] == nScreenLeft && nTaskBar[3] < nScreenHeight){
  178. application.mainframe.position.height = nScreenHeight - nTaskBar[3];
  179. application.mainframe.move(nLeftCenter, nScreenTop+nTaskBar[3]);
  180. }
  181. }else{
  182. application.mainframe.position.height = nScreenHeight;
  183. application.mainframe.move(nLeftCenter, nScreenTop);
  184. }
  185. /*
  186. if(nTaskBar[0] == 0 && nTaskBar[1] > 0){
  187. //alert("Main Monitor Bottom TaskBar::" + (nScreenHeight-nTaskBar[1]));
  188. application.mainframe.position.height = nScreenHeight - (nScreenHeight - nTaskBar[1]);
  189. application.mainframe.move(nScreenLeft, nScreenTop);
  190. //trace(nScreenWidth+" "+nScreenHeight+" "+nScreenLeft+" "+nScreenTop);
  191. }else if(nTaskBar[0] == 0 && nTaskBar[1] == 0 && nTaskBar[2] < nScreenWidth){
  192. //alert("Main Monitor Left TaskBar::" + nTaskBar[2]);
  193. application.mainframe.position.height = nScreenHeight;
  194. application.mainframe.move(nScreenLeft+nTaskBar[2], nScreenTop);
  195. }else if(nTaskBar[0] > 0 && nTaskBar[1] == 0){
  196. //alert("Main Monitor Right TaskBar::" + (nScreenWidth-nTaskBar[0]));
  197. application.mainframe.position.height = nScreenHeight;
  198. application.mainframe.move(nScreenLeft, nScreenTop);
  199. }else if(nTaskBar[0] == 0 && nTaskBar[1] == 0 && nTaskBar[3] < nScreenHeight){
  200. //alert("Main Monitor Top TaskBar::" + nTaskBar[3]);
  201. application.mainframe.position.height = nScreenHeight - nTaskBar[3];
  202. application.mainframe.move(nScreenLeft, nScreenTop+nTaskBar[3]);
  203. }
  204. */
  205. //var hWnd = mainframe.getHandle();
  206. //var rtn = objExtCommon.getMonitorRect(hWnd);
  207. //trace( "Form_MaxPosition [ x: " + rtn[0] + " y: " + rtn[1] + " width: " + rtn[2] + " height: " + rtn[3] + "]" );
  208. //alert(nScreenHeight);
  209. }
  210. /****************************************************************************************
  211. * Argument :
  212. * Description : 로그아웃 처리
  213. ****************************************************************************************/
  214. function gf_logout(){
  215. // 세션토큰 초기화
  216. gv_sSessionToken = "";
  217. // 세션변수 초기화
  218. agv_objBizVariable = new Object();
  219. gds_userInfo.clear();
  220. //메인프레임의 최대화/최소화 상태를 normal 상태로 만든다.
  221. //최대화 상태일때 크기 조절이 안된다.
  222. application.mainframe.openstatus = "normal";
  223. gf_loginProcess();
  224. }
  225. /****************************************************************************************
  226. * Argument : 01.sMenuType : 메뉴타입
  227. * Description : 메뉴타입에 따라 상단프레임(TOP) height 조절
  228. ****************************************************************************************/
  229. function gf_setMenuType(sMenuType){
  230. var vfameset = application.mainframe.VFrameSet;
  231. //trace("menutype : "+ sMenuType);
  232. if (sMenuType == "01"){
  233. // 상단정보를 보이게 조정
  234. vfameset.separatesize = "120,*,23";
  235. }else{
  236. // 상단정보를 숨김
  237. vfameset.separatesize = "35,*,23";
  238. }
  239. }
  240. function gf_setUrl(){
  241. var loginSaveInst = "";
  242. if(gv_bLoginSaveinst){
  243. gv_LoginSavedInst = application.getPrivateProfile("gv_LoginSavedInst");
  244. loginSaveInst = gv_LoginSavedInst;
  245. }
  246. //alert("@@"+loginSaveInst);
  247. var xadlURLArr = application.xadl.split("/");
  248. if (xadlURLArr[0].indexOf("http") == 0) // 서버환경인 경우
  249. {
  250. var urlArr = application.services["SVR"].url.split("/");
  251. // 교육서버
  252. if(xadlURLArr[2].indexOf("edu") != -1){
  253. if(loginSaveInst == "his031"){
  254. urlArr = "http://hisx031edu.knuh.kr:80/himed/.lxp?".split("/");
  255. }else if(loginSaveInst == "his032"){
  256. urlArr = "http://hisx032edu.knuh.kr:80/himed/.lxp?".split("/");
  257. }else if(loginSaveInst == "mis030"){
  258. urlArr = "http://misx030edu.knuh.kr:80/himed/.lxp?".split("/");
  259. }
  260. // 운영서버
  261. } else {
  262. if(loginSaveInst == "his031"){
  263. urlArr = "http://hisx031.knuh.kr:80/himed/.lxp?".split("/");
  264. }else if(loginSaveInst == "his032"){
  265. urlArr = "http://hisx032.knuh.kr:80/himed/.lxp?".split("/");
  266. }else if(loginSaveInst == "mis030"){
  267. urlArr = "http://misx030.knuh.kr:80/himed/.lxp?".split("/");
  268. }
  269. }
  270. var domainArr = urlArr[2].split(":");
  271. gv_sURLprefix = "http://"+urlArr[2]+"/"+urlArr[3];
  272. gv_sURLprefixSSL = "https://"+domainArr[0]+":443/"+urlArr[3];
  273. gv_bIsPreview = false;
  274. }
  275. else // 개발자 환경인 경우 (미리보기환경)
  276. {
  277. var serviceURLArr = application.services["SVR"].url.split("/");
  278. // if(loginSaveInst != ""){
  279. // if(loginSaveInst == "his031"){
  280. // serviceURLArr = "http://hisx031edu.knuh.kr:80/himed/.lxp?".split("/");
  281. // }else if(loginSaveInst == "his032"){
  282. // serviceURLArr = "http://hisx032edu.knuh.kr:80/himed/.lxp?".split("/");
  283. // }else if(loginSaveInst == "mis030"){
  284. // serviceURLArr = "http://misx030edu.knuh.kr:80/himed/.lxp?".split("/");
  285. // }
  286. // }
  287. var localDomainArr = serviceURLArr[2].split(":");
  288. gv_sURLprefix = "http://"+serviceURLArr[2]+"/"+serviceURLArr[3];
  289. gv_sURLprefixSSL = "https://"+localDomainArr[0]+":8443/"+serviceURLArr[3];
  290. gv_bIsPreview = true;
  291. }
  292. // TF주소 동적할당(by 김지훈)
  293. gv_sTFURLprefix = application.services["TFURL"].url;
  294. gv_bUseSSL = application.getPrivateProfile("gv_bUseSSL") == "true"? true:false ;
  295. gf_useSSL(gv_bUseSSL);
  296. var rtn = "OK";
  297. /*
  298. // 서버환경과 로컬환경을 따져서 Grobal Variable 동적으로 변경 (예 :http://his000dev.schmc.ac.kr:18088/himed2/.lxp? )
  299. var xadlURLArr = application.xadl.split("/");
  300. if (xadlURLArr[0].indexOf("http") == 0) // 서버환경인 경우
  301. {
  302. var domainArr = xadlURLArr[2].split(":");
  303. gv_sURLprefix = "http://"+xadlURLArr[2]+"/"+xadlURLArr[3];
  304. gv_sURLprefixSSL = "https://"+domainArr[0]+":443/"+xadlURLArr[3];
  305. gv_bIsPreview = false;
  306. }
  307. else // 개발자 환경인 경우 (미리보기환경)
  308. {
  309. var serviceURLArr = application.services["SVR"].url.split("/");
  310. var localDomainArr = serviceURLArr[2].split(":");
  311. gv_sURLprefix = "http://"+serviceURLArr[2]+"/"+serviceURLArr[3];
  312. gv_sURLprefixSSL = "https://"+localDomainArr[0]+":8443/"+serviceURLArr[3];
  313. gv_bIsPreview = true;
  314. }
  315. // TF주소 동적할당(by 김지훈)
  316. gv_sTFURLprefix = application.services["TFURL"].url;
  317. // SSL 사용여부에 따라 서비스 URL 변경
  318. gv_bUseSSL = application.getPrivateProfile("gv_bUseSSL") == "true"? true:false ;
  319. gf_useSSL(gv_bUseSSL);
  320. var rtn = "OK";
  321. */
  322. }
  323. //=======================================================================================
  324. // Event
  325. //---------------------------------------------------------------------------------------
  326. /****************************************************************************************
  327. * Components :
  328. * Components ID :
  329. * Event : onload
  330. * Argument : 01.obj : Object
  331. * : 02.e : LoadEventInfo
  332. * Description :
  333. ****************************************************************************************/
  334. function application_onload(obj:Object, e:LoadEventInfo)
  335. {
  336. agv_objAppTopPath = mainframe.VFrameSet.ChildFrameTop; // 상단정보
  337. agv_objAppWorkPath = mainframe.VFrameSet.FrameSet.ChildFrameWork; // 업무화면
  338. agv_objAppBottomPath = mainframe.VFrameSet.ChildFrameBottom; // 하단정보
  339. //업무용 세션 변수 초기화
  340. agv_objBizVariable = new Object();
  341. gf_setUrl();
  342. /*
  343. // 서버환경과 로컬환경을 따져서 Grobal Variable 동적으로 변경 (예 :http://his000dev.schmc.ac.kr:18088/himed2/.lxp? )
  344. var xadlURLArr = application.xadl.split("/");
  345. if (xadlURLArr[0].indexOf("http") == 0) // 서버환경인 경우
  346. {
  347. var domainArr = xadlURLArr[2].split(":");
  348. gv_sURLprefix = "http://"+xadlURLArr[2]+"/"+xadlURLArr[3];
  349. gv_sURLprefixSSL = "https://"+domainArr[0]+":443/"+xadlURLArr[3];
  350. gv_bIsPreview = false;
  351. }
  352. else // 개발자 환경인 경우 (미리보기환경)
  353. {
  354. var serviceURLArr = application.services["SVR"].url.split("/");
  355. var localDomainArr = serviceURLArr[2].split(":");
  356. gv_sURLprefix = "http://"+serviceURLArr[2]+"/"+serviceURLArr[3];
  357. gv_sURLprefixSSL = "https://"+localDomainArr[0]+":8443/"+serviceURLArr[3];
  358. gv_bIsPreview = true;
  359. }
  360. // TF주소 동적할당(by 김지훈)
  361. gv_sTFURLprefix = application.services["TFURL"].url;
  362. // SSL 사용여부에 따라 서비스 URL 변경
  363. gv_bUseSSL = application.getPrivateProfile("gv_bUseSSL") == "true"? true:false ;
  364. gf_useSSL(gv_bUseSSL);
  365. var rtn = "OK";
  366. */
  367. gf_setFrameSize();
  368. gf_loginProcess();
  369. }
  370. /****************************************************************************************
  371. * Components : application
  372. * Components ID :
  373. * Event : onerror
  374. * Argument : 01.obj : Object
  375. * : 02.e : ErrorEventInfo
  376. * Description :
  377. ****************************************************************************************/
  378. function application_onerror(obj:Object, e:ErrorEventInfo){
  379. agv_bSystemError = true;
  380. //트랜잭션시 ESC키로 종료막음. - tobesoft 2014.03.17
  381. if(e.errorcode == "-2147418039"){ //ESC키가 눌렸을때
  382. //return true;
  383. }
  384. //임시 오류 확인용
  385. //alert(e.errorcode+"\n"+e.errormsg);
  386. }
  387. /****************************************************************************************
  388. * Components : application
  389. * Components ID :
  390. * Event : ondownloadactivex
  391. * Argument : 01.obj : Object
  392. * : 02.e : LoadEventInfo
  393. * Description : 엑티브 엑스 다운로드 alert 방지용
  394. ****************************************************************************************/
  395. function application_ondownloadactivex(obj:Object, e:LoadEventInfo){
  396. //지우면 안됨.
  397. }
  398. /****************************************************************************************
  399. * Components : MainFrame
  400. * Components ID : mainframe
  401. * Event : onsize
  402. * Argument : 01.obj : MainFrame
  403. * : 02.e : SizeEventInfo
  404. * Description : 메인프레임 리사이즈
  405. ****************************************************************************************/
  406. function MainFrame_onsize(obj:MainFrame, e:SizeEventInfo){
  407. // if(gv_sSessionToken != ""){
  408. // if(e.cx<=1280){
  409. // obj.position.width = 1280;
  410. // return;
  411. // }
  412. // }
  413. }
  414. /****************************************************************************************
  415. * Components : application
  416. * Components ID : application
  417. * Event : onexit
  418. * Argument : 01.obj : Object
  419. * : 02.e : ExitEventInfo
  420. * Description : 메인프레임 닫기
  421. ****************************************************************************************/
  422. function application_onexit(obj:Object, e:ExitEventInfo){
  423. //팝업 좌표 저장
  424. agv_objAppTopPath.form.savePopupLocation();
  425. }
  426. ]]></Script>
  427. </ADL>