comm_xx.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**********************************************************************************
  3. * 함수명 : xxf_showTF
  4. * 설명 : TF 화면 보이기 on/off
  5. * argument : flag (true/false)
  6. * return Type :
  7. * 작성자 : 손병은
  8. **********************************************************************************/
  9. function xxf_showTF(flag){
  10. if(flag == true){
  11. agv_objAppWorkPath.form.div_tf.visible = true;
  12. }else{
  13. agv_objAppWorkPath.form.div_tf.visible = false;
  14. }
  15. }
  16. /**********************************************************************************
  17. * 함수명 : xxf_openMenuItem
  18. * 설명 : ItemID 로 Modeless Dialog를 실행한다.
  19. * argument : sItemID (메뉴아이템ID)
  20. * return Type :
  21. * 작성자 : 손병은
  22. **********************************************************************************/
  23. function xxf_tfOpenMenuItem(sItemID){
  24. if(!gv_isTFActive) {
  25. agv_objAppWorkPath.form.fTFDeActiveAlert();
  26. return;
  27. }
  28. //agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("openMenuItem('"+sItemID+"')","JavaScript");
  29. xxf_tfCall("xxf_tfOpenMenuItem("+ xxf_tfString(sItemID) + ");");
  30. }
  31. /**********************************************************************************
  32. * 함수명 : xxf_tfModal
  33. * 설명 : 화면 id로 Modal Dialog를 실행한다.
  34. * argument : id ( 화면ID )
  35. * : monNo ( 모니터 번호)
  36. * : xPos ( X좌표 )
  37. * : yPos ( Y좌표 )
  38. * : wid ( Width )
  39. * : refDs ( 전달할 데이터셋 )
  40. * : resultref ( 전달값 저장되는 인스턴스경로 )
  41. * : resultid ( 전달값 저장되는 인스턴스명 )
  42. * : userProp ( 사용자 지정 속성)
  43. * : bPrevPos ( 이전좌표 사용여부)
  44. * : authCode ( 권한코드 )
  45. * : resizeType ( 창크기변환 타입)
  46. * - none (default)
  47. * - notaskbar
  48. * - free
  49. * return Type : String ( Dialog창에서 close()에 의해 Return된 값 )
  50. * 작성자 : 손병은
  51. **********************************************************************************/
  52. function xxf_tfModal(id, monNo, xPos, yPos, wid, refDs, resultref, resultid, userProp, prevPos, authCode, resizeType)
  53. {
  54. if(!gv_isTFActive) {
  55. agv_objAppWorkPath.form.fTFDeActiveAlert();
  56. return;
  57. }
  58. // trace("xxf_tfModal("+ xxf_tfString(id) + ","
  59. // + xxf_tfString(monNo) + ","
  60. // + xxf_tfString(xPos) + ","
  61. // + xxf_tfString(yPos) + ","
  62. // + xxf_tfString(wid) + ","
  63. // + xxf_tfString(xxf_getDatasetCSV(refDs)) + ","
  64. // + xxf_tfString(resultref) + ","
  65. // + xxf_tfString(resultid) + ","
  66. // + xxf_tfString(userProp) + ","
  67. // + xxf_tfString(prevPos) + ","
  68. // + xxf_tfString(authCode) + ","
  69. // + xxf_tfString(resizeType) + ")");
  70. xxf_tfCall("xxf_tfModal("+ xxf_tfString(id) + ","
  71. + xxf_tfString(monNo) + ","
  72. + xxf_tfString(xPos) + ","
  73. + xxf_tfString(yPos) + ","
  74. + xxf_tfString(wid) + ","
  75. + xxf_tfString(xxf_getDatasetCSV(refDs)) + ","
  76. + xxf_tfString(resultref) + ","
  77. + xxf_tfString(resultid) + ","
  78. + xxf_tfString(userProp) + ","
  79. + xxf_tfString(prevPos) + ","
  80. + xxf_tfString(authCode) + ","
  81. + xxf_tfString(resizeType) + ")");
  82. }
  83. /**********************************************************************************
  84. * 함수명 : xxf_tfOpen
  85. * 설명 : 화면 id로 Modal Dialog를 실행한다.
  86. * argument : id ( 화면ID )
  87. * : monNo ( 모니터 번호)
  88. * : xPos ( X좌표 )
  89. * : yPos ( Y좌표 )
  90. * : wid ( Width )
  91. * : refDs ( 전달할 데이터셋 )
  92. * : resultref ( 전달값 저장되는 인스턴스경로 )
  93. * : resultid ( 전달값 저장되는 인스턴스명 )
  94. * : userProp ( 사용자 지정 속성)
  95. * : bPrevPos ( 이전좌표 사용여부)
  96. * : authCode ( 권한코드 )
  97. * : resizeType ( 창크기변환 타입)
  98. * - none (default)
  99. * - notaskbar
  100. * - free
  101. * return Type : String ( Dialog창에서 close()에 의해 Return된 값 )
  102. * 작성자 : 손병은
  103. **********************************************************************************/
  104. function xxf_tfOpen(id, monNo, xPos, yPos, wid, refDs, resultref, resultid, userProp, prevPos, authCode, resizeType)
  105. {
  106. if(!gv_isTFActive) {
  107. agv_objAppWorkPath.form.fTFDeActiveAlert();
  108. return;
  109. }
  110. // trace("xxf_tfOpen("+ xxf_tfString(id) + ","
  111. // + xxf_tfString(monNo) + ","
  112. // + xxf_tfString(xPos) + ","
  113. // + xxf_tfString(yPos) + ","
  114. // + xxf_tfString(wid) + ","
  115. // + xxf_tfString(xxf_getDatasetCSV(refDs)) + ","
  116. // + xxf_tfString(resultref) + ","
  117. // + xxf_tfString(resultid) + ","
  118. // + xxf_tfString(userProp) + ","
  119. // + xxf_tfString(prevPos) + ","
  120. // + xxf_tfString(authCode) + ","
  121. // + xxf_tfString(resizeType) + ")");
  122. xxf_tfCall("xxf_tfOpen("+ xxf_tfString(id) + ","
  123. + xxf_tfString(monNo) + ","
  124. + xxf_tfString(xPos) + ","
  125. + xxf_tfString(yPos) + ","
  126. + xxf_tfString(wid) + ","
  127. + xxf_tfString(xxf_getDatasetCSV(refDs)) + ","
  128. + xxf_tfString(resultref) + ","
  129. + xxf_tfString(resultid) + ","
  130. + xxf_tfString(userProp) + ","
  131. + xxf_tfString(prevPos) + ","
  132. + xxf_tfString(authCode) + ","
  133. + xxf_tfString(resizeType) + ")");
  134. }
  135. /**********************************************************************************
  136. * 함수명 : xxf_tfString
  137. * 설명 : TF 전달용 스트링 변환
  138. * argument : String (변환전 스트링)
  139. * return Type : String (변환후 스트링)
  140. * 작성자 : 손병은
  141. **********************************************************************************/
  142. function xxf_tfString(str){
  143. if(str != null)
  144. return "'"+str+"'";
  145. return "null";
  146. }
  147. /**********************************************************************************
  148. * 함수명 : xxf_tfNotify
  149. * 설명 : TF로부터 데이터를 전달받아 처리한다.
  150. * argument :
  151. * return Type :
  152. * 작성자 : 손병은
  153. **********************************************************************************/
  154. function xxf_notify(obj:WebBrowser, e:WebUserNotifyEventInfo){
  155. var msg = e.userdata;
  156. //trace("xxf_notify : " + msg);
  157. var ar = msg.split("|");
  158. var msgtype = ar[0];
  159. var data = ar[1];
  160. if(msgtype == "1"){ // 상태메시지 변경
  161. agv_objAppBottomPath.form.stt_statusMsg.text = data;
  162. }else if(msgtype == "2"){ // 함수 호출
  163. //agv_objAppWorkPath.form.div_work.test();
  164. eval("agv_objAppWorkPath.form.div_work."+data);
  165. }else if(msgtype == "3"){ // TF 열린화면 추가(by 김지훈)
  166. var winList = msg.split(",");
  167. agv_objAppBottomPath.form.tfOpendWindows = winList;
  168. } else if(msgtype == "4") { // TF에서 XP 상단정보 셋팅
  169. appf_initPatientInfo(data);
  170. xxf_tfCallInternal("fPatientInfoLoadingToXP()", "xxf_callback");
  171. }
  172. }
  173. function xxf_tfCall(fnStr){
  174. if(!gv_isTFActive) return;
  175. xxf_tfCallInternal(fnStr,"xxf_callback");
  176. }
  177. function xxf_fCheckIEOldVer() {
  178. var ie_ver = 8;
  179. try {
  180. ie_ver = gv_IE_Ver;
  181. } catch(e) {
  182. }
  183. //sysf_trace("ie_ver : " + ie_ver);
  184. return (ie_ver < 9) ? true : false;
  185. }
  186. function xxf_tfCallInternal(fnStr, callbackFn){
  187. // trace("before tf call!");
  188. if(xxf_fCheckIEOldVer()) {
  189. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfCall(\""+fnStr+"\",\""+callbackFn+"\");","Javascript");
  190. } else {
  191. try {
  192. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.xxf_tfCall(fnStr, callbackFn);
  193. } catch(e) {
  194. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfCall(\""+fnStr+"\",\""+callbackFn+"\");","Javascript");
  195. }
  196. }
  197. // trace("after tf call!");
  198. }
  199. function xxf_tfCallback(){
  200. }
  201. function xxf_tfLogout(noLoginWindow){
  202. if(!gv_isTFActive) {
  203. agv_objAppWorkPath.form.div_tf.tfweb.url = gv_sURLprefix + "/webapps/com/xphismainweb/jsp/xplogin.jsp";
  204. if(noLoginWindow) {
  205. gv_isCanLogout = true;
  206. application.exit();
  207. }
  208. return;
  209. }
  210. if(noLoginWindow)
  211. agv_objAppWorkPath.form.div_tf.tfweb.onusernotify.addHandler(xxf_logout_complete);
  212. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("btn_logout_fromXP").click();
  213. agv_objAppWorkPath.form.div_tf.tfweb.url = gv_sURLprefix + "/webapps/com/xphismainweb/jsp/xplogin.jsp";
  214. }
  215. function xxf_logout_complete(obj:WebBrowser, e) {
  216. gv_isCanLogout = true;
  217. application.exit();
  218. }
  219. /**********************************************************************************
  220. * 함수명 : xxf_setGlobalVariable
  221. * 설명 : TF에 글로벌변수를 저장한다.
  222. * argument :
  223. * return Type :
  224. * 작성자 : 손병은
  225. **********************************************************************************/
  226. function xxf_tfSetGlobalVariable(key, value, bizCode){
  227. if(!gv_isTFActive) return;
  228. // trace("xxf_tfSetGlobalVariable(" + xxf_tfString(key) + "," + xxf_tfString(value) +"," + xxf_tfString(bizCode)+");");
  229. //xxf_tfCall("xxf_tfSetGlobalVariable("+ xxf_tfString(key) + "," + xxf_tfString(value) + "," + xxf_tfString(bizCode)+");");
  230. try {
  231. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncKey").value = key;
  232. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncVal").value = value;
  233. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncBiz").value = bizCode;
  234. if(xxf_fCheckIEOldVer()) {
  235. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetGlobalVariable();","Javascript");
  236. } else {
  237. try {
  238. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.xxf_tfSetGlobalVariable();
  239. } catch(e) {
  240. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetGlobalVariable();","Javascript");
  241. }
  242. }
  243. } catch (e) {
  244. }
  245. }
  246. /**********************************************************************************
  247. * 함수명 : xxf_setParameter
  248. * 설명 : TF에 파라미터를 저장한다.
  249. * argument : key (키)
  250. value (키에 해당하는 값)
  251. * return Type :
  252. * 작성자 : 손병은
  253. **********************************************************************************/
  254. function xxf_tfSetParameter(key, value){
  255. if(!gv_isTFActive) return;
  256. if(!utlf_isNull(value) && value != "[object Binary]")
  257. value = value.toString().replace(/"/g, "'");
  258. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncKey").value = key;
  259. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncVal").value = value;
  260. if(xxf_fCheckIEOldVer()) {
  261. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetParameter();","Javascript");
  262. } else {
  263. try {
  264. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.xxf_tfSetParameter();
  265. } catch(e) {
  266. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetParameter();","Javascript");
  267. }
  268. }
  269. }
  270. /**********************************************************************************
  271. * 함수명 : xxf_tfSetModelProperty
  272. * 설명 : TF에 model.property를 저장한다.
  273. * argument : key (키)
  274. value (키에 해당하는 값)
  275. * return Type :
  276. * 작성자 : 김상목
  277. **********************************************************************************/
  278. function xxf_tfSetModelProperty(key, value){
  279. if(!gv_isTFActive) return;
  280. if(!utlf_isNull(value) && value != "[object Binary]")
  281. value = value.toString().replace(/"/g, "'");
  282. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncKey").value = key;
  283. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncVal").value = value;
  284. if(xxf_fCheckIEOldVer()) {
  285. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetModelProperty();","Javascript");
  286. } else {
  287. try {
  288. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.xxf_tfSetModelProperty();
  289. } catch(e) {
  290. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetModelProperty();","Javascript");
  291. }
  292. }
  293. }
  294. /**********************************************************************************
  295. * 함수명 : xxf_tfSetModelAttribute
  296. * 설명 : TF에 model.setAttribute를 저장한다.
  297. * argument : key (키)
  298. value (키에 해당하는 값)
  299. * return Type :
  300. * 작성자 : 김상목
  301. **********************************************************************************/
  302. function xxf_tfSetModelAttribute(key, value){
  303. if(!gv_isTFActive) return;
  304. if(!utlf_isNull(value) && value != "[object Binary]")
  305. value = value.toString().replace(/"/g, "'");
  306. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncKey").value = key;
  307. agv_objAppWorkPath.form.div_tf.tfweb.document.getElementById("callFuncVal").value = value;
  308. if(xxf_fCheckIEOldVer()) {
  309. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetModelAttribute();","Javascript");
  310. } else {
  311. try {
  312. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.xxf_tfSetModelAttribute();
  313. } catch(e) {
  314. agv_objAppWorkPath.form.div_tf.tfweb.document.parentWindow.execScript("xxf_tfSetModelAttribute();","Javascript");
  315. }
  316. }
  317. }
  318. /**********************************************************************************
  319. * 함수명 : xxf_getDatasetCSV
  320. * 설명 : 주어진 데이타셋을 TF에서 사용할 CSV 스트링으로 변환한다.
  321. * argument : objDs ( 데이타셋 )
  322. * return Type : String
  323. * 작성자 : 손병은
  324. **********************************************************************************/
  325. function xxf_getDatasetCSV(objDs)
  326. {
  327. if(objDs == null) return null;
  328. var nRowCnt = objDs.getRowCount();
  329. var nColCnt = objDs.getColCount();
  330. if( nRowCnt == 0 )
  331. return;
  332. var sColSep = "▦";
  333. var sRowSep = "▩";
  334. var rCSV = "";
  335. for (var i=0; i<nColCnt - 1; i++) {
  336. rCSV += objDs.getColID(i) + sColSep;
  337. }
  338. rCSV += objDs.getColID(i) + sRowSep;
  339. for (var i=0; i<nRowCnt; i++) {
  340. for (var j=0; j<nColCnt - 1; j++) {
  341. var sColVal = utlf_transNullToEmpty(objDs.getColumn(i, j));
  342. rCSV += sColVal + sColSep;
  343. }
  344. var sColVal = utlf_transNullToEmpty(objDs.getColumn(i, j));
  345. rCSV += sColVal + sRowSep;
  346. }
  347. return rCSV;
  348. }
  349. function xxf_tfSetRef(oArg, refDs, resultRef, resultId){
  350. oArg.xx_refds = refDs;
  351. oArg.xx_resultref = resultRef;
  352. oArg.xx_resultid = resultId;
  353. return oArg;
  354. }]]></Script>