SMMND02100.xjs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[/*
  3. 환자별 투석 history 조회(SMMND02100.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. /**
  8. * _group :
  9. * _ver : 2007.06.20
  10. * _by : 김진아
  11. * _---------------------------------------------------
  12. * _type : function
  13. * _access : public
  14. * _desc : 화면 초기화
  15. * _param :
  16. * _return :
  17. * _---------------------------------------------------
  18. */
  19. function fDone(){
  20. //**그리드 초기화**//
  21. ds_main_pathistlist_pathistinfo.clearData();
  22. var sCurrentDate = utlf_getCurrentDate(); // 현재일자
  23. ds_main_condition.setColumn( 0, "srchfromdd", (sCurrentDate.substr(0,4)-1)+sCurrentDate.substr(4,4));
  24. ds_main_condition.setColumn( 0, "srchtodd" , sCurrentDate);
  25. //**공통코드 가져오기**//
  26. var arrParam = [ {dsNm : "ds_init_M0133list" // 도관관리 부위
  27. , "ds_init_M0134list" // 도관관리 종류1
  28. , "ds_init_M0135list" // 도관관리 종류2
  29. , "ds_init_M0136list" // 혈액투석도관 제거이유
  30. , "ds_init_M0138list" // 동정맥루 부위
  31. , "ds_init_M0137list" // 동정맥루 종류
  32. , "ds_init_M0139list" // 동정맥루 사용혈관
  33. , "ds_init_M0140list" // 시술종류
  34. , "ds_init_M0141list" // 시술원인
  35. , "ds_init_M0345list" // 혈액투석액
  36. , "ds_init_M0127list" // 투석기
  37. , "ds_init_M0128list" // 용적
  38. , "ds_init_M0142list" // Cath.종류
  39. , "ds_init_M0144list" // 복막투석도관 제거사유
  40. , "ds_init_M0145list" // 감염종류
  41. , "ds_init_M0146list" // 원인균
  42. , "ds_init_M0147list" // 예후
  43. , "ds_init_M0131list" // 복막투석액 회사명
  44. , "ds_init_M0132list" // 복막투석액
  45. ,
  46. cdGrpId: "M0133" // 도관관리 부위
  47. , "M0134" // 도관관리 종류1
  48. , "M0135" // 도관관리 종류2
  49. , "M0136" // 혈액투석도관 제거이유
  50. , "M0138" // 동정맥루 부위
  51. , "M0137" // 동정맥루 종류
  52. , "M0139" // 동정맥루 사용혈관
  53. , "M0140" // 시술종류
  54. , "M0141" // 시술원인
  55. , "M0345" // 혈액투석액
  56. , "M0127" // 투석기
  57. , "M0128" // 용적
  58. , "M0142" // Cath.종류
  59. , "M0144" // 복막투석도관 제거사유
  60. , "M0145" // 감염종류
  61. , "M0146" // 원인균
  62. , "M0147" // 예후
  63. , "M0131" // 복막투석액 회사명
  64. , "M0132" // 복막투석액
  65. } ];
  66. appf_getCodeList(arrParam,
  67. );
  68. //** 상단환자 화면설정 **//
  69. var node = sysf_getGlobalVariable("paminfo");
  70. dsf_setCSVToDs("ds_temp_paminfo", node);
  71. if(ds_temp_paminfo_list.rowcount;> 0) {
  72. var sSelPid = ds_temp_paminfo_list.getColumn(0, "pid"); // 등록번호
  73. ds_main_condition.setColumn( 0, "pid", sSelPid);
  74. }
  75. if(ds_main_condition.getColumn(0, "pid")!=""){
  76. fSrchPatHistList(); // 환자별 투석 History 리스트 조회
  77. }
  78. }
  79. /**
  80. * _group :
  81. * _ver : 2007.06.20
  82. * _by : 김진아
  83. * _---------------------------------------------------
  84. * _type : function
  85. * _access : public
  86. * _desc : 환자별 투석 History 리스트 조회
  87. * _param :
  88. * _return :
  89. * _---------------------------------------------------
  90. */
  91. function fSrchPatHistList(){
  92. if(ds_main_condition.getColumn(0, "pid") == "") {
  93. fClearChildNode("ds_main_condition");
  94. var sCurrentDate = utlf_getCurrentDate(); // 현재일자
  95. ds_main_condition.setColumn( 0, "srchfromdd", (sCurrentDate.substr(0,4)-1)+sCurrentDate.substr(4,4));
  96. ds_main_condition.setColumn( 0, "srchtodd" , sCurrentDate);
  97. //model.refresh();
  98. sysf_messageBox("등록번호는", "I003", "");
  99. fClearChildNode("ds_main_patbaselist_patbaseinfo");
  100. ds_main_pathistlist.clearData();
  101. //model.refresh();
  102. return;
  103. }
  104. // 조회기간 체크
  105. if(ds_main_condition.getColumn(0, "srchfromdd") > ds_main_condition.getColumn(0, "srchtodd")) {
  106. sysf_messageBox("예약일자 기간이 올바르지 않습니다.", "E");
  107. var sCurrentDate = utlf_getCurrentDate(); // 현재일자
  108. ds_main_condition.setColumn( 0, "srchfromdd", (sCurrentDate.substr(0,4)-1)+sCurrentDate.substr(4,4));
  109. ds_main_condition.setColumn( 0, "srchtodd" , sCurrentDate);
  110. //model.refresh();
  111. }
  112. ds_send.clearData();
  113. dsf_makeValue( ds, "send", "string", "" );
  114. model.makeValue ("ds_send_reqdata_pid ", model.getValue("ds_main_condition_pid ")); // 등록번호
  115. model.makeValue ("ds_send_reqdata_hngnm ", model.getValue("ds_main_condition_hngnm ")); // 환자명
  116. dsf_makeValue( ds_send_reqdata, "srchfromdd", "string", ds_main_condition.getColumn(0, "srchfromdd")); // 조회기간(시작)
  117. model.makeValue ("ds_send_reqdata_srchtodd ", model.getValue("ds_main_condition_srchtodd ")); // 조회기간(끝)
  118. ds_main_pathistlist.clearData();
  119. ds_main_patbaselist.clearData();
  120. // submit("TRMND02101");
  121. var oParam = {};
  122. oParam.id = "TRMND02101";
  123. oParam.service = "dialapp.DialSpcl";
  124. oParam.method = "reqGetPatHistList";
  125. oParam.inds = "req=ds_";
  126. oParam.outds = "ds_=patbaselist ds_=pathistlist";
  127. oParam.async = false;
  128. oParam.callback = "cf_TRMND02101";
  129. tranf_submit(oParam);
  130. /*
  131. function cf_TRMND02101(sSvcId, nErrorCode, sErrorMsg) {
  132. if(nErrorCode < 0) return;
  133. }
  134. function cf_TRMND02101(sSvcId, nErrorCode, sErrorMsg) {
  135. arErrorCode.push(sSvcId, nErrorCode);
  136. }
  137. arErrorCode.pop("TRMND02101") > -1
  138. arErrorCode.pop("TRMND02101") < 0
  139. */
  140. // if(ds_main_pathistlist_pathistinfo.getColumn(0, "recdd") == ""){
  141. // ds_main_pathistlist.clearData();
  142. // }
  143. // 환자명 설정
  144. dsf_makeValue( ds_main_condition, "hngnm", "string", ds_main_patbaselist_patbaseinfo.getColumn(0, "hngnm"));
  145. // 그리드Merge설정
  146. for(var i=2;i<grd_pathistinfo.cols;i++){
  147. grd_pathistinfo.mergecol(i) = false;
  148. }
  149. grd_pathistinfo.mergeCells = "bycol";
  150. //model.refresh();
  151. }
  152. function fUseridPopup(pPath, pNodeID, pNodeNM, pNodeRrgsNo1, pNodeRrgsNo2, pDOC) {
  153. ds_properties_parameters_SendData_SendDatavalue.clearData();
  154. ds_main_pathistlist.clearData();
  155. modal("SMMNE03700", 1, event.screenX-100, event.screenY-100, "SMMNE03700", "ds_main_condition_pid", "ds_init_searchitem");
  156. var pParam = ds_properties_parameters_SendData.getColumn(0, "SendDatavalue");
  157. var pParamValue = pParam.split("|");
  158. ds_main_condition.setColumn( 0, "pid", pParamValue[0]);
  159. }
  160. /************************************************************************************************************************/
  161. /**
  162. * _group :
  163. * _ver :
  164. * _by : 김기용, KJA 여러개의 그리드를 한 Sheet저장으로 수정
  165. * _---------------------------------------------------------------
  166. * _type : function
  167. * _access : public
  168. * _desc : 그리드 별 엑셀저장
  169. * _param :
  170. * _return :
  171. * _---------------------------------------------------------------
  172. */
  173. function saveExcelAll() {
  174. var paramLen = saveExcelAll.arguments.length;
  175. // 마지막 인자가 Boolean일 경우 처리
  176. var extendsCaptionBool;
  177. if( typeof(saveExcelAll.arguments[paramLen - 1]) == "boolean" ) {
  178. extendsCaptionBool = saveExcelAll.arguments[paramLen - 1];
  179. paramLen = paramLen - 1;
  180. }
  181. else{
  182. extendsCaptionBool = false;
  183. }
  184. var tmpParamArray = new Array();
  185. if( extendsCaptionBool ) {
  186. for( var i = 0; i < paramLen; i++ ) {
  187. tmpParamArray[i] = saveExcelAll.arguments[i];
  188. }
  189. saveExcelAllWithCaption(tmpParamArray);
  190. }
  191. else{
  192. for( var i = 0; i < paramLen; i++ ) {
  193. tmpParamArray[i] = saveExcelAll.arguments[i];
  194. }
  195. saveExcelAllWithNotCaption(tmpParamArray);
  196. }
  197. }
  198. function saveExcelAllWithCaption( sheetArray ) {
  199. // alert(gridCaptionArray);
  200. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  201. if( fileName == "" )
  202. return;
  203. var sheetArrayLen = sheetArray.length;
  204. var gridId;
  205. var gridObj;
  206. for( var i = 0; i < sheetArray.length; i++ ) {
  207. gridId = sheetArray[i].split("|")[0];
  208. gridObj = document.all.item(gridId);
  209. // saveText() 함수는 Caption저장이 불가능 하여 SaveExcel()을 이용한다.
  210. gridObj.saveExcel("C:\\Temp\\tmp_TFExcel_" + i +".xls");
  211. }
  212. // excel application 실행함
  213. tfexcel.launchnewinstance(0);
  214. //실행된 excel application에서 새로운 workbook을 생성
  215. tfexcel.createworkbook();
  216. tfexcel.activatesheet(1);
  217. var sheetName;
  218. var nResult;
  219. //수정부분////////////////////////////////////////////////////////////////////////////////////////
  220. for( var i = 0; i < sheetArrayLen; i++ )
  221. {
  222. sheetName = sheetArray[1].split("|")[1];
  223. if( i > 1 ) {
  224. nResult = tfexcel.activatesheet(1);
  225. tfexcel.sheetname(1) = sheetName;
  226. }
  227. else {
  228. nResult = tfexcel.activatesheet(1);//tfexcel.addsheet(i+1, sheetName);
  229. }
  230. if( nResult < 0 ) {
  231. sysf_messageBox(sheetName + " 저장을", "E009");
  232. // alert(sheetName + " 오류발생");
  233. return;
  234. }
  235. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  236. }
  237. //여기까지//////////////////////////////////////////////////////////////////////////////////////////
  238. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.xls");
  239. //workbook을 저장.
  240. tfexcel.save(fileName);
  241. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  242. tfexcel.close();
  243. var fso = new ActiveXObject("Scripting.FileSystemObject");
  244. for( var i = 0; i < sheetArrayLen; i++ ) {
  245. fso.DeleteFile("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  246. }
  247. var rmsg = sysf_messageBox("저장된 Excel을", "Q004");
  248. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  249. if( rmsg == 6 )
  250. window.exec("excel.exe", '\"' + fileName + '\"');
  251. }
  252. function saveExcelAllWithNotCaption( sheetArray ) {
  253. // alert(gridCaptionArray);
  254. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  255. if( fileName == "" )
  256. return;
  257. // excel application 실행함
  258. tfexcel.launchnewinstance(0);
  259. // 실행된 excel application에서 새로운 workbook을 생성
  260. tfexcel.createworkbook();
  261. // var sheetArray = new Array("grd_bizprescondstats|업무현황", "grd_patprescondstats|환자현황", "grd_hdstatsinfo|혈액투석현황", "grd_pdstatsinfo|복막투석현황", "grd_pdbizstatsinfo|복막투석업무현황");
  262. var sheetArrayLen = sheetArray.length;
  263. var gridId;
  264. var gridObj;
  265. var sheetName;
  266. var nResult;
  267. for( var i = 0; i < sheetArrayLen; i++ ) {
  268. gridId = sheetArray[i].split("|")[0];
  269. gridObj = document.all.item(gridId);
  270. sheetName = sheetArray[i].split("|")[1];
  271. if( i > 1 ) {
  272. nResult = tfexcel.activatesheet(i+1);
  273. tfexcel.sheetname(i+1) = sheetName;
  274. }
  275. else {
  276. nResult = tfexcel.addsheet(i+1, sheetName);
  277. }
  278. if( nResult < 0 ) {
  279. sysf_messageBox(sheetName + " 저장을", "E009");
  280. // alert(sheetName + " 오류발생");
  281. return;
  282. }
  283. gridObj.saveText("C:\\Temp\\tmp_TFExcel.csv", "\n", ",", '\:', true);
  284. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.csv");
  285. }
  286. //workbook을 저장.
  287. tfexcel.save(fileName);
  288. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  289. tfexcel.close();
  290. // CSV File 삭제
  291. var fso = new ActiveXObject("Scripting.FileSystemObject");
  292. fso.DeleteFile("C:\\Temp\\tmp_TFExcel.csv");
  293. var rmsg = sysf_messageBox("저장된 Excel을", "Q004");
  294. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  295. if( rmsg == 6 )
  296. window.exec("excel.exe", '\"' + fileName + '\"');
  297. }
  298. function createTFExcel(tfExcelID, parentObj) {
  299. if( parentObj == null )
  300. parentObj = body;
  301. var tfExcelObj = parentObj.createChild("xforms:object", "id:" + tfExcelID + "; clsid:{fe8d1001-6a9d-424d-ae2a-301493bb12da}; left:100px; top:100px; width:100px; height:100px; ");
  302. return tfExcelObj;
  303. }
  304. /************************************************************************************************************************/
  305. ]]></Script>