SPMNW04703.xjs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. (SMMNW04703.xrw - JScript )
  5. - Version :
  6. 1) : Ver.1.00.01
  7. - Desc : 피부욕창상처기록첨부파일 화면에서 사용하는 스크립트
  8. */
  9. var isUpdated = false;
  10. var arErrorCode = new HashArray();
  11. /**
  12. * @group :
  13. * @ver : 2008.05.31
  14. * @by : dhkim
  15. * @-------------------------------------------------------
  16. * @type : function
  17. * @access : public
  18. * @desc : 화면을 초기화한다. 화면로딩이 끝난 시점에 호출된다.
  19. * @param :
  20. * @return :
  21. * @-------------------------------------------------------
  22. */
  23. function fInit(){
  24. ds_main_list_reportlist.clearData();
  25. ds_send_attach.clearData();
  26. ds_send.clearData();
  27. var pid = opener.frmf_getParameter('pid');
  28. var grupcd = opener.frmf_getParameter('grupcd');
  29. var obsrecseq = opener.frmf_getParameter('obsrecseq');
  30. //alert(pid +" "+ grupcd +" "+ obsrecseq);
  31. if( !utlf_isNull(pid) && !utlf_isNull(grupcd) && !utlf_isNull(obsrecseq)){
  32. ds_init.setColumn(0, "pid", pid);
  33. ds_init.setColumn(0, "grupcd", grupcd);
  34. ds_init.setColumn(0, "obsrecseq", obsrecseq);
  35. fSearch();
  36. }else{
  37. sysf_messageBox('화면을 초기화 할 수', 'I004');
  38. }
  39. }
  40. /**
  41. * @group :
  42. * @ver : 2008.05.31
  43. * @by : dhkim
  44. * @-------------------------------------------------------
  45. * @type : function
  46. * @access : public
  47. * @desc : 조건에 해당하는 첨부파일을 조회한다.
  48. * @param :
  49. * @return :
  50. * @-------------------------------------------------------
  51. */
  52. function fSearch(){
  53. ds_send.clearData();
  54. ds_send.copyData(ds_init);
  55. /*//그리드 초기화가 안되서 임시방편.. 수정할것!
  56. for(var i = 1; i <= grd_report.rows; i++){
  57. grd_report.deleteRow(i);
  58. }
  59. //그리드 초기화가 안되서 임시방편.. 수정할것!
  60. for(var i = 1; i <= grd_attach.rows; i++){
  61. grd_attach.deleteRow(i);
  62. }*/
  63. var oParam = {};
  64. oParam.id = "TRMNW04704";
  65. oParam.service = "wardcareapp.WardCareRec";
  66. oParam.method = "reqGetBedSoreFileList";
  67. oParam.inds = "refCond=ds_send";
  68. oParam.outds = "ds_main_list_reportlist=reportlist";
  69. oParam.async = false;
  70. oParam.callback = "cf_TRMNW04704";
  71. tranf_submit(oParam);
  72. }
  73. function cf_TRMNW04704(sSvcId, nErrorCode, sErrorMsg) {
  74. if(nErrorCode < 0){
  75. sysf_messageBox('첨부파일 조회를', 'E009');
  76. }
  77. }
  78. /**
  79. * @group :
  80. * @ver : 2008.06.16
  81. * @by : dhkim
  82. * @-------------------------------------------------------
  83. * @type : function
  84. * @access : public
  85. * @desc : 첨부파일을 그리드에 추가한다.
  86. * @param :
  87. * @return :
  88. * @-------------------------------------------------------
  89. */
  90. function fAddRow(){
  91. var maxsize = 1048576;//upload1.attribute("filesize");
  92. var fd = new FileDialog;
  93. // 파일다이얼로그를 띄워 사용자에게 파일경로를 입력받는다.
  94. var objVFileList = fd.open("FileOpen", FileDialog.MULTILOAD); // 여러파일 선택 MULTILOAD
  95. for( var i=0 ; i<objVFileList.length ; i++ ){
  96. if( !utlf_isNull(objVFileList[i]) ){
  97. var nRow1 = ds_send_attach.addRow();
  98. var nRow2 = ds_main_list_reportlist.addRow();
  99. // 그 파일의 데이터를 데이터셋의 특정 컬럼에 BLOB 형식으로 write 한다.
  100. var file = dsf_writeFileToDs(objVFileList[i], ds_send_attach, nRow1, "filedata");
  101. filename = file.filename;
  102. filesize = file.filesize;
  103. filetype = file.filetype;
  104. //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  105. ds_main_list_reportlist.setColumn(nRow2, "filenm", filename);
  106. ds_main_list_reportlist.setColumn(nRow2, "filepath", "");
  107. //var name = model.getValue("/root/main/iteminfo/attfilenm");
  108. //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  109. //var filename = name.lastIndexOf("\\");
  110. //open 파일명를 input박스에 넣는다.
  111. //ipt_attfilenm.value = fileopen.substring(filename + 1);
  112. //선택한 파일이 저장버튼을 눌렀을때 저장이 되게 하기 위해 파일 저장 인스턴스에 파일주소를 저장해 둔다.
  113. ds_send_attach.setColumn(nRow1, "file", filename);
  114. ds_send_attach.setColumn(nRow1, "filenm", filename);
  115. ds_send_attach.setColumn(nRow1, "filesize", filesize);
  116. ds_send_attach.setColumn(nRow1, "filetype", filetype);
  117. //파일 크기가 너무 큰경우 메세지를 띄운다.
  118. if (filesize > maxsize){
  119. ds_send_attach.deleteRow(nRow1);
  120. ds_main_list_reportlist.deleteRow(nRow2);
  121. sysf_messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  122. }else{
  123. isUpdated = true;
  124. }
  125. }
  126. }
  127. }
  128. /**
  129. * @group :
  130. * @ver : 2008.06.16
  131. * @by : dhkim
  132. * @-------------------------------------------------------
  133. * @type : function
  134. * @access : public
  135. * @desc : 첨부파일을 저장한다.
  136. * @param :
  137. * @return :
  138. * @-------------------------------------------------------
  139. */
  140. function fSave(){
  141. if(grd_report.rowcount < 1 || !isUpdated){
  142. return;
  143. }
  144. //sysf_trace(ds_send_attach.saveXML());
  145. //sysf_trace(ds_main_list_reportlist.saveXML());
  146. var oParam = {};
  147. oParam.id = "TXMNW04701";
  148. oParam.service = "wardcareapp.WardCareRec";
  149. oParam.method = "reqExeUploadReport";
  150. oParam.inds = "attach=ds_send_attach report=ds_send";
  151. oParam.outds = "ds_main_list_reportlist=reportlist";
  152. oParam.async = false;
  153. oParam.callback = "cf_TXMNW04701";
  154. tranf_submit(oParam);
  155. }
  156. function cf_TXMNW04701(sSvcId, nErrorCode, sErrorMsg) {
  157. if(nErrorCode < 0){
  158. sysf_messageBox('첨부파일 저장을', 'E009');
  159. return;
  160. }
  161. ds_send_attach.clearData();
  162. //model.resetInstanceNode("/root/send/title");
  163. }
  164. /**
  165. * @group :
  166. * @ver : 2008.06.16
  167. * @by : dhkim
  168. * @-------------------------------------------------------
  169. * @type : function
  170. * @access : public
  171. * @desc : 선택한 첨부파일을 삭제한다.
  172. * @param :
  173. * @return :
  174. * @-------------------------------------------------------
  175. */
  176. function fDelete(cur_row){
  177. if(cur_row < 0){
  178. sysf_messageBox('삭제할 파일을', 'C002');
  179. return;
  180. }else{
  181. var rptid = ds_main_list_reportlist.getColumn(cur_row, "reportid");
  182. var pid = ds_main_list_reportlist.getColumn(cur_row, "pid");
  183. var grupcd = ds_main_list_reportlist.getColumn(cur_row, "grupcd");
  184. var obsrecseq = ds_main_list_reportlist.getColumn(cur_row, "obsrecseq");
  185. var filenm = ds_main_list_reportlist.getColumn(cur_row, "filenm");
  186. var filesize = ds_main_list_reportlist.getColumn(cur_row, "filesize");
  187. var filetype = ds_main_list_reportlist.getColumn(cur_row, "filetype");
  188. var filepath = ds_main_list_reportlist.getColumn(cur_row, "filepath");
  189. //alert(rptid + ', ' + pid+ ', ' + grupcd + ', ' + obsrecseq + ', ' + filenm + ', ' + filesize + ', ' + filetype + ', ' + filepath);
  190. dsf_makeValue(ds_send, "send", "string", rptid, 0);
  191. ds_send.setColumn(0, "pid", pid);
  192. ds_send.setColumn(0, "grupcd", grupcd);
  193. ds_send.setColumn(0, "obsrecseq", obsrecseq);
  194. dsf_makeValue(ds_send, "filenm", "string", filenm, 0);
  195. dsf_makeValue(ds_send, "filesize", "string", filesize, 0);
  196. dsf_makeValue(ds_send, "filetype", "string", filetype, 0);
  197. ds_send.setColumn(0, "filepath", filepath);
  198. var oParam = {};
  199. oParam.id = "TXMNW04702";
  200. oParam.service = "wardcareapp.WardCareRec";
  201. oParam.method = "reqDelReport";
  202. oParam.inds = "req=ds_send";
  203. oParam.outds = "ds_main_list_reportlist=reportlist";
  204. oParam.async = false;
  205. oParam.callback = "cf_TXMNW04702";
  206. tranf_submit(oParam);
  207. }
  208. }
  209. function cf_TXMNW04702(sSvcId, nErrorCode, sErrorMsg) {
  210. if(nErrorCode < 0){
  211. sysf_messageBox('첨부파일의 삭제를', 'E009');
  212. }
  213. }
  214. /**
  215. * @group :
  216. * @ver : 2008.05.31
  217. * @by : dhkim
  218. * @-------------------------------------------------------
  219. * @type : function
  220. * @access : public
  221. * @desc : 저장되 있는 첨부파일을 다운로드 한다.
  222. * 이미지가 아니면 pc에 미리 저장한 후 파일을 연다.(미구현)
  223. * @param :
  224. * @return :
  225. * @-------------------------------------------------------
  226. */
  227. function fDownLoad(){
  228. //저장되어 있는 파일만 열 수 있다.
  229. if( !utlf_isNull(ds_main_list_reportlist.getColumn(ds_main_list_reportlist.rowposition, "reportid")) ){
  230. //alert(getActionURL("TRMNW04706"));
  231. var idx = ds_main_list_reportlist.rowposition;
  232. var filepath = ds_main_list_reportlist.getColumn(idx, "filepath");
  233. var filenm = ds_main_list_reportlist.getColumn(idx, "filenm");
  234. //var isImg = fIsImg(filenm);
  235. ds_send.setColumn(0, "filepath", filepath);
  236. var oParam = {};
  237. oParam.id = "TRMNW04706";
  238. oParam.service = "wardcareapp.WardCareRec";
  239. oParam.method = "reqGetAttachFile";
  240. oParam.inds = "req=ds_send";
  241. oParam.outds = "ds_main_attachfile=attachfile";
  242. oParam.async = false;
  243. oParam.callback = "cf_TRMNW04706";
  244. tranf_submit(oParam);
  245. if( arErrorCode.pop("TRMNW04706") > -1 ){
  246. var fd = new FileDialog;
  247. var objVFile = fd.open("FileSave", FileDialog.SAVE, "%MYDOCUMENT%", filenm); // 단일 파일 선택
  248. }
  249. //키값을 가지고 DB에 저장된 데이타를 조회하러 간다
  250. if ( !utlf_isNull(objVFile)) {
  251. dsf_readFileFromDs(objVFile.fullpath, ds_main_attachfile, 0, "filedata"); // 파일저장
  252. var objExtCommon = new ExtCommon();
  253. var rtn = objExtCommon.executeProcess(objVFile.fullpath,"","");
  254. }
  255. /*
  256. if(isImg){
  257. alert(realfile);
  258. return;
  259. window.exec(realfile);
  260. }else{
  261. var localfile = window.fileDialog("save", "|", false, filenm, "", "All Files(*.*)|*.*");
  262. if (localfile != "") {
  263. model.download(realfile, localfile);
  264. window.exec(localfile);
  265. }
  266. }
  267. */
  268. }
  269. }
  270. function cf_TRMNW04706(sSvcId, nErrorCode, sErrorMsg) {
  271. arErrorCode.push(sSvcId, nErrorCode);
  272. }
  273. /**
  274. * @group :
  275. * @ver : 2008.05.31
  276. * @by : dhkim
  277. * @-------------------------------------------------------
  278. * @type : function
  279. * @access : public
  280. * @desc : 해당 파일 확장자가 이미지 파일인지 아닌지 판단한다.
  281. * @param :
  282. * @return :
  283. * @-------------------------------------------------------
  284. */
  285. function fIsImg(file){
  286. var pos = file.toString().lastIndexOf('.');
  287. var ext = file.toString().substring(pos+1).toLowerCase();
  288. if(ext != 'jpg' || ext != 'jpeg' || ext != 'bmp' || ext != 'gif' || ext != 'png' || ext != 'tif' || ext != 'tiff'
  289. || ext != 'tga' || ext != 'pdf' || ext != 'psd' || ext != 'cdr' || ext != 'drw' || ext != 'dxf' || ext != 'kdc'
  290. || ext != 'pcd' || ext != 'swf'){
  291. //alert('img');
  292. return true;
  293. }else{
  294. //alert('is not img');
  295. return false;
  296. }
  297. }
  298. ]]></Script>